বাদ্যযন্ত্রের কচ্ছপ নিয়ে বাজছে


20

আমার দুই বাচ্চা নিম্নলিখিত খেলনা সাথে খেলতে পছন্দ করে:

কচ্ছপ

ভিতরে আকারগুলির সাথে বর্ণযুক্ত অঞ্চলগুলি স্পর্শ করা যায় এবং কচ্ছপ তখন অঞ্চলটি আলোকিত করে এবং একটি শব্দ বাজায় বা বর্ণের নাম বা ভিতরে আকৃতি বলে says মাঝের বোতামটি মোড পরিবর্তন করে। একটি মোড আছে যেখানে স্পর্শ করার সময় অঞ্চলগুলি বিভিন্ন বাঁকানো নোট বাজায় play যদি টানা তিনটি অঞ্চল স্পর্শ করা হয় তাকে ঘড়ির কাঁটার বিপরীতে স্থাপন করা হয় তবে একটি বিশেষ সুর বাজানো হবে।

চ্যালেঞ্জ

খেলনা অভ্যন্তরীণ যুক্তি অনুকরণ করা যাক। ছাগলের 3 টি প্রেস সহ একটি স্ট্রিং দেওয়া হয়েছে, তিনটি টিপ ক্রমাগত অঞ্চলে (ঘড়ির কাঁটার দিকে বা ঘড়ির কাঁটার দিকে) এবং তৃতীয় স্বতন্ত্র মান না থাকলে দুটি স্বতন্ত্র, সুসংগত মানগুলি প্রদান করুন।

বিস্তারিত

  • ইনপুট অঞ্চলগুলির প্রত্যেককে একটি বর্ণের সাথে নাম দেওয়া হবে, যা তাদের রঙ হতে পারে: ROYGBলাল, কমলা, হলুদ, সবুজ এবং নীল জন্য; বা তাদের আকার: HSRTCহৃদয়, বর্গক্ষেত্র, তারা ( R), ত্রিভুজ এবং বৃত্তের জন্য। কেস কোনও ব্যাপার নয়, আপনি ইনপুট এবং আউটপুট নিয়ে কেবল বড় হাতের বা ছোট হাতের অক্ষরে কাজ করতে পারেন।
  • প্রোগ্রামটি তিনটি টিপুন সহ একটি স্ট্রিং (বা চর অ্যারে বা সমমানের কিছু) পাবে। উদাহরণ (রং ব্যবহার করে): RBO, GYO, BBR, YRG, YGB, ORB...
  • প্রোগ্রামটি তিনটি সম্ভাব্য ফলাফলকে উপস্থাপনের জন্য তিনটি স্বতন্ত্র, সুসংহত মানগুলি আউটপুট দেবে: প্রথমটি মান যদি সংমিশ্রণটি একটি বিশেষ সুরকে ট্রিগার না করে, সংমিশ্রণটি ঘড়ির কাঁটার দিকের বিশেষ সুরকে ট্রিগার করে তবে একটি দ্বিতীয় মান এবং সংমিশ্রণটি ট্রিগার করে তবে একটি তৃতীয় মান ঘড়ির কাঁটার বিপরীতে বিশেষ সুর উদাহরণ: 0কোনও বিশেষ সংমিশ্রণের জন্য নয়, 1একটি ঘড়ির কাঁটার -1দিকের সংমিশ্রণ দ্বারা চালিত সুর এবং clockালু ঘড়ির কাঁটার বিপরীতে সংমিশ্রণ দ্বারা চালিত সুরের জন্য।
  • ভুল ইনপুট পরিচালনা করার জন্য আপনাকে চিন্তা করার দরকার নেই।

পরীক্ষার মামলা

Input   Output      // Input based on colors
--------------
RBO     0           // No special combination
GYO     -1          // Counterclockwise melody triggered
BBR     0           // No special combination
YRG     0           // No special combination
YGB     1           // Clockwise melody triggered
ORB     -1          // Counterclockwise melody triggered
OOO     0           // No special combination
BRO     1           // Clockwise melody triggered

