ঘড়ি (কার্ড গেম)


14

ঘড়ি একটি আকর্ষণীয় কার্ড গেম, কারণ এতে কোনও দক্ষতার প্রয়োজন নেই। এটি একক প্লেয়ার গেম এবং একই কার্ড কনফিগারেশন সর্বদা একটি জয় বা পরাজয়ের দিকে পরিচালিত করে। এই চ্যালেঞ্জে, কোনও প্রদত্ত কার্ডের কনফিগারেশনটি জেতে বা হারে কিনা তা আপনাকে খুঁজে বের করতে হবে । আপনি এখানে খেলা খেলতে পারেন ।

খেলাটি নিম্নরূপ খেলেছে:

  1. ত্রিশটি গাদা কার্ড মুখোমুখি হ'ল। প্রতিটি স্তূপ 0 থেকে 12 পর্যন্ত গণনা করা হয়।
  2. আমরা বর্তমান স্তূপ হতে 0 র্থ স্তূপ নির্ধারণ করেছি
  3. আমরা বর্তমান গাদা মুখের উপরের কার্ডটি ফ্লিপ করি।
  4. আমরা তার সম্পর্কিত স্তূপের নীচে ফেস আপ কার্ডটি সরিয়ে নিয়েছি (একটি 4 কার্ড 4 র্থ স্তরের নীচে যায়) । কার্ডটি মুখর থাকে। এই স্তূপটি বর্তমান স্তূপে পরিণত হয়।
  5. যদি বর্তমান স্তূপটি সম্পূর্ণ মুখোমুখি হয় তবে গেমটি শেষ। অন্যথায়, পদক্ষেপ 3 এ ফিরে যান।

টিপ: খেলাটি সর্বদা 0 স্তূপে শেষ হবে

সমস্ত কার্ড মুখোমুখি হয়ে গেলে গেমটি জিতে যায় এবং যদি মুখের কার্ডগুলি বাকী থাকে তবে তা হারিয়ে যায়।

ইনপুট আউটপুট

একটি 2D অ্যারে প্রতিটি পাইল রয়েছে। কার্ডগুলি 0 থেকে 12 পর্যন্ত সংখ্যার সাথে উপস্থাপিত হয় (মামলাটি অপ্রাসঙ্গিক, এবং দেওয়া হয় না)। প্রতিটি গাদা শীর্ষ কার্ড প্রতিটি অ্যারের প্রথম উপাদান।

আপনি ধরে নিতে পারেন যে ইনপুটটি ভালভাবে গঠিত হবে: এতে 0 থেকে 12 (অন্তর্ভুক্ত) পর্যন্ত 52 টি কার্ড থাকবে এবং প্রতিটি সংখ্যা ঠিক 4 বার থাকবে।

গেমটি জিততে পারলে আপনাকে অবশ্যই সত্যবাদী মানটি দিতে হবে, এবং যদি তা না পারে তবে মিথ্যা।

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

Truthy:

