সংক্ষিপ্ততম কোনামি কোড


15

সমস্যাটি

আপনাকে অবশ্যই এমন একটি প্রোগ্রাম লিখতে হবে যা রানটাইমের সময় কোনামি কোড টাইপ করা হয়, " +30 lives" স্ট্রিংটি প্রিন্ট করে এবং কম্পিউটারের স্পিকার থেকে আপনার পছন্দের একটি শব্দ শুনতে পায়।

সংজ্ঞা

"কোনামি কোড" UUDDLRLRBAএন্টার কী টিপানোর পরে সংজ্ঞায়িত করা হয়।

নিয়ম

  • যতক্ষণ না আপনার কোড তীর বা অক্ষরের সাথে সামঞ্জস্য থাকে ততক্ষণ আপনি Uনীচের দিকে, নীচে D, বাম দিকে Lএবং ডানদিকে জন্য উপরের তীরটি ব্যবহার করতে বেছে নিতে পারেন R
  • আপনার ইনপুটটি কোনও নিয়ামক বা কীবোর্ড থেকে গৃহীত হতে পারে, তবে উভয়কেই সমর্থন করার দরকার নেই।
  • বিদ্যমান উত্তরগুলি BABAপরিবর্তে ব্যবহার করা চালিয়ে যেতে পারে BA, তবে তারা যদি এটি করতে চান তবে এটি সংক্ষিপ্তও করতে পারে। ভবিষ্যতের উত্তরগুলি সবই BAধারাবাহিকতার জন্য ব্যবহার করা উচিত ।

  • খালি ইনপুট সমর্থন করার প্রয়োজন হয় না।


মন্তব্যগুলি বর্ধিত আলোচনার জন্য নয়; এই কথোপকথন চ্যাটে সরানো হয়েছে ।
মার্টিন এন্ডার

উত্তর:


13

05 এএফ 1 ই , 33 বাইট (খালি ইনপুটটিতে দুর্দান্ত )

Dg0Qiq}•ï“뙵yê!•36BQi7ç“+30™‹“J,

এটি অনলাইন চেষ্টা করুন!

05 এ বি 1 ই , 30 26 বাইট (খালি ইনপুট ব্যর্থ)

-4 আদনানকে ধন্যবাদ

•ï“뙵yê!•36BQi7ç,“+30™‹“,

এটি অনলাইন চেষ্টা করুন!

•ï“뙵yê!•36B                  # UUDDLRLRBABA in base-214, converted back to base-36.
             Qi                # If implicit input is equal to...
               7ç,             # Print 7 converted to a character to the console (bell sound)...
                  “+30™‹“, # Print +30 lives.

দাবি অস্বীকার: বেল সাউন্ড ট্রাইআইটঅনলাইনে বাজায় না, ডেনিসকে জিজ্ঞাসা করুন আপনি যখন চালান তখন তার কোনও সার্ভার কোথাও পিং করছে?


আপনি প্রায় জিতেছেন! মাত্র একটি বাইট অফ
খ্রিস্টোফার

2
এর সংকীর্ণ সংস্করণটি "+30 lives"হল “+30™‹“:)
আদনান

এটি সর্বদা খালি ইনপুট সহ অনলাইন দোভাষীতে আমার জন্য "+30 জীবন" দেয়।
redstarcoder

2
@redstarcoder কেবল * খালি ইনপুট, ক্রেপ, ফিক্সিং সহ
ম্যাজিক অক্টোপাস উরন

@ কারাসোকম্পুটিং আপনি ঠিক করতে পারেন এই বিএ একবারই হওয়া উচিত (আমার দোষ দুঃখিত)
ক্রিস্টোফার

7

জাভাস্ক্রিপ্ট (ES6), 202 200 198 বাইট

শুধুমাত্র ক্রোম এবং ফায়ারফক্সে পরীক্ষিত। UDLRতীর কীগুলির পরিবর্তে ব্যবহার করে । দয়া করে নিশ্চিত করুন যে ক্যাপসলক বন্ধ রয়েছে।

(o=(A=new AudioContext()).createOscillator()).connect(A.destination);s='';document.onkeyup=e=>{(s+=e.key[0]).slice(-11)=='uuddlrlrbaE'&&setTimeout('o.stop()',500,console.log('+30 lives'),o.start())}
Please click inside this area to make sure it gets focus.