এটি , তাই প্রতিটি ভাষার পক্ষে সংক্ষিপ্ততম কোডটি জয় পেতে পারে!


হয় [0,0], [1,0], [0,1]আউটপুট অনুমতি? আমি ম্যাথামেটিকার উত্তরটি দেখছি এবং এটি 05 এ বি 1 ই উত্তরে 3 বাইট সাশ্রয় করবে।
কেভিন ক্রুইজসেন

1
@ কেভিন ক্রুজসেন অবশ্যই আপনি পারেন। আউটপুট মানগুলি যতক্ষণ তা স্বতন্ত্র এবং সামঞ্জস্যপূর্ণ হিসাবে কিছু হতে পারে।
চার্লি 14

উত্তর:


12

জাভা 8, 48 39 33 বাইট

s->"ROYGBRO BGYORBG".indexOf(s)|7

-6 বাইটস @ রিকহিচকককে ধন্যবাদ , তাই তাকেও আপভোট করতে ভুলবেন না !

ইনপুট-স্ট্রিং হিসাবে বড় আকারের রঙ নেয়। আউটপুট -1কারও জন্য নয়, 7ঘড়ির কাঁটার দিকে এবং ঘড়ির কাঁটার দিকে 15wise

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

ব্যাখ্যা:

s->      // Method with String parameter and integer return-type
   "ROYGBRO BGYORBG".indexOf(s)
         //  Get the index of the input in the String "ROYGBRO BGYORBG",
         //  which will result in -1 if the input is not a substring of this String
    |7   //  Then take a bitwise-OR 7 of this index, and return it as result

ওল্ড 39 বাইট উত্তর:

s->(char)"ROYGBRO BGYORBG".indexOf(s)/7

ইনপুট-স্ট্রিং হিসাবে বড় আকারের রঙ নেয়। আউটপুট 9362কারও জন্য নয়, 0ঘড়ির কাঁটার দিকে এবং ঘড়ির কাঁটার দিকে 1wise

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

ব্যাখ্যা:

s->      // Method with String parameter and integer return-type
   (char)"ROYGBRO BGYORBG".indexOf(s)
         //  Get the index of the input in the String "ROYGBRO BGYORBG",
         //  which will result in -1 if the input is not a substring of this String
         //  And cast it to a char (-1 becomes character with unicode value 65535)
    /7   //  Integer-divide it by 7 (the char is implicitly converted to int doing so)

2
আমি মনে করি 9632 হ'ল আমি এই উত্তরগুলিতে এখন পর্যন্ত সবচেয়ে ভাল এবং সামঞ্জস্যপূর্ণ মানটি দেখেছি :)
মিশা লাভ্রভ

@ মিশালাভরভ এটি 10922(পূর্ণসংখ্যার বিভাগ দ্বারা বিভাগ /6) বা 8191(পূর্ণসংখ্যা-বিভাগ দ্বারা /8)ও হতে পারে তবে আমি বেছে নিই /7কারণ এটি স্ট্রিংয়ের স্থানের সূচক। :)
কেভিন ক্রুইজসেন 15

1
@ রিকহিটকক ধন্যবাদ! আমি ভেবেছিলাম যে আমি কিছুটা দিকনির্দেশিত অপারেশন চেষ্টা করেছি, তবে দৃশ্যমানভাবে যথাযথভাবে যথাযথ নয় ...
কেভিন ক্রুইজসেন 20

6

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

ইনপুট হিসাবে রঙ সূচনা গ্রহণ করে। ঘড়ির কাঁটার দিকে বা ঘড়ির কাঁটার দিকে কোনওটির 2জন্যই ফেরৎ দেয় না ।truefalse

s=>~(x='ROYGBRO_ORBGYOR'.search(s))?x<5:2

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


3
কমপক্ষে কোনও উত্তর আমি বুঝতে পারি আরনাউল্ডের থেকে !! :)
চার্লি

