गोल्फ-विरोधी विरोधी गोल्फ: एक ऐसा कार्य बनाएं जहां गोल्फस्क्रिप्ट या जे आपके (पारंपरिक) बंद लंगूरों द्वारा बहिष्कृत हो]


29

आपको तीन चीजें बनाने की जरूरत है:

  1. एक कार्य का विवरण, टी
  2. भाषा में कार्य का समाधान आमतौर पर गोल्फिंग, ए के लिए उपयोग नहीं किया जाता है ।
  3. भाषा में कार्य का समाधान आमतौर पर गोल्फिंग, बी के लिए उपयोग किया जाता है । स्कोर को पंप करने के लिए केवल बी को ऊपर उठाने की कोशिश न करें , इसके बजाय ऐसा सोचें कि बी आपके प्रतियोगी द्वारा लिखा गया था।

परिभाषित करने में सामान्य ज्ञान का उपयोग करें typically used for golfing, अन्य उपयोगकर्ताओं के लिए अधिकतम मज़ा करने का प्रयास करें।

अन्य उपयोगकर्ता बेहतर Bएस प्रस्तावित कर सकते हैं (शायद अन्य "गोल्फ" भाषाओं में शामिल हैं)।

स्कोरिंग है (length_in_bytes(B)+5)/(length_in_bytes(A)+5), अधिक बेहतर है। (शायद स्कोरिंग फॉर्मूला बदला जाना चाहिए? ..)

मुख्य विचार एक कार्य का आविष्कार करना है जहां कोडगुल्फ में आमतौर पर अच्छा प्रदर्शन करने वाली भाषा एक समस्या को पूरा करती है। यह दिए गए कार्य में एक सामान्य भाषा की अचानक ताकत हो सकती है या कुछ गोल्फलैंग की अचानक कमजोरी हो सकती है।

उन कार्यों से बचें, जो विशिष्ट प्रोग्रामिंग भाषाओं का उल्लेख करते हैं, जैसे Input a string and execute it as a Scheme code


1
मुझे लगता है कि आप एक कोड-गोल्फ के बजाय इसे एक लोकप्रियता-प्रतियोगिता बनाते हैं। अन्यथा लोग शिकायत करेंगे कि यह "सबसे कम-कोड-जीत" नहीं है।
विक्टर स्टैफुसा

ठीक है, लोकप्रियता-प्रतियोगिता में बदलना। आप बेहतर शीर्षक या बेहतर स्कोरिंग का सुझाव भी दे सकते हैं।
वि।

मुझे लगता है कि मेरा पिछला प्रश्न अर्हता प्राप्त करता है? codegolf.stackexchange.com/questions/18633/… पर्ल सॉल्यूशन 48 चार्ट है , जबकि J सॉल्यूशन 54
चार्ट है

1
क्या हमें लैंग बी (जब तक यह गोल्फ में अच्छा है) निर्दिष्ट करने के लिए मिलता है? या कोई भी कह सकता है "यहां भाषा में एक कार्यक्रम है <भाषा का नाम डालें> और इसका लंबाई का एक बहुत छोटा समाधान है <n>:"?
जस्टिन

1
बीटीडब्ल्यू कुछ भाषाएं जैसे पर्ल ए और साइड बी दोनों पर हो सकती हैं, संदर्भ के आधार पर।
वि।

जवाबों:


14

मेरा पिछला प्रश्न, एक साइनसॉइडल तरंग (लंबवत) प्रिंट करें, इस समय योग्य है। मैं इसे एक समाधान के रूप में यहां पोस्ट कर रहा हूं, यह भी उम्मीद है कि आप लोग मेरे मूल प्रश्न के कुछ छोटे समाधानों के साथ आ सकते हैं।

जैसा कि वीआई द्वारा आवश्यक है, मैं प्रश्न का सारांश पोस्ट करूंगा।

एक टर्मिनल पर एक सतत साइनसोइडल तरंग स्क्रॉल को लंबवत रूप से प्रिंट करें। कार्यक्रम को समाप्त नहीं होना चाहिए और लगातार लहर को नीचे स्क्रॉल करना चाहिए (सिग्नेट को छोड़कर)। आप मान सकते हैं कि अतिप्रवाह एक समस्या नहीं है (यानी आप बढ़ते काउंटरों या अनंत पुनरावर्ती के साथ अनंत छोरों का उपयोग कर सकते हैं)।