[[11, 11, 7, 7], [8, 6, 5, 0], [2, 10, 9, 1], [12, 3, 0, 6], [8, 7, 4, 8], [3, 10, 5, 12], [11, 7, 1, 10], [3, 1, 6, 0], [2, 3, 0, 6], [5, 10, 5, 4], [12, 9, 11, 2], [9, 4, 12, 4], [1, 9, 8, 2]]
[[0, 9, 4, 8], [1, 4, 11, 3], [10, 12, 4, 0], [5, 9, 11, 5], [7, 0, 11, 2], [6, 5, 6, 0], [5, 7, 6, 7], [1, 10, 3, 4], [10, 11, 12, 3], [9, 9, 3, 6], [12, 12, 2, 1], [1, 8, 8, 2], [7, 2, 10, 8]]
[[11, 11, 9, 5], [3, 0, 1, 7], [6, 2, 9, 4], [6, 9, 11, 2], [10, 9, 6, 1], [12, 8, 10, 0], [2, 3, 12, 3], [3, 12, 5, 11], [4, 1, 8, 12], [7, 0, 2, 5], [4, 1, 10, 4], [7, 10, 6, 5], [8, 8, 0, 7]]
[[2, 3, 4, 11], [6, 12, 5, 9], [11, 0, 5, 9], [1, 8, 0, 12], [11, 9, 5, 8], [12, 7, 1, 0], [10, 3, 1, 11], [3, 12, 7, 2], [2, 7, 1, 5], [6, 3, 4, 10], [10, 10, 9, 8], [6, 2, 4, 4], [6, 8, 0, 7]]
[[1, 2, 12, 9], [5, 6, 4, 11], [0, 0, 7, 10], [9, 7, 12, 0], [12, 1, 8, 6], [10, 1, 4, 8], [9, 2, 6, 11], [10, 12, 1, 8], [6, 7, 0, 3], [2, 2, 5, 5], [8, 11, 9, 3], [4, 7, 3, 10], [5, 11, 4, 3]]
[[8, 12, 5, 3], [3, 10, 0, 6], [4, 11, 2, 12], [6, 1, 1, 12], [7, 6, 5, 0], [0, 8, 8, 7], [4, 8, 1, 2], [2, 3, 11, 6], [11, 10, 5, 2], [10, 1, 9, 4], [12, 5, 9, 7], [7, 3, 10, 9], [9, 0, 11, 4]]
[[3, 4, 8, 7], [2, 2, 8, 9], [12, 7, 0, 4], [4, 7, 10, 11], [5, 10, 3, 11], [10, 9, 8, 7], [5, 2, 11, 8], [6, 0, 3, 10], [9, 1, 4, 12], [12, 3, 12, 6], [2, 5, 1, 1], [6, 11, 5, 1], [6, 9, 0, 0]]
[[11, 9, 11, 1], [1, 3, 2, 8], [3, 3, 6, 5], [8, 11, 7, 4], [9, 4, 5, 1], [6, 4, 12, 6], [12, 10, 8, 7], [3, 9, 10, 0], [2, 8, 11, 9], [2, 4, 1, 0], [12, 5, 6, 0], [10, 7, 10, 2], [5, 0, 12, 7]]
[[9, 9, 6, 5], [7, 5, 11, 9], [8, 12, 3, 7], [1, 2, 4, 10], [11, 3, 3, 10], [2, 0, 12, 11], [4, 7, 12, 9], [3, 6, 11, 1], [1, 10, 12, 0], [5, 6, 8, 0], [4, 10, 2, 5], [8, 8, 1, 6], [0, 7, 2, 4]]
[[4, 0, 7, 11], [1, 5, 2, 10], [2, 9, 10, 0], [4, 12, 1, 9], [10, 12, 7, 0], [9, 4, 1, 8], [6, 6, 9, 12], [5, 3, 6, 2], [11, 3, 6, 4], [7, 3, 5, 5], [11, 8, 1, 11], [10, 7, 2, 8], [8, 12, 0, 3]]

Falsy:

[[8, 1, 6, 1], [7, 9, 0, 12], [11, 12, 12, 12], [11, 5, 9, 3], [2, 10, 9, 7], [11, 2, 0, 8], [0, 10, 4, 6], [8, 0, 4, 2], [6, 5, 3, 8], [4, 10, 3, 1], [5, 11, 9, 6], [7, 5, 1, 4], [2, 7, 3, 10]]
[[1, 4, 4, 6], [3, 11, 1, 2], [8, 5, 10, 12], [7, 10, 7, 5], [12, 8, 3, 7], [4, 0, 12, 12], [1, 1, 9, 6], [8, 7, 5, 10], [11, 0, 11, 0], [5, 10, 3, 11], [3, 2, 9, 8], [9, 6, 0, 2], [2, 6, 9, 4]]
[[10, 1, 10, 7], [12, 3, 11, 4], [0, 5, 10, 7], [5, 11, 1, 3], [6, 6, 9, 4], [9, 0, 8, 6], [9, 12, 7, 10], [1, 6, 3, 9], [0, 5, 0, 2], [4, 8, 1, 11], [7, 12, 11, 3], [8, 2, 2, 2], [8, 4, 12, 5]]
[[3, 8, 0, 6], [11, 5, 3, 9], [11, 6, 1, 0], [3, 7, 3, 10], [6, 10, 1, 8], [11, 12, 1, 12], [8, 11, 7, 7], [1, 8, 2, 0], [9, 4, 0, 10], [10, 2, 12, 12], [7, 4, 4, 2], [9, 4, 5, 5], [6, 2, 9, 5]]
[[0, 1, 9, 5], [0, 1, 11, 9], [12, 12, 7, 6], [3, 12, 9, 4], [2, 10, 3, 1], [6, 2, 3, 2], [8, 11, 8, 0], [7, 4, 8, 11], [11, 8, 10, 6], [7, 5, 3, 6], [0, 10, 9, 10], [1, 4, 7, 12], [5, 5, 2, 4]]
[[9, 8, 0, 6], [1, 1, 7, 8], [3, 2, 3, 7], [9, 10, 12, 6], [6, 12, 12, 10], [11, 4, 0, 5], [10, 11, 10, 7], [5, 3, 8, 8], [1, 2, 11, 4], [0, 5, 6, 0], [5, 9, 2, 4], [4, 2, 3, 11], [9, 1, 12, 7]]
[[4, 3, 5, 7], [1, 9, 1, 3], [7, 9, 12, 5], [9, 0, 5, 2], [7, 2, 11, 9], [1, 6, 6, 4], [11, 0, 6, 4], [3, 0, 8, 10], [2, 10, 5, 3], [10, 11, 8, 12], [8, 1, 12, 0], [7, 12, 11, 2], [10, 6, 8, 4]]
[[9, 5, 11, 11], [7, 7, 8, 5], [1, 2, 1, 4], [11, 11, 12, 9], [0, 12, 0, 3], [10, 6, 5, 4], [4, 5, 6, 8], [10, 9, 7, 3], [12, 6, 1, 3], [0, 4, 10, 8], [2, 0, 1, 12], [3, 9, 2, 6], [2, 7, 8, 10]]
[[4, 1, 5, 7], [7, 12, 6, 2], [0, 11, 10, 5], [10, 0, 0, 6], [10, 1, 6, 8], [12, 7, 2, 5], [3, 3, 8, 12], [3, 6, 9, 1], [10, 9, 8, 4], [3, 9, 2, 4], [11, 1, 4, 7], [11, 5, 2, 12], [0, 8, 11, 9]]
[[3, 11, 0, 1], [6, 1, 7, 12], [9, 8, 0, 2], [9, 6, 11, 8], [10, 5, 2, 5], [12, 10, 9, 5], [4, 9, 3, 6], [7, 2, 10, 7], [12, 6, 2, 8], [10, 8, 4, 7], [11, 3, 4, 5], [12, 11, 1, 0], [1, 3, 0, 4]]

উত্তর:


9

ES6, 57 বাইট

a=>(g=n=>a.map((x,i)=>i&&x[3]==n&&++c&&g(i)),g(c=0),c>11)

এটি কাজ করে কারণ পাইলগুলির 1-10 নীচে থাকা কার্ডগুলি কেবল প্রাসঙ্গিক, এবং সেগুলি 0 টি পাইল করার জন্য একটি নির্দেশিত গ্রাফ গঠন করতে হবে So সুতরাং, আমি পাইলসের সংখ্যা গণনা করি যার নীচের কার্ডটি 0, তারপরে পাইলগুলির সংখ্যা নীচের কার্ডটি আমি আগে গুনানো পাইলগুলির মধ্যে একটি ছিল ইত্যাদি etc.

বাহ্যরেখার প্রমাণ:

আপনি সর্বশেষ 0 টি ঘুরে দেখলে খেলাটি সর্বদা শেষ হয়, যেহেতু সেই স্তূপটি কার্যকরভাবে অন্যদের চেয়ে কম কার্ড থাকে।

যদি পাইলসের নীচের কার্ডগুলি 1-12-তে গাদা করার জন্য নির্দেশিত গ্রাফ গঠন করে, তবে গাদা 0 সাফ করার জন্য, আমাদের সমস্ত পাইলগুলি সাফ করতে হবে যার শেষ প্রবেশটি 0, এবং তাই সমস্ত পাইলগুলিতে পুনরাবৃত্তভাবে আমাদের সাফ করতে হবে যাতে আমরা পাইলস সাফ করতে পারি যার শেষ প্রবেশ 0, এবং আরও forth কনফিগারেশন তাই একটি বিজয়ী।