আপনি কি এটি ঠিক করতে পারবেন বিএ একবারই হওয়া উচিত (আমার দোষ দুঃখিত)
ক্রিস্টোফার

7

পাইথন 3,  55  53 বাইট

-1 isaacg করার বাইট ধন্যবাদ (ব্যবহারের, bitwise প্রতিস্থাপন করতে না -10দিয়ে ~9)।
-১ বাইট ক্যালকুলেটরফলাইনে ধন্যবাদ (এটি একটি আক্ষরিক BELবাইট ব্যবহার করা সম্ভব )।

while'UUDDLRLRBA'!=input()[~9:]:1
print('+30 lives7')

যেখানে 7উপরে দেখানো হল একটি আক্ষরিক বাইট 0x07(কোনও কোড ব্লকের একটি ছাপ ছাড়াই)।

একবার এন্টার চাপলে whileলুপের শর্তটি পরীক্ষা করা হয়। যদি সর্বশেষ ~9= 10 টি অক্ষর (সর্বাধিক) কন্ট্রা কমান্ড কোডের সাথে মেলে না, তবে নো-অপ্ট 1কার্যকর করা হবে ( passব্রেভিটির পরিবর্তে ); তারা যদি না মেলে তাহলে লুপ প্রান্ত এবং যখন printবিবৃতি মৃত্যুদন্ড কার্যকর করা হয়, যা লিখেছেন একটি ASCII ঘণ্টা চরিত্র ( "বিপদাশঙ্কা"), সহ প্রয়োজনীয় টেক্সট 0x07, যা একটি শব্দ উৎপন্ন যদি না তা স্পষ্টভাবে অক্ষম করা হয়েছে (অথবা টার্মিনাল কোন স্পিকার হয়েছে !)।


আপনি কি এটি ঠিক করতে পারবেন বিএ একবারই হওয়া উচিত (আমার দোষ দুঃখিত)
ক্রিস্টোফার

স্থির, মাথা আপ জন্য ধন্যবাদ।
জোনাথন অ্যালান

1
-10= ~9, যা আপনাকে একটি বাইট সংরক্ষণ করতে পারে।
isaacg

আপনি কী -1 বাইটের জন্য স্ট্রিংতে আক্ষরিক \ x07 রাখতে পারবেন না?
ক্যালকুলেটরফলাইন

@ ক্যালকুলেটরফ্লাইন আমার কোনও ধারণা নেই, আমি কি পারি? দ্রষ্টব্য লোকেরা প্রায়শই \nপাইথন গল্ফগুলিতে স্ট্রিং ব্যবহার করে, তারা কেন ব্যবহার করবে না \x0a?
জোনাথন অ্যালান

5

জেলি, 33 30 29 27 বাইট

ɠ⁻“UUDDLRLRBA”$¿ṛ7Ọ“¡}ʠƈ[ỵ»

দেখা যাচ্ছে, সংযোজন ( ) প্রয়োজন হয় না, স্ট্রিংগুলি স্বয়ংক্রিয়ভাবে মুদ্রিত উভয় সাথে একত্র হয়ে যায়

ɠ⁻“UUDDLRLRBABA”$¿ṛ7Ọṭ“¡}ʠƈ[ỵ»

uncompressed

ɠ⁻“UUDDLRLRBABA”$¿ṛ7Ọṭ“+30 lives”

এটি অনলাইনে চেষ্টা করে দেখুন
যদি আপনি এর পরে সমস্ত কিছু সরিয়ে ফেলেন তবে আপনি ¿ইনপুটটির সাথে জগাখিচুড়ি করতে পারেন এবং দেখতে পারেন যে কেবল ইনপুট স্ট্রিংটি সঠিক হলে তা ফিরে আসে।

ɠ⁻“UUDDLRLRBABA”$¿ṛ7Ọṭ“+30 lives” - main link
ɠ                                 - takes a line of input
 ⁻“UUDDLRLRBABA”$                 - $ groups it into a monadic !="UUDDLRLRLRBABA"
                 ¿                - while (the inequality, which takes from the getline)
                  ṛ               - take the right argument (to ignore the input string)
                   7Ọ             - chr(7), the bell character
                     ṭ“+30 lives” - append that bell character to the output

স্ট্রিং কম্প্রেশন বের করতে আমাকে সহায়তা করার জন্য @ জোনাথন অ্যালানকে ধন্যবাদ :)