3
@Charlie আমি মনে করি Arnauld অসুস্থ বা কিছু .. শুধু তার উত্তর পাঠযোগ্য এবং বুঝতে সহজ, এটা এমনকি আর আমার জাভা উত্তর চেয়ে আছে! o.Ô এখানে কিছু স্পষ্টতই ভুল। ; পি
কেভিন ক্রুইজসেন

s=>('ROYGBRO_ORBGYOR'.search(s)+8)/8|0
l4m2

1
তুমি কি ছিলে, ভাই?
কোয়ান্টিন

6

পাইথন 2 , 36 বাইট

lambda i:'ROYGBRO ORBGYOR'.find(i)/7

-1- কিছুই নয়
0- ক্লকওয়াইজ
1- কাউন্টার ক্লকওয়াইজ

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


হি, দুর্দান্ত মনের মানুষ (বা কিছু) ... কোডগলফ.স্ট্যাকেক্সেঞ্জার / এ / ১16635৫/৫৩74৪৮ (যদি আমি নিজে জিনিসগুলি চেষ্টা করার আগে এটি দেখতে পেতাম তবে আমি আপনাকে কেবল বাইট সেভ দিয়েছি: পি)
জোনাথন অ্যালান

@ জোনাথন অ্যালান চিন্তা করবেন না, জিনিসগুলি ঘটে: ডি আমি আপনার উত্তরটিকে অগ্রাহ্য করেছি, কারণ আমি এটি অপছন্দ করতে পারি না!
ডেড পসুম

5

এক্সেল, 29 বাইট

=FIND(A1,"ROYGBRO_RBGYORB")<6

ইনপুট হিসাবে বড় হাতের রঙ।

ঘড়ির কাঁটার বিপরীতে দিকের #VALUE!জন্য কোনও বিন্যাসের জন্য, TRUEঘড়ির কাঁটার দিকে, ফিরে আসে FALSE

ব্যতিক্রম হ্যান্ডেল করার IFERROR( ,0)জন্য মোড়ানো +11 bytesকরতে পারে এবং পরিবর্তে কোনও-প্যাটার্নের ক্ষেত্রে '0' প্রত্যাবর্তন করতে পারে।


5

05 এ বি 1 ই , 15 11 বাইট

কেভিন ক্রুইজসেন এবং ম্যাজিক অক্টোপাস উরনের জন্য 4 বাইট সংরক্ষণ করা ।

আকার ব্যবহার করে।
আউটপুট [0, 0]জন্য কেউ , [1, 0]জন্য ঘড়ির কাঁটার দিকে এবং [0, 1]জন্য ঘড়ির কাঁটার বিপরীতে

‚.•ÌöJη•så

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

ব্যাখ্যা

‚            # pair the input with its reverse
  .•ÌöJη•     # push the string "hsrtchs"
         så   # check if the input or its reverse is in this string

1
আমার 15-বাইট উত্তর আমি পোস্টে সম্পর্কে ছিল খুবই অনুরূপ .•1´₃éC•Â‚εXå}¥ফলে [0], [1]অথবা [-1], আমার কাছ থেকে তাই +1 টি। BTW, আমি মনে করি (না নিশ্চিত) আপনি গত তিন সরানো, outputting দ্বারা তিনটি বাইট সংরক্ষণ করতে পারবেন [0, 0], [1, 0]এবং [0, 1]স্বতন্ত্র মান হিসাবে। আমি দেখছি ম্যাথমেটিকার উত্তরও একই কাজ করে। ওপি যাচাইয়ের জন্য জিজ্ঞাসা করবে।
কেভিন ক্রুইজসেন

কেবল ওপিকে জিজ্ঞাসা করেছেন, এবং আপনাকে শেষ তিনটি বাইট বাদ দেওয়ার অনুমতি দেওয়া হয়েছে। তিনটি আউটপুট যতক্ষণ না সামঞ্জস্যপূর্ণ এবং স্বতন্ত্র তা যতক্ষণ তা ঠিক আছে।
কেভিন ক্রুইজসেন

