Overhanded shuffles বিশ্লেষণ


13

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

টিম ওভারহ্যান্ডেড শ্যাফেলটি করছে: তিনি ডেকের নীচ থেকে কার্ডের একটি গাদা কাটেন, তারপরে স্তূপের শীর্ষ থেকে ডেকের শীর্ষে বিভিন্ন অংশ কেটে ফেলেন এবং কয়েকবার প্রক্রিয়াটি পুনরাবৃত্তি করেন।

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

  • যদি বদলানোর পরে, 25 টিরও কম সংলগ্ন কার্ড সংলগ্ন থাকে (একই ক্রমে), তবে এলোমেলো ন্যায্য এবং গেমটি চলতে পারে।
  • যদি কমপক্ষে 25 (তবে সমস্ত নয়) সংলগ্ন কার্ডগুলির জোড়া সংলগ্ন থাকে, তবে এলোমেলোভাবে দুর্বল হয়ে যায় এবং রড টিমকে মাথার উপরে চাপিয়ে দেবে এবং তাকে আরও কিছুটা বদলাতে বলবে।
  • যদি সমস্ত কার্ড শেষে একই অবস্থানে থাকে, তবে টিম স্পষ্টতই প্রতারণা করছে এবং রড তাকে একটি বড় ট্রাউট দিয়ে ধাক্কা দেবে।

এটি কোড গল্ফ, তাই সংক্ষিপ্ততম কোডটি জয়ী।

ইনপুট:

আপনি বিভিন্ন লাইনে 0 থেকে 52 (উভয়ই একচেটিয়া) জায়গাগুলি দ্বারা পৃথক পৃথক সংখ্যক সিরিজ পাবেন, যেখানে প্রতিটি লাইন এক দফায় দফায় দফায় দফায় দফায় দফায় শুরু হয় এবং সমস্ত কার্ড একসাথে পাইল করে শেষ হয়।

প্রতিটি লাইনে, প্রথম সংখ্যাটি টিমের ডেকের নীচ থেকে কাটা কার্ডগুলির সংখ্যা এবং পরবর্তী প্রতিটি নম্বর তার হাত থেকে ডেকের শীর্ষে নেমে আসে এমন কয়েকটি কার্ড of কোনও কার্ড যদি কোনও লাইনে শেষ সংখ্যার পরে থেকে যায়, আপনার ধরে নেওয়া উচিত যে টিম সেগুলি ডেকে উপরে রাখে।

ইনপুটটি বৈধ হওয়ার গ্যারান্টিযুক্ত। সংখ্যার কমপক্ষে একটি লাইন থাকে এবং প্রতিটি লাইনে কমপক্ষে 2 নম্বর থাকে। প্রতিটি লাইনের প্রথম সংখ্যা একই লাইনের অন্যান্য সমস্ত সংখ্যার যোগফলের চেয়ে ছোট নয়। একটি চলন্ত নিউলাইন optionচ্ছিক, আপনি ধরে নিতে পারেন ইনপুটটির একটি আছে বা এটিতে এটি নেই।

আউটপুট:

আপনার প্রোগ্রামটি "ফর্সা" মুদ্রণ / ফিরিয়ে দেওয়া উচিত যদি বদলগুলি ন্যায্য হয়, "দুর্বল" যদি বদল দুর্বল হয় এবং "কৌতুক" যদি টিম একইভাবে সমস্ত কার্ড রাখে। একটি ট্রেলিং নিউলাইন optionচ্ছিক।

উদাহরণ:

ডেকের 52 টি কার্ড রয়েছে বলে ধরে নেওয়া হয়, তবে প্রদর্শনের উদ্দেশ্যে, আমি 10 টি কার্ডের একটি ছোট ডেক ব্যবহার করব।

ইনপুট:

5 3 1
4 2 2

প্রাথমিক ডেক, শীর্ষ থেকে দেখা: 0 1 2 3 4 5 6 7 8 9
50 1 2 3 4( 5 6 7 8 9হাতে)
35 6 7 0 1 2 3 4( 8 9হাতে)
18 5 6 7 0 1 2 3 4( 9হাতে)
লাইনের শেষ ➜ 9 8 5 6 7 0 1 2 3 4
49 8 5 6 7 0( 1 2 3 4হাতে)
21 2 9 8 5 6 7 0( 3 4হাতে)
23 4 1 2 9 8 5 6 7 0
4 জোড়া সংলগ্ন থাকে:(3 4) (1 2) (5 6) (6 7)

পরীক্ষার কেস:

43 5 5 5 5 5 5 5 5
43 5 5 5 5 5 5 5 5
43 5 5 5 5 5 5 5 5