“+30 lives”সংক্ষিপ্ততর “¡}ʠƈ[ỵ»(ভবিষ্যতের রেফারেন্সের জন্য এখানে এটি সম্পর্কিত একটি পোস্ট, এটি জেলি উইকির টিউটোরিয়ালে লিঙ্কযুক্ত)।
জোনাথন অ্যালান

শব্দ কই?
tuskiomi

1
আমি কেবল এটি সরকারী দোভাষীর সাথে পরীক্ষা করেছি এবং কোনামি কোড প্রবেশ না হওয়া অবধি এটি লুপ করে
জয়ডেপ

@ জয়ডেপ আপনি ঠিক করতে পারেন এই বিএ একবারই হওয়া উচিত (আমার দোষ দুঃখিত)
ক্রিস্টোফার

আমি বিশ্বাস করি যে এটি এলএলসি (শীর্ষস্থানীয় ধ্রুবক চেইন) 7Ọএর ইম্পিলিটেড প্রিন্ট হিসাবে এত বেশি স্বয়ংক্রিয় স্ট্রিং কনটেন্টেশন নয় “¡}ʠƈ[ỵ», তারপরে নীলাদের একটি অন্তর্নিহিত মুদ্রণ, স্ট্যাডআউটে এমনভাবে উপস্থিত হবে যেন এটি কনটেন্টেশন । শোকেস হিসাবে আপনি এর মধ্যে 2 সেকেন্ডের ঘুম যোগ করার চেষ্টা করতে পারেন ɠ⁻“UUDDLRLRBABA”$¿ṛ7Ọ2“+30 lives”œS
জোনাথন অ্যালান

5

প্রক্রিয়াজাতকরণ, 161 157 155 বাইট

String k="";void keyTyped(){if(match(k+=key,"uuddlrlrba\\n$")!=null){print("+30 lives");new processing.sound.SoundFile(this,"a.mp3").play();}}void draw(){}

অডিও ফাইলটি অবশ্যই সেভ করা উচিত sketchName/data/a.mp3। দ্রষ্টব্য: আমি কেবল অডিও ফাইল ছাড়াই এই প্রোগ্রামটি পরীক্ষা করেছি কারণ আমি কোনও mp3ফাইল ডাউনলোড করতে খুব অলস আছি (যেহেতু কেবলমাত্র সীমিত এক্সটেনশানগুলিই সমর্থন করে processing.sound.SoundFile)।

draw()ফাংশন জন্য অনুক্রমে সেখানে হতে প্রয়োজন হয় keyTypedকাজ।

যে কারণটি আমরা ব্যবহার করছি keyTypedতা হ'ল প্রসেসিংয়ে এসটিডিআইএন নেই, এটি স্কেচটি চালানো কীগুলি কেবলমাত্র শুনতে পাবে।

ব্যাখ্যা

String k="";
void keyTyped(){
  if(match(k+=key,"uuddlrlrba\\n$")!=null){
    print("+30 lives");
    new processing.sound.SoundFile(this,"a.mp3").play();
  }
}
void draw(){
}

ব্যবহারকারীর সমস্ত কীস্ট্রোক স্ট্রিংয়ের অভ্যন্তরে অক্ষর হিসাবে সংরক্ষণ করা হয় kkeyTypedএকটি Inbuilt ফাংশন যা যখনই ব্যবহারকারী ধরনের একটি কী বলা হয়। একই সাথে, আমরা পরীক্ষা করছি যে কী এই স্ট্রিংটি কীস্ট্রোক দিয়ে শেষ হয়। তারপরে আমরা +30 livesসাউন্ড ফাইলটি প্রিন্ট এবং প্লে করি। এবং drawফাংশন অবিরত আপডেট আছে keyTyped। কোনামি কোড প্রবেশ করার পরে আর কিছুই আউটপুট করা হবে না এবং কোনও অডিও বাজানো হবে না।


দেখে মনে হচ্ছে আপনার এমপি 3 ফাইলের আকারটি গণনা করা উচিত

@ricyje প্রসেসিংয়ের কাছে আউটপুট শোনার অন্য কোনও উপায় নেই। এছাড়াও, .mp3ফাইলের আকারটি আসলে কোনও বিষয় নয় কারণ এটি যাই হোক না কেন, প্রসেসিং এটিকে একটি সাউন্ড হিসাবে খেলবে
ক্রিটসি লিথোস

@ ক্রিটিক্সিলিথোস আপনি কি এটি ঠিক করতে পারবেন বিএ একবারই হওয়া উচিত (আমার দোষ দুঃখিত)
ক্রিস্টোফার

ক্রিস্টোফারপার্ট! (আমি আরও 2 টি বাইট সংরক্ষণ করতে পেরে আনন্দিত :)
ক্রিটসি লিথোস

4

> <>, 132 69 64 62 বাইট *> <> , 84 বাইট

i:1+?\0[
:1+?!\i
BA"a~/"UUDDLRLR
{v!?l/!?=
7/"+30 lives"
o<;!?l

এখানে চেষ্টা করুন!

এটি শেষে শোরগোলের জন্য বেল চিম (অ্যাসকিআই) এর উপর নির্ভর করে (অনলাইন দোভাষীতে 7শোনা যায় না)।

আরও 15 বাইট সংরক্ষণের জন্য @ টেলিপেলিকানকে ধন্যবাদ!

BAপরিবর্তে দুটি বাইট চেক সংরক্ষণ করা BABA


এটি কি শব্দ করে?
ক্রিটিকি লিথোস

@ ক্রিটিক্সিলিথোস, হ্যাঁ আপনি দ্বিতীয়-শেষ লাইনে দেখবেন একেবারে শেষে একটি "7", এটি ঘণ্টা বাজানো।
redstarcoder

আমি আপনার কোডটি কিছুটা রিফ্যাক্ট করেছি কারণ প্রথম লাইনের ব্যবহার আমি বেশ বুঝতে পারি নি? এখানে চেষ্টা করুন এই লিঙ্কটি <>> এর জন্য তবে *> <> এর জন্যও কাজ করে (আপনার মতো ডাইভ মেকানিকটি ব্যবহার করে না) - এটি 19 বাইটেও সংরক্ষণ করা হয়েছে! :)
টিলে পেলিকান

@ ট্রিপেলিকান, প্রথম লাইনটি তাই চালিয়ে যায়, ইনপুটটির জন্য অপেক্ষা করে! আপনার সংযুক্ত সংস্করণ এটি করে না; পি।
রেডস্টারকোডার

তুমি ঠিক! আমি সেটা মিস করছিলাম! - আমি আমার ত্রুটিটি মিটানোর জন্য একটি লাইন যুক্ত করেছি এবং কিছু অপ্রয়োজনীয় বিপরীতকরণ এবং মুদ্রণ প্রতিস্থাপন করেছি আমি যে নতুন সংস্করণটি 67 বাইটে নামিয়েছি তা চেষ্টা করুন : ডি
টেল পেলিকান

3

সি 119 -1 - 2 = 116 বাইট

Golfed

i;f(){char a[14];a[13]=0;while(strcmp(a,"UUDDLRLRBA"))for(i=0;i<12;a[i]=a[i+++1]);a[i]=getch();puts("+30 Lives\a");}  

Ungolfed

#include<stdlib.h>
#include<conio.h>

i;
f()
{
    char a[14];
    a[13]=0;
    while(strcmp(a,"UUDDLRLRBA"))
    {
        for(i=0;i<12;a[i]=a[i+++1]);
        a[i]=getch();
        puts(a); //This is to print every step in the runtime
    }
    puts("+30 Lives\a"); // '\a' is the acsii char that makes sound when passed to STDOUT
}

main()
{
    f();
}

s/UUDDLRLR BABA/UUDDLRLRBABA-1 বাইট এবং strcmp জন্য সঠিক স্ট্রিং খুঁজছেন!
redstarcoder

@ খ্রিস্টোফার দয়া করে এই স্ট্যাক এক্সচেঞ্জ সাইটে লোকের কোডে কখনও সম্পাদনা করবেন না। আপনার সম্পাদনাটি কখনই অনুমোদিত হওয়া উচিত ছিল না।
বিড়াল

মুকুল, আপনি নিজেই জায়গাটি সরাতে পারবেন।
বিড়াল

1
@ মুকুলকুমার অবশ্যই :) জবাবদাতারা তাদের নিজস্ব কোড সম্পাদনা করা গুরুত্বপূর্ণ।
বিড়াল

1
@ মুকুলকুমার আপনি এটি ঠিক করতে পারবেন বিএ একবারই হওয়া উচিত (আমার দোষ দুঃখিত)
ক্রিস্টোফার


3

অটোহটকি, 63 বাইট tes

Input,K,L10
if(K="UUDDLRLRBA"){
MsgBox,"+30 lives" 
SoundBeep
}

এই স্ক্রিপ্টটি চালানোর পরে, এটি পরবর্তী 10 কীগুলি কোনামি কোড কিনা তা যাচাই করবে এবং যদি এটি হয় তবে এটি একটি বার্তা বাক্স দেখায় যা "+30 জীবন" বলে জানায় এবং এটি একটি বীপ বাজানো উচিত (পরীক্ষার জন্য আমার এখন স্পিকার নেই )।


শান্ত! অটোহটকি একটি আকর্ষণীয় প্রোগ্রাম।
ক্রিস্টোফার

3

জিএনইউ সেড, 32 25 + 1 = 33 26 বাইট

-nপতাকা জন্য +1 বাইট ।

/UUDDLRLRBA$/a+30 Lives\a

এটি অনলাইন চেষ্টা করুন!

ব্যাখ্যা

প্রতিবার এন্টার টিপানো হয় ( $), পূর্ববর্তী 10 কীস্ট্রোকগুলি কোড ছিল কিনা তা প্রোগ্রামটি পরীক্ষা করে। যদি সেগুলি হয়, বর্তমান চক্রের শেষে মুদ্রণ করার জন্য aকমান্ডটি পাঠ্য +30 Livesএবং বেল সাউন্ড ( \a) সারি করেছে (যা এই ক্ষেত্রে অবিলম্বে হয়)।


আপনি কি এটি ঠিক করতে পারবেন বিএ একবারই হওয়া উচিত (আমার দোষ দুঃখিত)
ক্রিস্টোফার

এটি ইতিমধ্যে BAঠিক একবার হয়েছে।
জর্দান

ওহ বাহ খেয়াল করেনি
ক্রিস্টোফার

3

গণিত, 50 বাইট

While[x=!=UUDDLRLRBA,x=Input[]];Beep[];"+30 lives"

প্রথমদিকে, xএটি কেবল একটি প্রতীক এবং তাই প্রতীকটির সাথে অভিন্ন ( =!=) নয় UUDDLRLRBAsox=Input[] মূল্যায়ন করা হয়। এটি ইতিমধ্যে ইনপুট ক্ষেত্রে কার্সার সহ একটি ডায়ালগ বক্স খুলবে, যাতে ব্যবহারকারীরা তত্ক্ষণাত কীবোর্ডে টাইপ করা শুরু করতে পারেন।

যদি কোনও Enterচাপ না দিয়ে বা OKকোনও টাইপ না করে ক্লিক করা হয়, তবে InputField[]ফিরে আসবে Null, যা এর মতো নয়UUDDLRLRBA , তাই লুপটি চালিয়ে যায় এবং অন্য একটি ডায়ালগ বক্স খোলা হবে।

যদি ব্যবহারকারী ক্লিক করে Cancelবা অন্যথায় ডায়লগ বাক্সটি থেকে বেরিয়ে আসে, তবে InputFieldফিরে আসবে $Canceled, যা এটির মতো নয় UUDDLRLRBA, তাই লুপটি অবিরত থাকবে।

ব্যবহারকারী তাদের মনের ইচ্ছা অনুযায়ী ডায়ালগ বক্সে টাইপ করতে পারেন। যখন তারা আঘাত করে Enter, তখন তাদের ইনপুটটি ওল্ফ্রাম ভাষার ভাষায় প্রকাশিত হয় (সম্ভবত কেবল বাক্সগুলি)। যদি সেই অভিব্যক্তিটি প্রতীক ছাড়া অন্য কিছু হয় UUDDLRLRBAতবে লুপটি অবিরত থাকবে।

"কোনামি কোড প্রবেশ না করা অবধি অবশ্যই লুপ" কিছুটা অস্পষ্ট তবে আমি বিশ্বাস করি এটি এটিকে সন্তুষ্ট করে। একদাWhileলুপটি শেষ ,।Beep[];"+30 lives"


আপনি কি এটি ঠিক করতে পারেন বিএ একবারই হওয়া উচিত (আমার দোষ দুঃখিত)
ক্রিস্টোফার

1
UUDDLRLRB? কোথায় A?
ক্যালকুলেটরফলাইন

@CalculatorFeline ফিক্সড
ngenisis

3

পেটিট কম্পিউটার বেসিক, ৯১ বাইট

@L
WAIT 1S$=S$+CHR$(B)*!!B
B=BTRIG()IF B<1024GOTO@L
IF"xxxxxxxxxx"==S$THEN BEEP?"+30 lives

অবশেষে এমন একটি সমাধান যা আসলে নিয়ামক ইনপুট ব্যবহার করে!

আমি পেটিট কম্পিউটারটি নতুন সংস্করণ (স্মাইলব্যাসিক) এর চেয়ে বেশি ব্যবহার করেছি কারণ এতে স্টার্ট বোতামটিতে অ্যাক্সেস রয়েছে এবং এটির BTRIG()চেয়েও ছোট BUTTON()

আমি ডেটা স্ট্রিং এর সাথে প্রতিস্থাপন করেছি x, এতে এসকি কোডগুলি 1,1,2,2,4,8,4,8,32,16 সহ অক্ষর থাকা উচিত

বিরক্তিকর সংস্করণ, 46 বাইট

INPUT S$IF"UUDDLRLRBA"==S$THEN BEEP?"+30 lives

আমি পেটিট কম্পিউটার এন্ট্রিগুলির নামের জন্য স্মাইলব্যাসিক 2 ব্যবহার করার পরামর্শ দিচ্ছি এবং যেখানে প্রয়োজন সেখানে স্মাইলবাসিক 3 হিসাবে স্মাইলব্যাসিক নির্দিষ্ট করুন ।
শামুক_

নিয়ন্ত্রক ব্যবহার করে দুর্দান্ত কাজ!
ক্রিস্টোফার

2

পাওয়ারশেল, 89 86 বাইট

if((Read-Host)-eq"UUDDLRLRBABA"){"+30 Lives";[System.Media.SystemSounds]::Beep.Play()}

প্রবেশ করে স্ট্রিং জমা দিন Read-Host, তাই এটি .. কাজ করা উচিত?


2
আমার মনে হয় কনট্রা কোডটিতে কোনও "" নেই বলেই আপনাকে "UUDDLRLRBABA" নয় "UUDDLRLR BABA" যাচাই করা দরকার। এটি আপনাকে একটি বাইটও বাঁচাতে চাই। আমি মনে করি এন্টারটি ধরে নিচ্ছি কারণ ইনপুটটি বৈধ হওয়ার জন্য তাদের এন্টার টিপতে হবে।
redstarcoder

আমি উপায় দ্বারা কাজ করি
ক্রিস্টোফার

1
@ ক্রিস্টোফারপার্ট আপনি ওপি হ'ল বা আপনি যদি তাদের বাইট সংরক্ষণ করছেন তবে দয়া করে অন্যের কোডে সম্পাদনা করবেন না।
বিড়াল

ঠিক আছে আমি ওটা করব. তবে এটি আমার দোষ ছিল
ক্রিস্টোফার

@ কননরএলএসডাব্লু আপনি কি এটি ঠিক করতে পারবেন বিএ একবারই হওয়া উচিত (আমার দোষ দুঃখিত)
ক্রিস্টোফার

2

সি # (বোরিং সংস্করণ), 80 বাইট

void n(){while(Console.ReadLine()!="UUDDLRLRBA"){}Console.Write("+30 Lives\a");}

সি # (আকর্ষণীয় এক), 202 বাইট

void n(){t();Console.Write("+30 Lives\a");}void t(){var k="UUDDLRLRBA";var s="";while(s!=k){s+=Console.ReadKey().Key.ToString();s=k.StartsWith(s)?s:"";}if(Console.ReadKey().Key!=ConsoleKey.Enter){t();}}

আমি মনে করি এটি কাজ করে, দুর্ভাগ্যক্রমে অনলাইন পরীক্ষকগণ কোনও কনসোল ইনপুটটির অস্তিত্ব সমর্থন করে না, যেমন আমার করা পরীক্ষাগুলিতে আমাকে যেতে হবে

সম্ভবত খুব গল্ফ করা যেতে পারে - আমি এই মহান না! :)