2
‚.•ÌöJη•så11 টি বাইট [1,0], [0,1] and [0,0]যা অনন্য হিসাবে বিবেচিত হয় (যদি না এখানে আমি স্পষ্ট কিছু মিস করছি, তবে ƶO11 বাইটারের শেষটি যোগ করার পরে আপনার কাছে একই 0, 1, 2 জবাবের জন্য এখনও 13 আছে)। পরীক্ষার মামলাপরীক্ষার মামলা ২ । অর্ডার রিভার্সাল লুপের প্রয়োজনীয়তা সরিয়ে দেয়।
ম্যাজিক অক্টোপাস উরন

মূল থ্রেডের মন্তব্য অনুসারে 11-বাইটারটি সূক্ষ্ম হওয়া উচিত, কারণ এটি 3 স্বতন্ত্র মান ব্যবহার করে, আপনি জেলিকে এটির সাথে পরাজিত করতে পারেন :)।
ম্যাজিক অক্টোপাস উরান

@ কেভিন ক্রুজসেন আপনাকে ধন্যবাদ! আমি সবসময়
অকারণে

4

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

s=>'ROYGBRO_ORBGYOR'.search(s)|7

সংমিশ্রণ না হলে -1 প্রদান করে, ঘড়ির কাঁটার বিপরীতে 15, ঘড়ির কাঁটার দিকে 7


4

ওল্ফ্রাম ভাষা (গণিত) , 42 36 বাইট

{"ROYGBRO","ORBGYOR"}~StringCount~#&

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

উভয় "ROYGBRO"এবং ইনপুট প্রদর্শিত হওয়ার পরিমাণ গণনা করে "ORBGYOR"। রিটার্নস {1,0}ঘড়ির কাঁটার জন্য, {0,1}, বামাবর্তে এবং {0,0}কোন বিশেষ সংযুক্তির জন্য।

কেবলমাত্র আরও একটি বাইটের দামে, আমরা 0কিছুই না, 1ঘড়ির কাঁটার 2জন্য এবং ঘড়ির কাঁটার বিপরীতে পেতে আউটপুট পেতে পারি "ROYGBRO.ORBGYORBGYOR"~StringCount~#&


4

x86 মেশিন কোড, 39 36 বাইট

00000000: f30f 6f11 b800 0000 0066 0f3a 6310 0c89  ..o......f.:c...
00000010: c883 c807 c352 4f59 4742 524f 2042 4759  .....ROYGBRO BGY
00000020: 4f52 4247                                ORBG

এসেম্বলি:

section .text
	global func
func:					;the function uses fastcall conventions
					;no stack setup needed because we don't need to use stack
	movdqu xmm2,[ecx]		;Move DQword (16 bytes) from 1st arg to func(ecx) to SSE reg
	mov eax, msg			;Load address of constant str 'msg' into eax
	PcmpIstrI xmm2, [eax], 1100b	;Packed Compare String Return Index, get idx of [eax] in xmm2
	mov eax, ecx			;Move returned result into reg eax
	or eax, 7			;Bitwise OR eax with 7 to get consistent values
	ret				;return to caller, eax is the return register
section .data
	msg db 'ROYGBRO BGYORBG'

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

আউটপুট 23কারও জন্য নয়, 7ঘড়ির কাঁটার দিকে এবং 15ঘড়ির কাঁটার বিপরীতে। @ রিকহিচককের উত্তরের ভিত্তিতে।

Libc ব্যবহার না করে একটি এসএসই স্ট্রিং তুলনা নির্দেশ ব্যবহার করে 3 বাইট সংরক্ষণ করা হয়েছে।


1
আপনি কি এখানে মেশিন কোড বাইটগুলি গণনা করতে পারেন, যেহেতু সেই বাইটগুলি বাইনারিটিতে স্টারস্টারের প্ল্লেফেন্টের উপর নির্ভর করে? আপনি সেই একই বাইটগুলি অন্য প্রসঙ্গে নিতে পারবেন না এবং তাদের একই কাজ করার আশা করতে পারেন।
রবার্ট ফ্রেজার