পাইলস 1-12 এর নীচে থাকা কার্ডগুলি যদি 0 গাদা করার জন্য নির্দেশিত গ্রাফ তৈরি না করে তবে কমপক্ষে একটি চক্র থাকতে হবে। এই চক্রের কোনও গাদা পরিষ্কার করা যায় না, কারণ এটি চক্রের পূর্ববর্তী স্তূপের উপর নির্ভর করে। (দৈর্ঘ্য ২ চক্রের ক্ষেত্রে এটি মুরগির ও ডিমের পরিস্থিতি)) তাই কনফিগারেশনটি হারাতে বসেছে।


7

সিজেম, 23 21 বাইট

q~({(\a@+1$ff-m<(}h*!

সমস্ত পরীক্ষার কেস চালান।

সত্য ও মিথ্যাচারের কার্যভারটি যদি বিপরীত হয় তবে আমি 3 বাইট সংরক্ষণ করতে পারতাম:

q~{((\a@+1$ff-m<}h

ব্যাখ্যা

কার্ডগুলি অন্য স্তূপের নীচে রাখা একটি লাল রঙের হেরিং। আমরা সম্ভবত সেগুলি খেলা থেকে সরিয়ে ফেলা এবং বর্তমান পাইলটি খালি না হওয়া পর্যন্ত খেলতে থাকি। সুতরাং আমি এটিই করছি: বর্তমান পাইলটি খালি না হওয়া পর্যন্ত কোডটি সহজভাবে গেমটি খেলবে এবং তারপরে কোনও কার্ড বাকি আছে কিনা তা পরীক্ষা করে দেখুন।

q~    e# Read and evaluate input.
(     e# Pull off the first (current) pile.
{     e# While the current pile is non-empty...
  (\  e#   Pull off the top card and swap with the remaining pile.
  a   e#   Wrap the pile in an array.
  @+  e#   Prepend it to the list of piles
  1$  e#   Copy the drawn card.
  ff- e#   Subtract it from all all remaining cards.
  m<  e#   Rotate the stack to the left by the drawn card
  (   e#   Pull off the top pile as the new current pile.
}h
*     e# The top pile is empty. Joining the other piles with it, flattens them.
!     e# Logical not, turns an empty array into 1 and a non-empty array into 0.


4

পাইথ, 13 বাইট

!su@LGGXeMQZZ

@ নীলের প্রমাণের উপর নির্ভর করে। !su&VG@LGGeMQকাজ করে।

                 implicit: Q=input
! s u            Sum of (apply lambda G,H on ... until fixed point) equals 0
      @L         Index G into itself.
         G       
         G       
                  Apply that to:
      X                                            set to
        eM Q      Last elts of input, with the 
        Z                                      0th
        Z                                                 0

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


অনুরোধ লাইনটি খুব বড় (7173> 4094)
পাগল

লিঙ্কটি স্থির করে।
lirtosiast

1

পাইথন, 55 বাইট

x=lambda l,i=0:x(l,l[i].pop(0))if l[i]else[]==sum(l,[])

সাবলিস্টটি খালি না হলে আইটেমগুলি পপ করা চালিয়ে যান। এটি খালি হয়ে গেলে, সমস্ত তালিকা খালি (একটি বড় তালিকায় তাদেরকে গ্রুপবদ্ধ করে) ফিরে আসুন বা না করুন।


পাইথন ৩.৪.২ ব্যবহার করে আমি প্রথম সত্য পরীক্ষার ক্ষেত্রে মিথ্যা পেয়েছি।
লিটারোসিয়াস্ত

আমি প্রতিটি তালিকার শেষ আইটেমটি নিচ্ছি, সুতরাং আপনাকে তালিকাগুলি ফ্লিপ করতে হবে: l = [আমি [:: - 1] আমার জন্য এল]]
দন্তাল

1
প্রশ্নটি স্পষ্টতই বলেছে যে প্রতিটি তালিকার প্রথম আইটেমটি শীর্ষে রয়েছে। আপনার বাইট কাউন্টে ফ্লিপ করতে আপনাকে কোডটি অন্তর্ভুক্ত করতে হবে।
লিটারোসিয়াসট

সংশোধন করা হয়েছে। এখন এটি প্রথম আইটেমটি পপ করছে।
দন্তল

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