Ungolfed:

void n()
{
    t();
    Console.WriteLine("+30 Lives\a");
}

void t()
{
    var k = "UUDDLRLRBA";
    var s = "";
    while(s != k)
    {
        s += Console.ReadKey().Key.ToString();
        s = k.StartsWith(s) ? s : "";
    }
    if(Console.ReadKey().Key != ConsoleKey.Enter)
    {
        t();
    }
}

হুঁ, একটি নতুন লাইন সনাক্ত না হওয়া পর্যন্ত সি # এর কি পড়ার কোনও উপায় আছে? এটি আপনাকে প্রবেশের কীটি অনুসন্ধান করতে বাঁচাতে চাই। পাইথনে এটি কীভাবে প্রয়োগ করা হয়েছে তা দেখুন
redstarcoder

আছে Console.Readlineতবে আমি ভেবেছিলাম যে এই চ্যালেঞ্জের চেতনাটি আগানবাদী হতে পারে! যদি তা ঠিক থাকে তবে আমি এটিকে আরও ছোট করতে পারি
Alfie গুডাক্রে

@redstarcoder একটি Console.ReadLine()সংস্করণ যুক্ত করেছে
Alfie

@ অ্যালফি গুডাক্রে আপনি ঠিক করতে পারেন এই বিএ একবারই হওয়া উচিত (আমার দোষ দুঃখিত)
ক্রিস্টোফার