लहर को निम्नलिखित गुणों को संतुष्ट करना चाहिए:

  • आयाम = 20 वर्ण (शिखर आयाम)
  • अवधि = 60 से 65 रेखाएँ (सम्मिलित)
  • आउटपुट में केवल रिक्त स्थान, न्यूलाइन और शामिल होना चाहिए |
  • आउटपुट की प्रत्येक पंक्ति के बाद, 50ms के लिए रुकें

मेरे मूल प्रश्न पर एक नमूना आउटपुट है, लेकिन मैं इसे यहां पोस्ट नहीं कर रहा हूं, क्योंकि इससे मेरा उत्तर हास्यास्पद रूप से लंबा हो जाएगा। मेरा मूल प्रश्न यहां देखा जा सकता है: साइनसोइडल तरंग (लंबवत) प्रिंट करें

सबसे छोटा Aवर्तमान: 48 चार्ट के साथ एक पर्ल समाधान: https://codegolf.stackexchange.com/a/18655/1253

print$"x(25+20*sin).'|
';$_+=.1;`sleep .05`;do$0

सबसे छोटा Bवर्तमान में: 54 वर्णों वाला एक J हल: https://codegolf.stackexchange.com/a/18649/12205

($:+&0.1[6!:3@]&0.05[2:1!:2~' |'#~1,~[:<.20*1+1&o.)0  




वर्तमान में, इस उत्तर का स्कोर 1.113 (एक कम स्कोर) है


वर्तमान सूत्र के अनुसार वर्तमान स्कोर लगभग 1.113 है
Vi।

@Vi। क्या मुझे इस उत्तर को हटाना चाहिए या मुझे कुछ समय इंतजार करना चाहिए और देखना चाहिए कि क्या होता है? यदि उत्तरार्द्ध, मुझे कब तक इंतजार करना चाहिए?
user12205

कथन बाइट्स बताता है, वर्ण नहीं। UTL-8 में परिवर्तित, APL समाधान ने 61 बाइट्स (UTF-16 के लिए 70) बनाए।
वि।

2
आप दावा कर रहे हैं कि पर्ल आमतौर पर गोल्फिंग के लिए इस्तेमाल की जाने वाली भाषा नहीं है, लेकिन यह वह भाषा है जो पहली बार गोल्फ शब्द से जुड़ी थी ! 56 साल की रूबी अपने सवालों के मौजूदा जवाबों में असली भाषा ए की तरह दिखती है।
पीटर टेलर

8

दो नंबर जोड़ें

STDIN से दो नंबर प्राप्त करें, और उन्हें एक साथ जोड़ें। आपको फ्लोटिंग पॉइंट नंबरों का समर्थन करना होगा, इसलिए 0.5 + 1.5 को 2 के बराबर करना होगा।

पर्ल 5 (साथ -E)

say<>+<>

GolfScript

n%'+'*'"#{
}"'n/\*~

परिकलित स्कोर (24+5)/(8+2+5) = 1.9(3)-Eकार्यक्रम बाइट्स के रूप में भी गिना जाता है।
वि।

जैसा कि मैंने इक्का के लिए किया था वैसी ही टिप्पणी: आप दावा कर रहे हैं कि पर्ल आमतौर पर गोल्फ के लिए इस्तेमाल की जाने वाली भाषा नहीं है, लेकिन यह वह भाषा है जो पहली बार गोल्फ शब्द से जुड़ी थी !
पीटर टेलर

और आपका GolfScript प्रोग्राम काम नहीं करता है। एक कार्यशील कार्यक्रम वह जगह होगी n%'+'*'"#{ }"'n/\*~जहां बीच {}का चरित्र एक शाब्दिक नई रेखा है (टिप्पणियों में समर्थित नहीं है)।
पीटर टेलर

@PeterTaylor, GolfScript के साथ तुलना में, पर्ल एक "सामान्य" भाषा है; जावा के साथ तुलना में, यह एक "गोल्फ" भाषा है।
वि।

1
इस के लिए जम्मू वास्तव में बहुत बुरा नहीं है +/".1!:1,~1:। APL शायद और भी छोटा होगा।
एल्गोरिथमशार्क

8

प्रिंट 'हैलो, वर्ल्ड!' स्टडआउट के लिए।

PHP, 13 बाइट्स

Hello, World!

गोल्फस्क्रिप्ट, 15 बाइट्स

'Hello, World!'

अजगर, 14 बाइट्स

"Hello, World!

3
अच्छी तरह से सामयिक। :)
AdmBorkBork

