খুব কম-তৈরি করতে সংক্ষিপ্ততম কোড - খুব উচ্চ গেম


20

আপনাকে একটি খেলা খুব নীচু করতে হবে --- স্বল্পতম কোডে (বাইটে) খুব উচ্চ (টিএলটিএইচ) করতে হবে

খেলার নিয়ম:

  1. সংখ্যার পরিসীমা (-32768..32767) এর বাইরে কম্পিউটার একটি এলোমেলো সংখ্যা নির্বাচন করবে।
  2. এখন আপনি একটি নম্বর সম্পর্কে চিন্তা করবেন এবং এটি ইনপুট করবেন।
  3. আপনার নম্বরটি নির্বাচিত সংখ্যার চেয়ে কম ( TOO LOW) বা উচ্চ ( TOO HIGH) বেশি কিনা তা কম্পিউটার জানায় ।
  4. আপনি যখন সংখ্যাটি অনুমান করেন, কম্পিউটারটি প্রদর্শিত হবে Congrats! You found the number!

কোড বিধি:

  1. অক্ষর ব্যবহার করবেন না T, O, L, W, H, Iএবং Gস্ট্রিং বা চরিত্র লিটারেল মধ্যে (তন্ন তন্ন ছোট হাতের বা বড় হাতের)।
    এই ক্ষেত্রে:

    tolower(T);  // Acceptable  
    cout<<"T";   // Unacceptable
    char ch='T'; // Unacceptable
    
  2. আপনার কোডটি গেমটি শুরু করার আগে গেমের নিয়মগুলি প্রদর্শন করতে পারলে 300 বাইট সরিয়ে ফেলুন

  3. আপনার কোডটি গেমের শেষে এইভাবে নেওয়া টার্নের সংখ্যা এবং প্রদর্শনের সংখ্যা গণনা করতে পারে তবে 50 বাইট সরান :

    "Congrats! You found the number in n turns!"
    

    যেখানে n পরিবর্তে নেওয়া টার্নের সংখ্যা

    "Congrats! You found the number!"  
    
  4. আপনার কোড থেকে 25 বাইট সরিয়ে ফেলুন যদি আপনার কোড ব্যবহারকারীকে বলতে পারে যে আপনার ইনপুট নম্বরটি পূর্ণসংখ্যার সীমা ছাড়িয়েছে।
    উদাহরণ স্বরূপ:

    Enter the number: 40000  
    Sorry! This number is out of range
    Please Enter the number again:  
    
  5. 25 বাইট সরান যদি আপনার কোডটি কোনও অন্তর্নির্মিত র্যান্ডম ফাংশন থেকে র্যান্ডম নম্বর না নেয়।

  6. 10 টি বাইট সরিয়ে ফেলুন যদি আপনার কোডটি "সংকর" রঙে প্রদর্শিত হয় (ডিফল্ট সাদা বাদে কোনও রঙ চয়ন করুন)।

জমা দেওয়ার বিধি:

  1. আপনার ভাষার নামের সাথে একটি শিরোনাম যুক্ত করুন এবং সমস্ত অনুগ্রহ গণনা এবং এর ব্যাখ্যা দিয়ে স্কোর করুন।

  2. আপনার গল্ফড এবং অরোগল্ফড কোড পোস্ট করুন।

বিজয়ী

  1. কমপক্ষে বাইটস সহ উত্তর জিতেছে।
  2. যদি টাই থাকে তবে উত্তর বেশি ভোটের সাথে জিতবে।
  3. বিজয়ী নির্বাচন করা হবে 5 দিন পরে।

সম্পাদনা : আপনার কোড এর আউটপুট দেখান।
সম্পাদনা -২ : আপনি কোড বিধিতে বিধি -২,৩ এবং ৪ এর বিধি -১ উপেক্ষা করতে পারেন

ভাগ্য সুপ্রসন্ন হোক :]


2
এটি কি গেমের নিয়মের বৈধ ব্যাখ্যা? WhileURong(USayNumbr;ISayBigrOrSmalr)
জন ডিভোরাক

1
স্কোরিং সম্পর্কিত আপনার বর্ণনার উপর ভিত্তি করে আপনার কাছে কোনও কোড গল্ফ বা জনপ্রিয়তার প্রতিযোগিতা নেই। এটি একটি কোড চ্যালেঞ্জ (জনপ্রিয়তার টাইব্রেকার সহ)। ট্যাগ উইকিগুলি দেখুন। চ্যালেঞ্জটি যথাযথভাবে ট্যাগ করার জন্য আমি একটি সম্পাদনার প্রস্তাব দিয়েছিলাম। পিএস - জিনক্স! @ এমনিপ
জোনাথন ভ্যান

1
টাই-ব্রেকার সত্ত্বেও আমার কাছে @ জোনাথনভান মাত্রে শব্দটি কোড-গল্ফের মতো মনে হচ্ছে ।
এমনিআইপ

21
এছাড়াও, আমি বিশেষত অন্য খেলোয়াড়দের তাদের উত্তর উন্নত করতে সহায়তা করার বিরুদ্ধে বিধি পছন্দ করি না। দ্য প্রিন্সেস ব্রাইডে আন্দ্রে দ্য জায়েন্টের অমর কথায়, "এটি খুব ক্রীড়াবিদ নয় like"
জোনাথন ভান মাত্রে

1
এই প্রশ্ন তাই। । । ডেভিড এইচ আহল
মাইকেল স্টারন

উত্তর:


2

জাভাস্ক্রিপ্ট (-২১০ পয়েন্ট ( 190বাইটস - 300 (নিয়মগুলির জন্য)) - 50 (অনুমানের সংখ্যার জন্য) - 25 (কোনও বিল্ট-ইন এলোমেলো সংখ্যার উত্স ব্যবহার না করার জন্য) - 25 (ইনপুটটি কোনও স্বাক্ষরের সীমার বাইরে রয়েছে কিনা তা আপনাকে বলার জন্য 16) বিট পূর্ণসংখ্যা) ):

Golfed:

alert('Guess number',n=(m=2<<15)/2-new Date%m);for(z=0;a=+prompt(++z);)alert(a>m|a<1-m?m+'-'+-~-m:a==n?'Great! You found the number in '+z+' turns':atob('VE9P\x47E'+(a>n?'hJR0g=':'xPVw==')))

সম্পূর্ণ কোড (সুন্দরভাবে ফর্ম্যাটেড):

var max = 2 << 15;
var random = max/2 - new Date%max;
var counter = 0;

while (1) {
    var guess = +prompt();

    ++counter;

    if (guess > max | guess < -~-max) {
        alert(-~-max + '-' + max); // Shows that the range is between -32767 and 32768
    } else if (guess > random) {
        alert('TOO HIGH');
    } else if (guess < random) {
        alert('TOO LOW');
    } else if (guess == random) {
        alert('Congrats! You found the number in ' + counter + ' turns');
        break;
    }
}