@ ক্রিস্টোফারপার্ট এটি মূলত ছিল তবে আমাকে এটি পরিবর্তন করতে হয়েছিল;)
অ্যালফি গুডাক্রে

2

আশ্চর্য , 50 বাইট

ol"•";f\@[="UUDDLRLRBA"rl0?ol"+30 lives•"?f0];f0

কোডের অক্ষর \x07(বিএল নিয়ন্ত্রণ চর) এর সাথে প্রতিস্থাপন করুন । STDIN এর মাধ্যমে ইনপুট নেয়।


আপনি কি এটি ঠিক করতে পারেন বিএ একবারই হওয়া উচিত (আমার দোষ দুঃখিত)
ক্রিস্টোফার

ঠিক আছে আমি স্থির। নোটিশের জন্য ধন্যবাদ!
মামা ফান রোল

1

ফ্লেক্স, 37 + 5 = 42 বাইট

%%
UUDDLRLRBA puts("+30 lives\a");

কোডটি নিজেই 37 বাইট, এটি "-মাইন" বিকল্পের সাথে সংকলন করে যা 5 বাইট যুক্ত করে। স্বাভাবিকভাবেই, আপনাকে ফলাফলের সি ফাইলটি আপনার প্রিয় সি সংকলক দিয়ে সংকলন করতে হবে, তবে আমি মনে করি না যে ধাপটি বাইট গণনা অনুসারে গণনা করা উচিত।

আমি এর পরিবর্তে আক্ষরিক বিএল চরিত্রটি ব্যবহার করে একটি বাইট সংরক্ষণ করতে পারতাম \a, তবে আমি বরং আমার নিজের কোডটি পড়তে সক্ষম হব।


4
কোডটি পড়তে আপনার সত্যিকারের প্রয়োজন হবে না। এটি কোড গল্ফ
ক্রিস্টোফার

ব্যক্তিগতভাবে, আমি মনে করি আমার এখানে ফ্লেক্স ব্যবহারের জন্য বোনাস পাওয়া উচিত, কারণ এটি এখানে খুব কমই ব্যবহৃত হয়। :)
বেনগল্ডবার্গ

1
আমি বিশ্বাস করি যে আপনি -llসি কমপাইলারের -mainবিকল্প হিসাবে ফ্লেক্স করার পরিবর্তে 3 বাইটের মাধ্যমে জরিমানাটি হ্রাস করতে পারবেন ।



1

সি, 114 বাইট

#define X "UUDDLRLRBA"
main(i,j){for(i=j=0;!j;)(getchar()==X[i++])&&((j=1?!X[i]|puts("+30 lives\a"):0)|1)||(i=0);}
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.