2
न्यू बी: एचसी 9 में +H
नहीं है कि चार्ल्स

2
लेकिन यह गलत तरीके से लिखा गया है, @NotthatCharles
georgeunix

1
@georgeunix अच्छी बात है। आपने अपने "डब्ल्यू" को बड़ा किया।
नहीं कि चार्ल्स

7

स्कोर 48/37 या 1. (297)

T: एक कोड स्निपेट लिखें जो चलने के एक घंटे के भीतर कार्यक्रम को ठीक एक घंटे (जितना संभव हो उतना करीब) के बाद समाप्त करता है। अपवादों के बारे में चिंता न करें, उन्हें अनहेल्दी किया जा सकता है।

ए: जावा (32)

Thread.sleep(3600000);int a=1/0;

B: Befunge 98 के लिए है, TIME फिंगरप्रिंट की आवश्यकता है (43)

"EMIT"4(HMS00p01p02p#;gS-!01gM-!H-!++3-!j;@

यह चलने के समय घंटा, मिनट, और दूसरा लेता है, और कोशिकाओं को 02, 01, और 00 पर रखता है। फिर, यह ;दूसरे भाग पर पहुंच जाता है। दूसरा भाग निम्नानुसार काम करता है:

g          get the value at 00
"EMIT"4(S) get the current time in seconds
-!         subtracts the values and changes a 0 to 1, anything else to 0

इसी तरह मिनट और घंटे के लिए।

++  sums up the values
3-! i the sum is 3, we get a 1, otherwise, we get a 0.
j   jump over the next that many cells
;   skip code execution until the next ;
@   end program

ध्यान दें कि किसी पंक्ति के अंत में पहुंचने पर Befunge स्वचालित रूप से पंक्ति की शुरुआत में वापस चला जाएगा।


जैसा कि हम देख सकते हैं, जब विशिष्ट समय की प्रतीक्षा की जाती है तो Befunge अच्छा नहीं होता है। हालांकि, जावा खराब नहीं है।


9
एपीएल:⎕DL 3600
मारिनस

14
जावा आमतौर पर class Main{public static void main...
Vi के

3
@Vi। "कोड स्निपेट" देखें। मूल रूप से, इसे उस कोड की आवश्यकता होती है जो वास्तव में काम करता है, इससे अधिक नहीं।
जस्टिन

2
मैं Befunge नहीं जानता, लेकिन जावा स्निपेट "कार्यक्रम को समाप्त नहीं करता है" जैसा कि कल्पना से आवश्यक है। इसके लिए System.exit(0);आपकी नींद को या तो एक mainविधि से लपेटना होगा ।
पीटर टेलर

3
@DoorknobofSnow संकलन करने में विफल:error: not a statement
Bob

5

एक निश्चित पाठ फ़ाइल का उत्पादन (498.388888 अंक)

लक्ष्य उत्पादन यहाँ है

पायथन 3.4.3 स्क्रिप्ट इसे प्रिंट करने के लिए 49 बाइट्स है:

for b in dir(__builtins__):print(eval(b).__doc__)

लक्ष्य आउटपुट के बराबर भोले CJam कार्यक्रम, आउटपुट स्ट्रिंग को अंदर लपेटकर "..."और "उसमें होने वाले प्रत्येक से बचकर , 26908 बाइट्स होगा।


बहुत चालाक है, हालांकि यह "विशिष्ट भाषाओं" प्रतिबंध (जो अस्पष्ट है, माना जाता है) के पीछे चल सकता है।
बीएमएसी

निकटतम नियम "विशिष्ट भाषा का उल्लेख करने से बचें" है। अजगर का उल्लेख नहीं है, लेकिन स्पष्ट रूप से इसका मतलब है।
वि।

हाँ, यह जवाब थोड़ा-सा जीभ-गाल है, मैं केवल यह बताना चाहता था कि नियम एक फिसलन ढलान की तरह है। कल्पना कीजिए कि अगर मैंने आउटपुट को और अधिक "मैंगल्ड" कर लिया था - तो, ​​प्रत्येक डॉकस्ट्रिंग के SHA1 चेकसम को लेते हुए - यह दावा करना बहुत अजीब होगा कि "हेक्स अंकों का यह गुच्छेदार गुच्छा बहुत भाषा-विशिष्ट है" :)
लिनियस

अगर मैं एक और "निष्पक्ष" उत्तर देना चाहता था, तो मैं शायद गणितज्ञ का उपयोग करूंगा। आप इसमें बहुत अधिक डोमेन-विशिष्ट चीजें कर सकते हैं जो सीजाम / पायथ / कुछ भी के हजारों बाइट्स ले जाएगा। लेकिन दुख की बात है कि मैं भाषा नहीं जानता।
लिन

आउटपुट के लिए लिंक मर चुका है।
pppery

4

कहो "नमस्ते दुनिया!" (50/26 92 1.92)

"हैलो वर्ल्ड!"

जावास्क्रिप्ट

alert('Hello world!')

DOM लेवल 0 के समर्थन वाले ब्राउज़र में।

पर्ल

use Win32;Win32::MsgBox('Hello world!','',48)

Win32 :: GUI के साथ ActivePerl पर चल रहा है।


alertस्वाभाविक रूप से JS का हिस्सा नहीं है, और GolfScript कार्यक्रम सिर्फ एक टिप्पणी है।
पीटर टेलर

मैंने सादे पर्ल का उपयोग करने के लिए उत्तर बदल दिया है।
टूथब्रश

3

आउटपुट "नमस्ते दुनिया!" जब तक उपयोगकर्ता "q" दबाता है, 1.842 105/44 = 2.386

  1. प्रिंट "नमस्ते दुनिया!" (न्यूलाइन सहित)।
  2. उपयोगकर्ता एक कुंजी दबाता है, जो स्क्रीन पर गूँजती नहीं है।
  3. तब तक दोहराएं जब तक कुंजी दबाया गया "q"।

QBasic ( 52 39 वर्ण)

1?"Hello world!":IF"q"<>INPUT$(1)THEN 1

अपने मूल उत्तर को पोस्ट करने के बाद से, मुझे पता चला कि मैं QB64 में ऑटोफ़ॉर्मेटिंग को बंद कर सकता हूं। : ^ D लाइन नंबर और ?शॉर्टकट के लिए PRINT, यह C जैसी भाषाओं में एक टर्नरी एक्सप्रेशन जैसा दिखता है।

पहला संस्करण:

PRINT "Hello world!"
IF INPUT$(1) <> "q" THEN RUN

पर्ल 5 (100 अक्षर)

while("q"ne$e){print"Hello world!\n";system"stty cbreak -echo";$e=getc;system"stty -cbreak echo";}

उपरोक्त केवल (निश्चित?) UNIX सिस्टम (Ubuntu 12.04 पर परीक्षण किया गया) पर काम करेगा। यह संभव है कि कोई क्रॉस-प्लेटफ़ॉर्म पर जा सके और टर्म :: ReadKey मॉड्यूल का उपयोग करके इसे 91 वर्णों तक ले जा सके , लेकिन मैंने इसका परीक्षण नहीं किया है:

use Term::ReadKey;while("q"ne$e){print"Hello world!\n";ReadMode 3;$e=ReadKey 0;ReadMode 0;}

1

हैलो, दुनिया (3 1/3 अंक)

प्रोग्राम लिखें जो आउटपुट देता है Hello World.

HQ9 + (1 वर्ण)

यह भाषा नहीं है "आमतौर पर गोल्फ के लिए उपयोग किया जाता है", इसलिए मेरा मानना ​​है कि यह यहाँ फिट बैठता है। इस दुभाषिया में काम करता है, वैसे

H

GolfScript (15 अक्षर)

मुझे संदेह है कि यह किसी भी छोटे मिल सकता है, भले ही यह गोल्फस्क्रिप्ट हो।

"Hello World."

8
मुझे नहीं लगता HQ9+कि एक भाषा के रूप में सूट करता है । इसे ट्रिक्स / पहेलियों / मस्ती के लिए डिज़ाइन किया गया है। Brainfuck / unlambda / अन्य गूढ़ भाषाओं को भी ए के अनुरूप नहीं लगता है ।
वि।

@ वी ।: लेकिन इसका इस्तेमाल आमतौर पर गोल्फिंग के लिए नहीं किया जाता है।
कोनराड बोरोस्की

4
आप B भाषा के HQ9+रूप में उपयोग करने की कोशिश कर सकते हैं और इसे जावा या ऐसे ...
Vi

7
ऐसा लगता है कि एक पदानुक्रम है: जावा की तुलना में, पर्ल का एक गोल्फलैंग। पर्ल की तुलना में, गोल्फस्क्रिप्ट एक गोल्फलैंग है। GolfScript की तुलना में, HQ9 + एक गोल्फलैंग है ...
Vi।

@Vi: मैंने आपके कार्य विवरण की सावधानीपूर्वक जाँच की। HQ9 + का उपयोग गोल्फिंग के लिए कभी नहीं किया जाता है, दो विशेष कार्यों को छोड़कर - "99 बोतलें", और "हैलो, दुनिया"। जब तक आप कुछ अन्य कार्य नहीं दिखा सकते हैं जिसमें HQ9 + किसी अन्य प्रोग्रामिंग भाषा के साथ जीतता है, मुझे अभी भी लगता है कि यह परिभाषा फिट बैठता है, भले ही वह इसे गाली देता हो (अरे, यह लोकप्रियता-प्रतियोगिता है )। HQ9 + का उपयोग केवल उन दो कार्यों से संबंधित गोल्फिंग सामान के लिए नहीं किया जाता है। तो, यह आमतौर पर गोल्फ के लिए उपयोग नहीं किया जाता है। दूसरा स्पष्ट रूप से कोडगॉल्फ के लिए डिज़ाइन किया गया है - यह गोल्फस्क्रिप्ट है।
कोनराड बोरोस्की

0

आउटपुट "हैलो वर्ल्ड!", 33/97 = 2.94

एक प्रोग्राम लिखें जो आउटपुट देता है Hello world!

Arduino या GML

Serial.print("Hello world!")

या

show_message("Hello world!")

दोनों 28 अक्षर हैं।

GTB

मैं जीटीबी का उपयोग बहुत अधिक गोल्फिंग के लिए करता हूं (विशेषकर जब से मैंने इसे खुद बनाया है, और यह ट्यूरिंग पूर्ण है)। दुर्भाग्य से, लोअरकेस वर्णों के लिए केवल सीमित समर्थन है (क्योंकि TI-84 कैलकुलेटर इससे निपट नहीं सकता है)। यह शायद सबसे छोटा GTB प्रोग्राम है जो हैलो वर्ल्ड को आउटपुट कर सकता है!

S;"lower",1,1)→_~"H"+S;"expr(",1,1)+_+_+S;"cos(",2,1)+" W"+S;" or ",2,2)+_+S;" and ",4,1)+"!

92 अक्षर।


क्या GTB संस्करण भी इसे सीरियल पोर्ट पर आउटपुट करता है?
वि।

क्या जीटीबी संस्करण जानबूझकर विभिन्न cosएस के साथ फूला हुआ है और exprsयह वास्तव में नियमित रूप से कुछ उत्पादन नहीं कर सकता है? या "चरित्र वास्तव में एक स्ट्रिंग शाब्दिक और मुझे भ्रमित करने वाला नहीं है ...
Vi।

@Vi। यह बिल्कुल भी फूला हुआ नहीं है ... इसे expr से स्ट्रिप e करना है, लोअर से दो l, कोस से o, या से या, l से लोअर, और d से और।
टाइमटेक

'अन्य उपयोगकर्ता बेहतर Bs (शायद अन्य "गोल्फ" भाषाओं में शामिल) का प्रस्ताव कर सकते हैं। '--- मुझे गोल्फ की कोशिश करने दें:"Hello world!"
जॉन ड्वोरक

@JDDvorak तुम शायद सही हो।
टिमटेक 13:00
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.