আউটপুট: fair


43 5 5 5 5 5 5 5 5
43 5 5 5 5 5 5 5 5
43 5 5 5 5 5 5 5

আউটপুট: weak


29 24
19 18
38 2 1 8 13 6 4
47 15 16 5 2 1 7
34 22 9 3
44 9 10 11 3 1 7
33 18 4 2 3 3

আউটপুট: fair


24 6 12 4
25 3 19
36 4 25 2
19 11 1 3
15 9 3
37 5 27

আউটপুট: weak


26 13
26 13
26 13
26 13

আউটপুট: trick


50 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2

আউটপুট: weak


50 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
50 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2

আউটপুট: trick


50 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
49 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2

আউটপুট: fair

প্রয়োজনীয়তা:

  • আপনি যদি কোনও ফাংশন লিখেন তবে তা হয় স্ট্যান্ডার্ড ইনপুট থেকে পড়তে পারে বা একক স্ট্রিং প্যারামিটার হিসাবে ইনপুট গ্রহণ করতে পারে। এছাড়াও, ফাংশন হয় হয় আউটপুট মুদ্রণ বা এটি ফিরে আসতে পারে।
  • লিনাক্সে অবাধে উপলভ্য সফ্টওয়্যার ব্যবহার করে প্রোগ্রামটি চালানো উচিত।
  • উত্স কোডটিতে কেবলমাত্র ASCII অক্ষর ব্যবহার করা উচিত।
  • কোনও মানক ফাঁক নেই।

2
কেন এএসসিআইআই-এর সীমাবদ্ধতা? অনেকগুলি ভাষা (এপিএল, মেশিন কোড, টিআই-বেসিক) এএসসিআইআই মোটেও ব্যবহার করে না, সুতরাং আপনি এগুলি স্পষ্টতই অস্বীকার করছেন।
lirtosiast

@ থমাসকওয়া কারণ যেহেতু অ-এসসিআইআই অক্ষর প্রদর্শন এবং গণনা করা সম্পর্কিত বিষয়গুলি আমি পছন্দ করি না। সেগুলির কয়েকটি ভাষার ASCII উপস্থাপনা বা বিকল্প রয়েছে। আমি মনে করি এটি খুব কঠোর বিধিনিষেধ নয় এবং এটি খেলার মাঠকে সামান্য স্তর করে।
অ্যাডিটসু ছেড়ে গেছে কারণ এসই ইভিল

আমি মনে করি "কেবল প্রিন্টযোগ্য এএসসিআইআই অক্ষর ব্যবহার করে এমন এন্ট্রিগুলিতে লগ (95) / লগ (256) দ্বারা বাইট গণনা হবে" আপনি যদি প্রিন্টযোগ্য এএসসিআইআই সাবমিশনগুলি মোটামুটি উত্সাহিত করতে চান তবে আরও ভাল বিকল্প হতে পারে। যুক্তিটি হ'ল একই স্কোর সহ এন্ট্রিগুলির তথ্য সামগ্রী সমান হবে। ব্যক্তিগতভাবে, আমি এখনও বাইট দ্বারা একটি সাধারণ স্কোরিং পছন্দ করব।
lirtosiast

@ থমাসকওয়া ঠিক আছে, এ কেমন? কেবল মুদ্রণযোগ্য ইউনিকোড অক্ষর, ইউটিএফ -8 এনকোডিংয়ের বাইটগুলি গণনা
অদিতসু প্রস্থান করুন কারণ এসই ইভিআই

উত্তর:




2

জাভাস্ক্রিপ্ট, 292 289 বাইট

এটি সম্ভবত এটি থেকে আরও কিছু বাইট নিঃসৃত পেতে পারে, তবে এটি এখনই একটি দ্রুত প্রথম পাস:

d=[];for(i=0;i<52;i+=1)d[i]=i
s=prompt().split('\n')
s.forEach(function(e,i){s[i]=e.split(' ')
h=d.splice(-s[i][0],99)
for(j=1;j<s[i].length;j+=1)d.unshift.apply(d,h.splice(0,s[i][j]))
d.unshift.apply(d,h)})
for(c=0;i>1;i-=1)if(d[i-2]==d[i-1]-1)c+=1
alert(c<25?"fair":c<51?"weak":"trick")

সম্পাদনা: iসংলগ্ন কার্ডের সংখ্যা গণনা করার সময় ডেক-বিল্ডিং লুপের মানটি পুনরায় ব্যবহার করে 3 বাইট সংরক্ষণ করা হয়েছে ।

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