আউটপুট:

ALERT:  Guess number
PROMPT: 5
ALERT:  TOO LOW
PROMPT: 20000
ALERT:  TOO LOW
PROMPT: 30000
ALERT:  TOO HIGH
PROMPT: 25000
ALERT:  TOO HIGH
PROMPT: 22500
ALERT:  TOO HIGH
PROMPT: 21000
ALERT:  TOO HIGH
PROMPT: 20500
ALERT:  TOO HIGH
PROMPT: 20200
ALERT:  TOO LOW
PROMPT: 20400
ALERT:  TOO LOW
PROMPT: 20450
ALERT:  TOO LOW
PROMPT: 20475
ALERT:  TOO HIGH
PROMPT: 20460
ALERT:  TOO LOW
PROMPT: 20468
ALERT:  TOO HIGH
PROMPT: 20464
ALERT:  TOO LOW
PROMPT: 20466
ALERT:  TOO LOW
PROMPT: 34000
ALERT:  -32767-32768
PROMPT: 20467
ALERT:  Great! You found the number in 17 turns!
PROMPT: (nothing)

@ ইলমারিকারোনেন দুঃখিত, আমি একটি ভুল করেছি। আমি আমার উত্তর আপডেট করেছি।
টুথব্রাশ

ধন্যবাদ, এখন এটি চলে ... তবে আমার যদি মনে হয় তবে এটি ভেঙে যাচ্ছে 0। :-( এছাড়াও, TOO LOW/TOO HIGH
ইলমারি করোনেন

19

পার্ল 5.10+: 159 144 বাইট - 350 = −206 পয়েন্ট

say"Guess 16 bit signed number";$==32767-rand 65536;say(TOO.$",$_<0?LOW:HIGH)while++$i,$_=<>-$=;say"Congrats! You found the number in $i turns!"

সম্পাদনা 2: সাম্প্রতিক নিয়মগুলির পরিবর্তনের ফলে যা আমাকে "অভিনন্দন" বার্তার জন্য কোনও স্ট্রিং আক্ষরিক ব্যবহার করতে দেয়, আমি আমার আসল 159-বাইট সমাধান থেকে 15 বাইট সংরক্ষণ করতে পারি। পুরানো কোডের তুলনায় উপরের নতুন কোড সম্পর্কে বিশেষভাবে কোন উপন্যাস বা আকর্ষণীয় কিছুই নেই (আমি কেবলমাত্র pফাংশন থেকে মুক্তি পেয়েছি এবং sayসরাসরি পরিবর্তে কল করব ), সুতরাং এই পোস্টের বাকী অংশটি নীচে দেখানো মূল কোডটি বর্ণনা করবে:

sub p{say join$",@_}p Guess,16,bit,signed,number;$==32767-rand 65536;p(TOO,$_<0?LOW:HIGH)while++$i,$_=<>-$=;p Congrats."!",You,found,the,number,in,$i,turns."!"

হ্যাঁ, আমি নিয়ম 1 এর বাইরে নরকে গালাগাল করছি bare কারন স্ট্রিং দরকার, যখন আপনার বেনওয়ারওয়ার্ড থাকতে পারে ? ;-)

perl -M5.010পার্ল ৫.১০+ sayবৈশিষ্ট্য সক্ষম করতে চালনা করুন (বা pফাংশনটির বডি print join$",@_,$/প্রতি 5 বাইট অতিরিক্ত ব্যয়ের সাথে প্রতিস্থাপন করুন )।

বোনাস স্কোর:

  • −300 পয়েন্ট: "গেম শুরু করার আগে গেমের নিয়মগুলি প্রদর্শন করুন"
  • −50 পয়েন্ট: "গেমের শেষে নেওয়া টার্নের প্রদর্শন সংখ্যা"

কোডটিতে কঠোর অর্থে কোনও স্ট্রিং লিটারাল থাকে না , তাই আমি বলব যে 1 নীতিটি, প্রযুক্তিগতভাবে, লঙ্ঘন নয়। কৌতুকটি হ'ল পার্ল ছাড়াই use strict, কোনও সনাক্তকারী যা কোনও পরিচিত ভাষার কীওয়ার্ড বা সাবরুটিনের সাথে সামঞ্জস্য না করে তার নিজস্ব নামের সাথে মূল্যায়ন করবে। ফাংশনটি pকেবল শব্দের একটি তালিকা নেয় এবং এগুলি স্পেস দ্বারা পৃথক করে প্রিন্ট করে।

প্লে-মাধ্যমে উদাহরণ:

Guess 16 bit signed number
0
TOO HIGH
-10000
TOO LOW
-5000
TOO HIGH
-7500 
TOO LOW
-6250
TOO HIGH
-6875
TOO LOW
-6553
TOO HIGH
-6700
TOO HIGH
-6790
TOO LOW
-6745
TOO HIGH
-6767
TOO LOW
-6756
TOO HIGH
-6761
Congrats! You found the number in 13 turns!

সম্পাদনা: ওহ, ঠিক আছে, বিধিগুলি বলছে আমাকে কোডের একটি অ গল্ফ সংস্করণও পোস্ট করতে হবে, সুতরাং এখানে এটি চলে। প্রযুক্তিগতভাবে, এটি "ডি-গল্ফড", যেহেতু আমি সাধারণত আমার কোড গল্ফ প্রোগ্রাম কমপক্ষে পুরোপুরি গল্ফযুক্ত আকারে রচনা করি এবং কখনও কখনও কিছু কিছু অংশ কীভাবে মৌলিকভাবে পরিবর্তিত না করে সমস্ত "গল্ফ" অপ্টিমাইজেশানগুলি সরিয়ে ফেলা মুশকিল হতে পারে the প্রোগ্রাম কাজ। তবুও, আমি কমপক্ষে সাদা স্থান, মন্তব্য এবং আরও অর্থপূর্ণ ফাংশন / পরিবর্তনশীল নাম যুক্ত করার চেষ্টা করেছি:

sub output {
    # print all arguments separated by spaces, plus a newline:
    # (in the golfed code, I use the special variable $" instead of " " for a space)
    say join " ", @_;
}

# print the rules:
output Guess, 16, bit, signed, number;

# choose a random number between -32768 and 32767 inclusive:
# (in the golfed version, using the special variable $= allows
# the int() to be left out, since $= can only take integer values)
$number = int( 32767 - rand 65536 );

# loop until the input equals the chosen number, printing "TOO LOW / HIGH":
# (the loop ends when $diff == 0, since 0 is false in Perl)
output (TOO, $diff < 0 ? LOW : HIGH) while ++$count, $diff = (<> - $number);

# print congratulations, including the loop count:
output Congrats."!", You, found, the, number, in, $count, turns."!";

পুনশ্চ. বিকল্প হিসাবে, যদি কেবল স্ট্রিংয়ের পরিবর্তে খালি শব্দ ব্যবহার করা আপনার জন্য খুব চিটচিটে লাগে তবে এখানে একটি 182 বাইট সমাধান রয়েছে যা অক্ষরগুলি TOLWHIG এমনকি বেয়ারওয়ার্ডে ব্যবহার করে না (তবে সেগুলি ট্রান্সলিটেশন অপারেটরে ব্যবহার করে)। এটি এখনও 182 - 350 = −168 পয়েন্টের মোট স্কোরের জন্য একই বোনাসগুলি পেয়েছে :

sub t{pop=~y/kpqvxyz/tolwhig/r}say"Guess 16 bit signed number";$==32767-rand 65536;say uc t"kpp ".($_<0?qpv:xyzx)while++$n,$_=<>-$=;say t"Cpnzraks! Ypu fpund kxe number yn $n kurns!"

আউটপুট ঠিক উপরের মত দেখতে একই। (মূল) নিয়ম অনুসারে, আমি চিঠিগুলি ব্যবহার করি tএবং iনিয়মগুলি মুদ্রণ করতে পারি, এটি অনুমোদিত; এমনকি এই ব্যবহারগুলি অপসারণ করতে কেবল দুটি অতিরিক্ত বাইট লাগবে, যদিও। বিপরীতভাবে, সমস্ত আউটপুট বড় হাতের তৈরি (যা উপরের মন্তব্যের উপর ভিত্তি করে মনে হচ্ছে অনুমোদিত) আমাকে তিনটি বাইট সংরক্ষণ করতে দেয়।


এটি একটি সুন্দর এবং চতুর উত্তর! আমার কাছ থেকে +1
মুকুল কুমার

এখন আমি এটি দেখতে পেয়ে আমি ভাবছি যে আপনি যদি শাস্তি গ্রহণ করেন তবে এটি রুবি ১.৮ এর সাথে পরাজিত হতে পারে def method_missing *args;args.join' ';end
কেয়া

আমি আপনাকে পুরানো জাভাস্ক্রিপ্ট দিয়ে মারলাম!
টুথব্রাশ

14

পাইথন 2: -80 পয়েন্ট (270-300-50)

print"WhileURong(USayNumbr;ISayBigrOrSmalr)"
import random
r=random.randint(-32768,32767)
g=i=1
while g:g=cmp(input(),r);print("C\x6fn\x67ra\x74s! Y\x6fu f\x6fund \x74\x68e number \x69n %d \x74urns!"%i,"\x54\x4f\x4f \x48\x49\x47\x48","\x54\x4f\x4f \x4c\x4f\x57")[g];i+=1

স্কোর 270 টি অক্ষর, নির্দেশাবলী দেখানোর জন্য বিয়োগ 300, "অনুগ্রহগুলিতে অনুমানের সংখ্যা দেখানোর জন্য বিয়োগ 50"! স্ট্রিং, মোট negativeণাত্মক 80 পয়েন্টের জন্য।

আনসকেপড স্ট্রিং সহ লুপটির অব্যাহত সংস্করণ:

while g:
    g=cmp(input(),r)
    print ("Congrats! You found the number in %d turns!"%i,
           "TOO HIGH",
           "TOO LOW")[g]
    i+=1

অন্তর্নির্মিত cmpফাংশনটি মানগুলি সমান হলে 0 দেয়, প্রথমটি যদি ছোট হয় -1 এবং প্রথমটি বড় হয় তবে 1 প্রদান করে। আমি স্ট্রিংগুলির একটি দ্বিগুণ সূচককে মানটি ব্যবহার করি এবং তারপরে আবার লুপের প্রস্থান শর্ত হিসাবে। Negativeণাত্মক সূচক (যেমন -1) এর সাথে একটি সিক্যুয়েন্স সূচীকরণ শুরু থেকে বরং ক্রমিকের শেষে থেকে গণনা করা হয়।

এক্সকেসিডি 221 অনুসারে4 আমি আমদানিগুলি এড়িয়ে যেতে এবং কেবল আমার এলোমেলো সংখ্যা হিসাবে ব্যবহার করার প্ররোচিত হয়েছিল (এটি কি -২২ অক্ষরের বোনাসের জন্য যোগ্যতা অর্জন করবে?)

উদাহরণ রান (ত্রুটির সাথে সম্পূর্ণ, যেখানে আমি নেতিবাচক গণিত করতে পারি না):

WhileURong(USayNumbr;ISayBigrOrSmalr)
0
TOO HIGH
-16000
TOO LOW
-8000
TOO HIGH
-12000
TOO HIGH
-14000
TOO LOW
-13000
TOO HIGH
-13500
TOO HIGH
-13750
TOO LOW
-13625
TOO HIGH
-13712
TOO LOW
-13660
TOO HIGH
-13640
TOO HIGH
-13685
TOO HIGH
-13700
TOO LOW
-13695
TOO LOW
-13690
TOO LOW
-13687
Congrats! You found the number in 17 turns!

আপনার কোডের নমুনা আউটপুট প্রদর্শন করুন।
মুকুল কুমার

2
এই ব্রেকিং কোড বিধি 1 না? যখন ইউরং (ইউএসএইএনএমবিআর; আইএসইবিগ্রোআরসমালার) এক বা একাধিক ওএস, এলএস, ডাব্লু, এসএস, এইচ এবং জিএস রয়েছে।
Fors

@ ক্র্যাঞ্চার: প্রোগ্রামটি শেষ হওয়ার সাথে সাথে আপনি কী বলতে চাইছেন তা আমি নিশ্চিত নই। আপনি পাওয়ার পরে মানটি gশূন্য হয় এবং whileলুপ শেষ হয়।
ব্ল্যাককিংহাত

@ ব্ল্যাককিংএইচটি ওফস, দ্রুত পড়ুন
ক্রুঙ্কার

@ForsYou can ignore Rule-1 for Rules-2,3 & 4 in Code Rules
Cruncher

13

জাভাস্ক্রিপ্ট 293, -300 (নিয়মাবলী) - 50 (প্রদর্শন সক্রিয়) - 25 (পরিসীমা সতর্কতা) - 25 (কোনও র্যান্ডম ফাংশন নেই) = -107 (নতুন স্কোর)

r=new Date%65536+~(z=32767);n=x="";for((A=alert)("\107uess my number, \111 \147\151ve feedback");(x=prompt())!=r;A(0>(x-~z^x-z)?"\164\157\157 "+(x>r?"\150\151\147\150":"\154\157\167"):"Ran\147e: "+~z+" - "+z))n++;A("C\157n\147ra\164s! Y\157u f\157und \164\150e number \151n "+ ++n+"\164urns!")

আমি দাবি করছিলাম যে আরজিবি কনভেনশন দ্বারা কালো একটি রঙ, তবে তা হবে প্রতারণা ...

ওহ, এবং আমি যুক্ত করতে পারি, কোন ব্রেকিং নিয়ম # 1, হয় না!

সতর্কতা এবং প্রম্পটের একটি সিরিজের আউটপুট

ALERT: Guess my number, I give feedback
PROMPT: 0
ALERT: too low
PROMPT: 16000
ALERT: too low
PROMPT: 24000
ALERT: too low
PROMPT: 28000
ALERT: too high
PROMPT: 26000
ALERT: too high
PROMPT: 25000
ALERT: too low
PROMPT: 25500
ALERT: too high
PROMPT: 25250
ALERT: too low
PROMPT: 25375
ALERT: too high
PROMPT: 25310
ALERT: too low
PROMPT: 25342
ALERT: too low
PROMPT: 25358
ALERT: too low
PROMPT: 25366
ALERT: too high
PROMPT: 25362
ALERT: too high
PROMPT: 25360
ALERT: too high
PROMPT: 25359
ALERT: Congrats! You found the number in 16 turns!

অবহেলিত কোড:

r = (new Date)%65536+~(z=32767); //Generates random number in range based off date's milliseconds... I'd use epoch, but I need to conserve
n=x=""; // Sets count and input to blank, these change as time goes on
// The line below sets up a call for `alert`, provides the initial rules, and subsequent loops compares the prompt with the number, as well as sets up "too", "high",  "low" and "out of range" message strings, and provides the feedback
for((A=alert)("\107uess my number, \111 \147\151ve feedback");(x=prompt())!=r;A(0>(x-~z^x-z)?"\164\157\157 "+(x>r?"\150\151\147\150":"\154\157\167"):"Ran\147e: "+~z+" - "+z))
{
    n++; // adds one to count providing the number isn't guessed yet
}
alert("C\157n\147ra\164s! Y\157u f\157und \164\150e number \151n "+ ++n+" \164urns!") // Congratulates the player, and displays the correct number of turns taken

আপনি নিয়ম যত্ন সহকারে পড়েন? ভাল আপনি একটি আউটপুট সঙ্গে অগল্ফড কোড পোস্ট করতে হবে
মুকুল কুমার

@ মুকুলকুমার বাছাই করেছেন ...
ওলিওয়েস্ট

আপনি আপনার উত্তর prefixing দ্বারা 4 সংরক্ষণ করতে পারবেন A=alert;এবং সব প্রতিস্থাপন alertসঙ্গে A। আর যদি আপনি A(0>(x...সেমিকোলনের পরে সতর্কতাটি সরিয়ে নেন তবে আরও একটি prompt())!=r;)n++1
ডকম্যাক্স

আপনি পরিবর্তন করতে পারেন feedback if too high/lowযা 84 অক্ষর বর্তমানে ব্যবহার i give feedback(যা শুধুমাত্র করতে হবে \151 \147\151ve feedbackবা 24 অক্ষর সংরক্ষণ করতে 60 অক্ষর
corsiKa

1
আমি ভুল হতে পারি, তবে আমি মনে করি আপনি চূড়ান্ত সতর্কতা অবলম্বন করার জন্য সংরক্ষণের n++জন্য লুপটি x=prompt(n++)থেকে সরানোতে পারেন + ++n+। এটি 3 সাশ্রয় করবে
ডকম্যাক্স

7

জাভাস্ক্রিপ্ট, 324 বাইট, স্কোর -76

[নিয়ম পরিবর্তনের কারণে আপডেট হয়েছে]

  • 324 বাইট
  • বিধি প্রদর্শন করার জন্য -300
  • ব্যবহারকারী জিতলে টার্নগুলি দেখানোর জন্য -50
  • -25 ব্যবহারকারীর বলার জন্য যখন সে ব্যাপ্তির বাইরে কোনও নম্বর দেয়
  • অন্তর্নির্মিত এলোমেলো ব্যবহার না করার জন্য -25 (আপডেট)

মোট স্কোর: -76

Golfed:

function q(y){return y.replace(/./g,function(x){h=x.charCodeAt(0);return String.fromCharCode(h>32&h<58?h+32:h)})}d=o=32768;alert("WhileURong(USayNumbr;ISayBigrOrSmalr)");for(a=1,n=new Date%(2*o)-o;d-n;a++)d=+prompt(a),alert(d>=o|d<-o?"BAD":d<n?q("4// ,/7"):d>n?q("4// ()'("):"Congrats! You found the number in "+a+" turns!")

এই জগাখিচুড়ি দেয়।

প্রথমত, সঠিকভাবে আইডেন্টড (তবে এটি অবধি বিহীন কোড সহ এখনও খুব ভাল নয়):

function q(y) {
  return y.replace(/./g, function(x) {
    h = x.charCodeAt(0);
    return String.fromCharCode(h > 32 & h < 58 ? h + 32 : h)
  })
}

d = o = 32768;
alert("WhileURong(USayNumbr;ISayBigrOrSmalr)");

for (a = 1, n = new Date % (2 * o) - o; d - n; a++)
  d = +prompt(), alert(d >= o | d < -o ? "BAD" : d < n ? q("4// ,/7") : d > n ? q("4// ()'(") : "Congrats! You found the number in " + a + " turns!")

দ্বিতীয়ত, শনাক্তকারীদের নামকরণ:

function unencrypt(encrypted) {
  return encrypted.replace(/./g, function(character) {
    charCode = character.charCodeAt(0);
    return String.fromCharCode(charCode > 32 & charCode < 58 ? charCode + 32 : charCode)
  })
}

guess = limit = 32768;
alert("WhileURong(USayNumbr;ISayBigrOrSmalr)");

for (tries = 1, randomNumber = new Date % (2 * o) - o; guess - randomNumber; tries++)
  guess = +prompt(),
  alert(guess >= limit | guess < -limit ? "BAD" : guess < randomNumber ? unencrypt("4// ,/7") : guess > randomNumber ? q("4// ()'(") : "Congrats! You found the number in " + tries + " turns!")

সুতরাং আন-এনক্রিপ্ট ফাংশনটি ASCII 33 ( !) এবং ASCII 58 ( :) এর মধ্যে সমস্ত অক্ষর পেয়েছে এবং 32 টি যোগ করে, তাদের পরিসরে অক্ষরে রূপান্তরিত করে A-Z

সমস্ত স্ট্রিং আনিক্রিপ্ট করে কোডটিকে উনগল্ফকে আরও বেশি দেয়:

guess = limit = 32768;
alert("WhileURong(USayNumbr;ISayBigrOrSmalr)");

for (tries = 1, randomNumber = new Date % (2 * o) - o; guess - randomNumber; tries++)
  guess = +prompt(),
  alert(guess >= limit | guess < -limit ? "BAD" : guess < randomNumber ? "TOO LOW" : guess > randomNumber ? "TOO HIGH" : "Congrats! You found the number in " + tries + " turns!")

এবং পরিশেষে কিছু নির্দেশাবলী অন্য জায়গায় সরিয়ে নেওয়া যাক, দীর্ঘ ত্রৈমাসিক চেইনগুলি আইএফ এবং এলেস দিয়ে প্রতিস্থাপন করুন, সুস্পষ্ট স্ট্রিংগুলিতে যোগ দিন এবং গণিতকে সহজ করুন, পাঠযোগ্যতা বাড়ানোর জন্য:

guess = 32768;
alert("WhileURong(USayNumbr;ISayBigrOrSmalr)");

randomNumber = new Date % 65536 - 32768;

for (tries = 1; guess - randomNumber; tries++) {
  guess = +prompt(); // The preceding + is a golfing trick to convert string to number.
  if (guess > 32767 | guess < -32768) {
    alert("BAD");
  } else if (guess < randomNumber) {
    alert("TOO LOW");
  } else if (guess > randomNumber) {
    alert("TOO HIGH");
  } else {
    alert("Congrats! You found the number in " + tries + " turns!");
  }
}

নমুনা:

ALERT:  WhileURong(USayNumbr;ISayBigrOrSmalr)
PROMPT: 5
ALERT:  TOO LOW
PROMPT: 20000
ALERT:  TOO LOW
PROMPT: 30000
ALERT:  TOO HIGH
PROMPT: 25000
ALERT:  TOO HIGH
PROMPT: 22500
ALERT:  TOO HIGH
PROMPT: 21000
ALERT:  TOO HIGH
PROMPT: 20500
ALERT:  TOO HIGH
PROMPT: 20200
ALERT:  TOO LOW
PROMPT: 20400
ALERT:  TOO LOW
PROMPT: 20450
ALERT:  TOO LOW
PROMPT: 20475
ALERT:  TOO HIGH
PROMPT: 20460
ALERT:  TOO LOW
PROMPT: 20468
ALERT:  TOO HIGH
PROMPT: 20464
ALERT:  TOO LOW
PROMPT: 20466
ALERT:  TOO LOW
PROMPT: 20467
ALERT:  Congrats! You found the number in 16 turns!"

1
আমি সত্যিই এটি পছন্দ করি :)
উওল ভ্যানিলিবার লুটজ

আপনার কোডের নমুনা আউটপুট প্রদর্শন করুন।
মুকুল কুমার

@MukulKumar। সম্পন্ন, আউটপুট যুক্ত
ভিক্টর স্টাফুসা

7

সি - 272 টি অক্ষর - 300 - 50 - 25 = -103

  • বিধি প্রদর্শন করার জন্য -300;
  • প্লেয়ারকে টার্নের সংখ্যা বলার জন্য -50;
  • স্ট্যান্ডার্ড আরএনজি লাইব্রেরি ব্যবহার না করার জন্য -25।

গল্ফ কোড:

main(i){short a,c=i=0,b=time(0);for(a=b;b--;a=(a*233)+4594);b=a;puts("WhileURong(USayNumbr;ISayBigrOrSmalr)");while(1){i++;scanf("%hi",&a);if(a==b){printf("Congrats! You found the number in %i turns!",i);break;}for(c=0;c^9;c++)putchar(c[a<b?"kff7cfn7!":"kff7_`^_!"]-23);}}

Ungolfed:

int main(int i) {
    short a,
          b = time(0),
          c = i = 0;

    for( a = b ; b-- ; a = (a * 233) + 4594);
    b = a;

    puts("WhileURong(USayNumbr;ISayBigrOrSmalr)");

    while(1) {
        i++;
        scanf("%hi", &a);
        if(a == b) {
            printf("Congrats! You found the number in %i turns!", i);
            break;
        }
        for( c = 0 ; c ^ 9 ; c++ )
            putchar(c[ a < b ? "kff7cfn7!" : "kff7_`^_!" ] - 23);
    }
}

আউটপুট:

আউটপুট


আউটপুট কোথায়?
মুকুল কুমার

@ ইলমারিকারোনেন, EDIT2। এছাড়াও, আমি শুধু মহাকাব্য গ্রহণ করি না।
ওবারন

@ ওবারন অনুগ্রহ করে আউটপুটটি পোস্ট করুন
মুকুল কুমার

@ মুকুলকুমার, পোস্ট করেছেন।
ওবেরন

5

সি: 237 - 300 - 50 - 25 - 25 - 10: -173 পয়েন্ট

বিধিগুলির জন্য -300, অনুমানের সংখ্যা দেখানোর জন্য -50, কোনও অন্তর্নির্মিত র্যান্ডম সংখ্যার জেনারেটরটি ব্যবহার না করার জন্য 25, -রেন্দ্র বার্তার বাইরে -25 এবং সংকেত বার্তাটি রঙ করার জন্য -10।

int s[3]={542068564},g,n;main(r){for(r=(short)&r,puts("WhileURong(USayNumbr;ISayBigrOrSmalr)");n++,scanf("%d",&g),s[1]=g<r?5721932:1212631368,g^r;puts(g^(short)g?"OOR":s));printf("\033[31mCongrats! You found the number in %d turns!",n);}

Ungolfed:

int s[3]={542068564},g,n;

main(r){
        for(
                r=(short)&r,
                puts("WhileURong(USayNumbr;ISayBigrOrSmalr)");

                n++,
                scanf("%d",&g),
                s[1]=g<r?5721932:1212631368,
                g^r;

                puts(g^(short)g?"OOR":s)
        );

        printf("\033[31mCongrats! You found the number in %d turns!",n);
}

উদাহরণ রান:

WhileURong(USayNumbr;ISayBigrOrSmalr)
-32769
OOR
32768
OOR
0
TOO HIGH
-16384
TOO HIGH
-24576
TOO HIGH
-28672
TOO LOW
-26624
TOO LOW
-25600
TOO HIGH
-26112
TOO LOW
-25856
TOO LOW
-25728
TOO LOW
-25664
TOO HIGH
-25696
TOO HIGH
-25712
TOO LOW
-25704
Congrats! You found the number in 15 turns!

শেষ লাইনটি লাল হিসাবে দেখায়।


বলিহারি! আপনি সমস্ত উদয় হিট !!!
মুকুল কুমার

4

বাশ, -137

স্কোর

273 (বাইটস) - 300 (নিয়ম) - 50 (গণনা চেষ্টা করে) - 25 (ওএফ সতর্কতা) - 25 (কাস্টম পিআরএনজি) - 10 (রঙ)

গল্ফ সংস্করণ

IFS=# a=(`<$0`)
c=65536
y=$[10#`date +%N`%c]
e(){ echo -e ${a[$1]/z/$z};}
e 7
while read x
do((z++,x+=c/2,i=3+(x>y),x==y))&&break
((x<0||x>c-1))&&i=6
e $i
done
e 5
#TOO LOW#TOO HIGH#\e[32mCongrats! You found the number in z turns!#OOR#Guess my number. I'll say HIGH or LOW.

নোট করুন যে শেষ লাইনটি একটি মন্তব্য, সুতরাং এতে কোনও স্ট্রিং বা অক্ষর অক্ষর নেই।

উদার সংস্করণ

MYNUMBER=$[10#$(date +%N) % 65536 - 32768]
echo "Guess my number. I'll say HIGH or LOW."

while true; do
    read YOURGUESS
    GUESSES=$((GUESSES + 1))

    if ((YOURGUESS == MYNUMBER)); then
        break
    elif ((YOURGUESS < -32768 || YOURGUESS > 32767)); then
        echo OOR
    elif ((YOURGUESS < MYNUMBER)); then
        echo "TOO LOW"
    else
        echo "TOO HIGH"
    fi
done

echo -e "\e[32mYou found the number in $GUESSES turns!"

নমুনা আউটপুট

$ ./tlth
Guess my number. I'll say HIGH or LOW.
-32769
OOR
32768
OOR
0
TOO LOW
16384
TOO HIGH
8192
TOO HIGH
4096
TOO HIGH
2048
TOO HIGH
1024
TOO HIGH
512
TOO HIGH
256
TOO HIGH
128
TOO HIGH
64
TOO HIGH
32
TOO LOW
48
TOO HIGH
40
TOO LOW
44
TOO HIGH
42
Congrats! You found the number in 17 turns!

শেষ লাইন সবুজ ছাপা হয়।


3

সি #: -30 পয়েন্ট

  • 345 বাইট
  • বিধি প্রদর্শন করার জন্য -300
  • ব্যবহারকারী জিতলে টার্নগুলি দেখানোর জন্য -50
  • -25 ব্যবহারকারীর বলার জন্য যখন সে ব্যাপ্তির বাইরে কোনও নম্বর দেয়

গল্ফড :

int l=-32768,h=32767,n=new Random().Next(l,h),t=0,g=h+1;Console.Write("WhileURong(USayNumbr;ISayBigrOrSmalr)\n");while(n!=g){g=Convert.ToInt32(Console.ReadLine());Console.WriteLine(g==n?"C\x6fn\x67ra\x74s! Y\x6fu f\x6fund \x74\x68\x65 number in {0} \x74urns!":g<l||g>h?"BAD":g<n?"\x54\x4f\x4f \x4c\x4f\x57":"\x54\x4f\x4f \x48\x49\x47\x48",++t);}

এটি চালানোর জন্য, এটা একটি ফাইল রাখা (code.cs) এবং দিয়ে চালানো scriptcs কমান্ড লাইন করুন: scriptcs code.cs

অবহেলিত : ভেরিয়েবলের নামগুলি বোঝার জন্য আরও সহজ কিছুতে প্রসারিত করা হয়েছে এবং হেক্স অক্ষরগুলি বাস্তব অক্ষরে রূপান্তরিত করেছে।

int low = -32768, 
    high = 32767, 
    number = new Random().Next(low, high), 
    turns = 0, 
    guess = h+1;
Console.Write("WhileURong(USayNumbr;ISayBigrOrSmalr)\n");  // instructions
while (number != guess)
{
    guess = Convert.ToInt32(Console.ReadLine());
    Console.WriteLine(
      guess == number                                     // if you got it right 
        ? "Congrats! You found the number in {0} turns!"  // give the victory speech
        : guess < low || guess > high                     // if out of range
          ? "BAD"                                         // let them know
          : guess < number                                // if guess is low
            ? "TOO LOW"                                   // tell them low
            : "TOO HIGH"                                  // otherwise tell them high
      , ++turns                                           // preincrement turns, add to output
    );
}

নমুনা আউটপুট এখানে উপলব্ধ


3
দুঃখিত এই কহন, কিন্তু নিয়ম রাজ্যের জন্য যে, " অক্ষর ব্যবহার করবেন না T, O, L, W, H, Iএবং G(তন্ন তন্ন ছোট হাতের বা বড় হাতের) স্ট্রিং বা চরিত্র লিটারেল হবে। "
ভিক্টর Stafusa

তাই প্রতিস্থাপন T, O, L... সঙ্গে \x54, \x4F, \x4C... আর তুমি জরিমানা।
অলস

ধন্যবাদ। আমি কেবল গল্ফযুক্ত সংস্করণে স্ট্রিং লিটারালগুলিতে প্রয়োগযোগ্য অক্ষরের জন্য হেক্স এনকোডিং রেখেছি এবং সেই অনুযায়ী স্কোরিংটি সংশোধন করেছি।
ইয়াকভ এলিস

আপনার কোডের নমুনা আউটপুট প্রদর্শন করুন।
মুকুল কুমার

@ মুকুলকুমার আউটপুট জন্য এখানে দেখুন । আমি যুক্তিতে কিছু ছোট পরিবর্তনও করেছি, একটি সমস্যা সমাধান করেছি।
ইয়াকভ এলিস

2

সি ++ 505 + (-300-50-25-25) = 105

-300: নির্দেশাবলী
-50: পালা সংখ্যা দেখানো হচ্ছে
-25: এলোমেলো ফাংশন ব্যবহার করা না
-25: ইনপুট সীমার বাইরে সম্পর্কে সতর্ককারী ব্যবহারকারী

GOLFED

#include<iostream>
#include<stdlib.h>
using namespace std;int main(){short int a,i=0,*r=new short int;int b=0;a=*r;char t[]={84,79,79,' ','\0'},l[]={76,79,87,'\n','\0'},h[]={72,73,71,72,'\n','\0'};cout<<"WhileURong(USayNumbr;ISayBigrOrSmalr)\n";while(a!=b){cin>>b;if(b<-32768||b>32767){cout<<"Sorry! the number is out of range please enter the number again\n";continue;}i++;if(b<a){cout<<'\n'<<t<<l;}if(b>a){cout<<'\n'<<t<<h;}if(a==b){cout<<"Congrats!You found the number in "<<i<<" turns!";}}return 0;}  

UNGOLFED

#include<iostream>
#include<stdlib.h>
using namespace std;
int main()
{
    short int a,i=0,*r=new short int;
    int b=0;
    a=*r;
    char t[]={84,79,79,' ','\0'},l[]={76,79,87,'\n','\0'},h[]={72,73,71,72,'\n','\0'};
    cout<<"WhileURong(USayNumbr;ISayBigrOrSmalr)\n";
    while(a!=b)
    {
        cin>>b;
        if(b<-32768||b>32767)
        {
            cout<<"Sorry! the number is out of range please enter the number again\n";
            continue;
        }
        i++;
        if(b<a)
        {
            cout<<'\n'<<t<<l;
        }
        if(b>a)
        {
        cout<<'\n'<<t<<h;
        }
    if( a==b)
    {   

            cout<<"Congrats!You found the number in "<<i<<" turns!";
        }
    }
    return 0;
}  

আউটপুট


ব্যক্তিগতভাবে, আমি নিজেকে আটকাতে পারিনি .. :)
মুকুল কুমার

2

সি, 183-300-25 = -142

নিয়মগুলির জন্য 183 বাইটস -300 - 25 এলোমেলো গ্রন্থাগার না ব্যবহারের জন্য

main(){short g,n=time(0)*(time(0)&1?1:-1);puts("WhileURong(USayNumbr;ISayBigrOrSmalr)");while(g^n)scanf("%d",&g),puts(g>n?"TOO HIGH":g<n?"TOO LOW":"Congrats! You found the number!");}

অবারিত সংস্করণ:

main(){
    short g,n=time(0)*(time(0)&1?:-1);
    puts("WhileURong(USayNumbr;ISayBigrOrSmalr)");
    while(g^n)
        scanf("%d",&g),
        puts(g>n?"TOO HIGH":g<n?"TOO LOW":"Congrats! You found the number!");
}

নমুনা রান:

WhileURong(USayNumbr;ISayBigrOrSmalr)
40
TOO HIGH
20
TOO HIGH
1
TOO HIGH
0
TOO HIGH
-20
TOO HIGH
-200
TOO HIGH
-2000
TOO HIGH
-20000
TOO LOW
-10000
TOO LOW
-5000
TOO LOW
-3000
TOO HIGH
-4000
TOO LOW
-3500
TOO HIGH
-3700
TOO HIGH
-3900
TOO HIGH
-3950
TOO HIGH
-3970
TOO LOW
-3960
Congrats! You found the number!

"TOO HIGH"এবং "TOO LOW"উভয় অবৈধ অক্ষর রয়েছে TOLWHIGtolwhig
ওবেরন

যেমন "অভিনন্দন! আপনি নম্বরটি পেয়েছেন!" এবং "অথুরং (ইউএসএইএনএমবিআর; আইএসএবিগ্রোআরসমার)"।
Fors

@ ফারস তবে সেগুলি অনুমোদিত ( EDIT2 দেখুন )।
ওবেরন

তারা অবশ্যই! কোনও কারণে আমি সম্পাদনাটি মিস করেছি।
Fors

@ ওবারন তাই 2 এডিটTOO LOW দ্বারা অনুমোদিত ?
টুথব্রাশ

2

জে - 190 চর -300 -50 = -160 পিটিএস

'Congrats, you found the number in ',' turns!',~":1>:@]^:(]`(1[2:1!:2~a.{~71+13 8 8 _39,(5 8 16;1 2 0 1){::~0&>)@.*@-[:".1!:1@1:)^:_~32767-?2^16['WhileURong(USayNumbr;ISayBigrOrSmalr)'1!:2]2

ব্যাখ্যা (মনে রাখবেন যে ডান থেকে বামে জে পড়ছে):

  • 'WhileURong(USayNumbr;ISayBigrOrSmalr)'1!:2]2 - নিয়মগুলি মুদ্রণ করুন।
  • 32767-?2^16[- রিটার্ন মান টস করুন, এবং তারপরে 0 এবং 2 ^ 16-1 এর মধ্যে একটি এলোমেলো সংখ্যা তৈরি করুন। তারপরে, 32767 থেকে বিয়োগ করে এটিকে -32768..32767 রেঞ্জের সাথে সামঞ্জস্য করুন।
  • 1>:@]^:(...)^:_~- x u^:v^:_ yপ্যাটার্নটি কিছুক্ষণের মতো লুপের মতো। xস্থির থাকে, এবং yপ্রতিটি প্রয়োগের সাথে মিউটেশন লাভ করে u। এটি x v y0 অবধি প্রত্যাবর্তন অবধি অব্যাহত থাকে বা x u yএর কোনও পরিবর্তন হয় না y~অদলবদল দুটি আর্গুমেন্ট, যাতে xর্যান্ডম সংখ্যা হতে হবে এবং y1. আমাদের এ শুরু হবে uহয় >:@], যা এই 1 এবং এটা আয় বৃদ্ধি তাই এটি একটি পাল্টা এবং হিসাবে কাজ করে x u yঅবসান অবস্থায় ঘটতে না পারে।
  • [:".1!:1@1:- কাউন্টারটি নিন এবং এর পরিবর্তে ( 1:) পরিবর্তে 1 নম্বরটি ব্যবহার করে এর মানটিকে উপেক্ষা করুন । 1!:1কীবোর্ড (ফাইল হ্যান্ডেল 1) থেকে ইনপুট ( ) এর একটি লাইন পড়ুন এবং এটি কার্যকর করুন ( ".)। এটি জে, যার নেতিবাচক চিহ্নটি সাধারণত থাকে _, ফর্মে সংখ্যার তুলনা করতে -n( সংখ্যার উপর প্রয়োগ করা অবহেলা হিসাবে মূল্যায়ন n) করে।
  • ]`(...)@.*@-- আগে থেকে এলোমেলো সংখ্যার এবং অনুমানের পার্থক্য নিন ( -)। এখন, আমরা এই পার্থক্যটি শূন্য ( @.*) এর উপর নির্ভর করে পরবর্তী ক্রিয়াটি নির্বাচন করি । যদি এটি হয়, ]`ফলাফল হিসাবে ফলাফলটি ( ) এ ফিরে x v yআসুন, যাতে কার্যকর করা বন্ধ হয় এবং পুরো লুপটি কাউন্টারকে ফেরত দেয়। অন্য ...
  • 71+13 8 8 _39,(5 8 16;1 2 0 1){::~0&>- 5 8 16সংখ্যাটি নেতিবাচক 1 2 0 1হলে এবং যদি এটি ইতিবাচক হয় তবে অ্যারেটি ফিরিয়ে দিন। তারপরে 13 8 8 _39সব কিছুতে 71 যোগ করুন এবং যুক্ত করুন, সুতরাং আমাদের হয় হয় 84 79 79 32 76 79 87বা হয়84 79 79 32 72 73 71 72
  • 1[2:1!:2~a.{~- বর্ণমালাগুলির a.সাথে বর্ণমালা সূচী করে এই সংখ্যাগুলিকে ASCII টি অক্ষরে পরিণত করুন। তারপরে এগুলি মুদ্রণ করুন 1!:2(ফাইল হ্যান্ডেল 2 ব্যবহার করে) এবং ফলাফল হিসাবে 1 এ ফিরে আসুন x v y
  • 'Congrats, you found the number in ',' turns!',~":- লুপটি শেষ হয়ে গেলে, এটি কাউন্টারটি ফেরত দেয়। এটিকে একটি স্ট্রিংয়ে রূপান্তর করুন ":এবং স্ট্রিং 'Congrats, you found the number in 'এবং এর মধ্যে রাখুন ' turns!'

নমুনা আউটপুট:

   'Congrats, you found the number in ',' turns!',~":1>:@]^:(]`(1[2:1!:2~a.{~71+13 8 8 _39,(5 8 16;1 2 0 1){::~0&>)@.*@-[:".1!:1@1:)^:_~32767-?2^16['WhileURong(USayNumbr;ISayBigrOrSmalr)'1!:2]2
WhileURong(USayNumbr;ISayBigrOrSmalr)
0
TOO HIGH
-20000
TOO LOW
-10000
TOO LOW
-5000
TOO HIGH
-7500
TOO HIGH
-8750
TOO HIGH
-9000
TOO HIGH
-9500
TOO LOW
-9250
TOO HIGH
-9375
TOO HIGH
-9450
TOO LOW
-9400
TOO HIGH
-9425
TOO HIGH
-9437
TOO LOW
-9431
TOO LOW
-9428
TOO HIGH
-9430
TOO LOW
-9429
Congrats, you found the number in 18 turns!

2

জাভাস্ক্রিপ্ট -40

335 - 300 (নিয়ম) - 50 (গণনা ঘুরিয়ে) - 25 (সীমার বাইরে)

জিতবে না তবে আমার মনে হয় এমন চিঠিগুলি পাওয়ার এক মজার উপায়।

Golfed

!function T(O,L,W,H,I,G){a=T.toString();c=L.floor(65536*L.random())+H;O(W+G+" between "+H+" & "+I);k=(f=a[9]+(d=a[11])+d+" ")+(e=a[17])+a[19]+a[21]+e;l=f+a[13]+d+a[15];for(m=1;(n=prompt(W+G))!=c;m++)n<H||n>I?O("Out of range"):n>c?O(l):O(k);O("Congrats! You found the"+G+" in "+m+" turns!")}(alert,Math,"Guess a",-32768,32767," number")

Ungolfed

!function T(O,L,W,H,I,G){
    fn = T.toString();
    random = L.floor(L.random() * 65536) + H;

    O(W + G + " between " + H + " & " + I);

    tooLow = (too = fn[9] + (o = fn[11]) + o + " ") + (h = fn[17]) + fn[19] + fn[21] + h;
    tooHigh = too + fn[13] + o + fn[15];

    for (n=1; (guess = prompt(W + G)) != random; n++) {
        if (guess < H || guess > I) {
            O("Out of range");  
        } else if (guess > random) {
            O(tooHigh);
        } else {
            O(tooLow);  
        }
    }

    O("Congrats! You found the" + G + " in " + n + " turns!");
}(alert, Math, "Guess a", -32768, 32767, " number")

নমুনা আউটপুট

(ALERT) Guess a number between -32768 & 32767
(PROMPT) Guess a number
9999999
(ALERT) Out of range
(PROMPT) Guess a number
0
(ALERT) TOO LOW
(PROMPT) Guess a number
8008
(ALERT) Congrats! You found the number in 3 turns!

1

এপিএল (ডায়ালগ) (157 - 300 - 50 = -193)

(হ্যাঁ, এগুলি গণনা বাইট হিসাবে, এপিএল চরসেটটি একটি বাইটে ফিট করে))

আমি দাবি করেছি "গেমের নিয়মগুলি প্রদর্শন করুন" এবং "টার্নের সংখ্যা গণনা করুন"।

G
n←32768-?65536
t←0
⎕←'Guess 16-bit signed number'
t+←1
→8/⍨n=g←⎕
⎕←⎕AV[(⌽⎕AV)⍳'×↑↑ ','○↑-' '∇⌊∘∇'⊃⍨1+n<g]
→4
⎕←'Congrats! You found the number in't'tries!'

উদাহরণ রান:

      G
Guess 16-bit signed number
⎕:
      0
TOO HIGH
⎕:
      -10000
TOO LOW
⎕:
      -5000
TOO LOW
⎕:
      -2500
TOO LOW
⎕:
      -1250
TOO HIGH
⎕:
      -1750
TOO LOW
⎕:
      -1500
TOO LOW
⎕:
      -1375
TOO LOW
⎕:
      -1300
TOO LOW
⎕:
      -1275
TOO LOW
⎕:
      -1265
TOO HIGH
⎕:
      -1270
TOO HIGH
⎕:
      -1273
 Congrats! You found the number in  13  tries!

Ungolfed:

GuessNumber;num;tries;guess;decode;too;low;high
decode←{⎕AV[(⌽⎕AV)⍳⍵]} ⍝ invert the character code, char 1 becomes char 255 etc.
num←32768-?65536 ⍝ select a random number
tries←0

⍝ strings for low/high
too←decode '×↑↑ '
low←decode '○↑-'
high←decode '∇⌊∘∇'

⎕←'Guess 16-bit signed number'

try:
  tries +← 1
  guess ← ⎕
  →(guess=num)/found
  ⍝ still here: number was wrong
  ⎕←too, (1+num<guess)⊃low high  ⍝ output appropriate word
  →try ⍝ try again
found:
  ⎕←'Congrats! You found the number in' tries 'tries!'

1

পোগো: -95 (255 - 300 - 50)

method main:void
    print("Guess the number. You will be told if you are high or low.")
    declare(integer,n,0)
    declare(integer,i,0)
    declare(integer,j,0)
    random() i
    while j != i
        set(n+1) n
        print("Number?")
        getinput() j
        if j > i
            print("High")
        end
        else
            print("Low")
        end
    end
    print("Yay" n "turns")
end main

যদি সংখ্যাটি 10 ​​হয়:

নম্বর?

5

কম

8

কম

12

উচ্চ

10

ইয়ে 4 টার্নস


অক্ষর গণনাটি সমস্ত সাদা স্থান অপসারণ সহ কোডের ভিত্তিতে তৈরি।

নোট করুন যে পোগো কোনও জাল ভাষা নয়। আমি এটি তৈরি করেছি এবং এর জন্য একটি সংকলক এবং আইডিই লিখেছি: https://github.com/nrubin29/Pogo


আমার সম্পাদনা এবং সম্পাদনা
মুকুল কুমার

সম্পাদনা অনুসারে আপডেট হয়েছে।
nrubin29
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.