খাঁটি মেশিন কোড প্রতিস্থাপন রয়েছে যা স্ট্যান্ডার্ড লাইব্রেরি উপর নির্ভর করে না strchr.com/strcmp_and_strlen_ using_sse_4.2
রবার্ট ফ্রেজার

@ রবার্টফ্রেজার সংযোগের সময় ফাংশনটির স্থান নির্ধারণ করা হয়, বাইট গণনাটি সর্বদা একই থাকে কারণ ফাংশনের ঠিকানাটি strstrসর্বদা একটি 32-বিট (4 বাইট) ঠিকানা হবে। আমার পোস্টে মেশিনের কোডটি লিঙ্কযুক্ত।
লগারন

1
আমার ধারণা এটি এক ধরণের ধূসর অঞ্চল। ফাংশনটি ব্যবহারের আগে অবজেক্ট ফাইলে (লিঙ্কার ম্যাপ) ডেটা নির্ভর করে। তবে আপনি যুক্তি দিতে পারেন যে জাভা ল্যাম্বদার চেয়ে কোনও ধরণের ঘোষণার প্রয়োজন নেই।
রবার্ট ফ্রেজার

এবিআইয়ের সাথে সম্পূর্ণরূপে মেনে চলার জন্য দ্রষ্টব্য, আপনাকে এক্সএমএম 5 বা এক্সএমএম 6 ব্যবহার করতে হবে যা কলার-সেভ করা রেজিস্টার, এক্সএমএম 2 এর পরিবর্তে যা কলি-সেভড (তবে কোনও বাইটের দাম পড়েনি)।
রবার্ট ফ্রেজার


3

এপিএল (ডায়ালগ), 22 18 বাইট

+/(⍷-⍷∘⌽)∘'ROYGBRO'

-4 বাইটস @ জিএনএনকে ধন্যবাদ

রঙের আদ্যক্ষরগুলির একটি স্ট্রিং নেয়। কোনও বিশেষ প্যাটার্নের জন্য আউটপুট 0, ঘড়ির কাঁটার বিপরীতে জন্য -1, ঘড়ির কাঁটার দিকে 1।

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


3

পাইথন 2 , 45 43 বাইট

lambda i,a='ROYGBRO':(i in a)-(i[::-1]in a)

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

@ ডেডপসসামের কাছ থেকে আইডিয়া এবং গুরুতর ক্রেডিট সহ

-জোকিংকে ধন্যবাদ দিয়ে -2। এখন আউটপুটস -1 = ঘড়ির কাঁটার বিপরীতে, 0 = কিছুই নয়, 1 = ঘড়ির কাঁটার দিকে।

আমার মূল প্রচেষ্টাটি historicalতিহাসিক উদ্দেশ্যে নীচে।

পাইথন 2 , 52 51 বাইট

lambda i,a='ROYGBRO':((0,1)[i[::-1]in a],2)[i in a]

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

0 = কিছুই নয়, 1 = ঘড়ির কাঁটার বিপরীতে, 2 = ঘড়ির কাঁটার দিকে



@ ডেডপসাম এটি আপনার নিজের উত্তর হিসাবে পোস্ট করার জন্য মারাত্মকভাবে দুর্দান্ত এবং আমার থেকে যথেষ্ট আলাদা। আমি upvote হবে।
এলপেড্রো

3

পাইথন 2 ,  35  36 বাইট

+1 - কোনও কারণে আমি ভেবেছিলাম যে সমস্ত বোতাম পৃথক> _ <হবে

আমি সবেমাত্র ডেড পসুম দ্বারা দেখেছি (এবং এখন আপ-ভোট দিয়েছি) থেকে স্বাধীনভাবে বিকাশ হয়েছে

lambda s:'ORBGYO.BROYGBR'.find(s)/7

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


আমি মনে করি আপনার অক্ষরের স্ট্রিং আলাদা করতে হবে। এটি "আরবিআর," এর জন্য 0 (অ্যান্টি-ক্লকওয়াইজ) দেয় যা আপনার সংমিশ্রনের তালিকায় নেই।
রিক হিচকক

@ রিকহিচকক আহ আমি ৩ টি পৃথক প্রেস টি ধরেছিলাম যা অবশ্যই ভুল। এটি কার্যকরভাবে ডেড পসামের মতোই তৈরি করবে!
জোনাথন অ্যালান

মোবাইল থেকে মুছতে পারে না ... মুছে ফেলা হবে বা পরে ঠিক করা হবে
জোনাথন অ্যালান

হ্যাঁ, এটি অস্পষ্ট হতে পারে, তবে একটি পরীক্ষার কেস ("OOO") দেখায় যে তারা পুনরাবৃত্তি করতে পারে।
রিক হিচকক

@ রিক হিচকক হ্যাঁ যা আমি আপনার মন্তব্যের পরে দেখেছি - ধন্যবাদ!
জোনাথন অ্যালান


2

পিপ , 19 বাইট

Y"ROYGBRO"OaNyaNRVy

10ঘড়ির কাঁটার দিকে, ঘড়ির কাঁটার 01বিপরীতে, 00দুজনের জন্যই আউটপুট । এটি অনলাইন চেষ্টা করুন!

ব্যাখ্যা

                     a is 1st cmdline argument
Y"ROYGBRO"           Yank that string into y variable
           aNy       Count of occurrences of a in y
          O          Output without newline
                RVy  y reversed
              aN     Count of occurrences of a in that string
                     Print (implicit)

2

জে , 21 বাইট

-&(OR@E.&'ROYGBRO')|.

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

কিভাবে এটা কাজ করে

-&(OR@E.&'ROYGBRO')|.  Monadic 2-verb hook. Input: a string.

                   |.  Map over [input string, input string reversed]:
      E.&'ROYGBRO'     Find exact matches of input in 'ROYGBRO'
  (OR@            )    Reduce with OR; is it a substring of 'ROYGBRO'?
-&                     Reduce with -; result is 1 for CW, -1 for CCW, 0 otherwise

সর্বাধিক পরিমাণ ফাংশন পুনরায় ব্যবহার করুন।


2

জেলি , 12 বাইট

,Ṛẇ€“¤ƈẎṬ%Ȥ»

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

-4 জনাথন অ্যালানকে ধন্যবাদ ।

ঘড়ির [1, 0]
কাঁটা : পাল্টা-ঘড়ির কাঁটাওয়ালা: [0, 1]
অন্যান্য:[0, 0]


@ জোনাথন অ্যালান ফেইও, ধন্যবাদ আমি যা করেছি তা কেবল আবার দেখেছি, আপনি কেবল 15 ঘন্টা দ্রুত ছিলেন। : পি
এরিক আউটগল্ফার





0

জাপট, 17 14 বাইট

লোয়ারকেসগুলিতে রঙগুলিকে ইনপুট হিসাবে নেয়। রিটার্নস 0ঘড়ির কাঁটার জন্য, 1বামাবর্তে জন্য অথবা -1যদি কোন কম্বো আছে।

`ygß`ê qÔbøU

চেষ্টা করে দেখুন


Expanation

`...`            :Compressed string "roygbrow"
     ê           :Palindromise
       qÔ        :Split on "w"
         b       :Index of the first element
          ø      : That contains
           U     :  The input string

0

রুবি , 53 36 বাইট

->n{"\a\fDch+".index(""<<n%111)&./3}

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

ইনপুট: একটি 3-সংখ্যার পূর্ণসংখ্যা, যেখানে অঙ্কগুলি রঙগুলি উপস্থাপন করে:

  • 1 - লাল
  • 2 - কমলা
  • 3 - হলুদ
  • 4 - সবুজ
  • 5 - নীল

আউটপুট: 0 ঘড়ির কাঁটার জন্য, 1 ঘন্টার কাঁটার বিপরীতে, nilঅন্যথায়।


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