কয়েকটি সর্বাধিক-চালিত ফ্রিসেল সলভার তৈরি করুন


54

ফ্রিসেলের গেমটিতে, আপনাকে টেক্কা দেওয়া থেকে শুরু করে রাজা পর্যন্ত একটি ফাউন্ডেশন পাইলস তৈরির কাজ দেওয়া হয়েছে, যেখানে আপনি বিকল্প রঙগুলিতে নীচের দিকে তৈরি করেন। তবে আপনি একবারে কেবল একটি কার্ড তৈরি করতে পারেন, সুতরাং আপনাকে চারটি "ফ্রি সেল" দেওয়া হয়েছে যার প্রতিটিটিতে একটি করে কার্ড থাকতে পারে যাতে আপনাকে পুরো সিকোয়েন্সগুলি সরাতে সহায়তা করে। ধারণাটি হ'ল গেমটি সমাধান করতে সহায়তা করার জন্য আপনি নিখরচায় সেলগুলিতে এবং বাইরে পৃথক কার্ড বুনতেন।

আপনার কাজ হ'ল এমন একটি প্রোগ্রাম তৈরি করা যা এই গেমগুলিকে খুব কম সম্ভাব্য পদক্ষেপগুলিতে সমাধান করবে।

আপনার প্রোগ্রামটি নিম্নলিখিত বিন্যাসে ইনপুট হিসাবে 52 টি কার্ডের ক্রম নেবে:

2S 9H 10C 6H 4H 7S 2D QD KD QC 10S AC ...

যা এই ক্রমে প্রাথমিক বিন্যাসে মোকাবেলা করা হবে:

01 02 03 04 05 06 07 08
09 10 11 12 13 14 15 16
17 18 19 20 21 22 23 24
25 26 27 28 29 30 31 32
33 34 35 36 37 38 39 40
41 42 43 44 45 46 47 48
49 50 51 52

এবং গেমটি সমাধানের জন্য চালগুলির একটি তালিকা ফেরত দিন। প্রতিটি পদক্ষেপ এই বিন্যাসে হবে:

  • গাদা সংখ্যা ( 1মাধ্যমে 8) বা উত্স স্তূপের প্রতিনিধিত্ব করে একটি ফ্রি সেল ( Aটু D) উপস্থাপন করে এমন একটি সংখ্যা ।
  • গন্তব্য গাদা বা ফ্রি সেল উপস্থাপন করে বা Fসেই স্যুটটির ভিত্তির জন্য অন্য একটি সংখ্যা বা চিঠি ।

আউটপুটটি এরকম কিছু দেখবে:

18 28 3A 8B 8C 85 B5 35 4F etc.

একবার কোনও কার্ড ফাউন্ডেশনে রাখার পরে এটি সরানো যায় না। যেহেতু একবারে কেবল একটি কার্ড সরানো হয়, তাই 3 টি কার্ডের ক্রমটি চলতে 5 টি চালানো প্রয়োজন, এবং 5 টি কার্ডের ক্রমটিতে 9 টি চালানো দরকার।

যদি কোনও গেমটি অবিশ্বাস্য হয় তবে আপনার প্রোগ্রামটি এমনভাবে নির্দেশ করা উচিত। যাইহোক, আপনার প্রোগ্রাম অবশ্যই যে কোনও দ্রবণযোগ্য গেম সমাধান করতে সক্ষম হতে হবে।

মূল প্রোগ্রামটি মাইক্রোসফ্ট ফ্রিसेल প্রোগ্রামে পাওয়া 32,768 টি ব্যবসায় আপনার প্রোগ্রামের বিচার করা হবে। বৈধ হওয়ার জন্য, আপনার প্রোগ্রামটি অবশ্যই ডিল # 11,982 বাদে প্রতিটি চুক্তি সাফল্যের সাথে সমাধান করতে হবে , যা অগ্রহণযোগ্য । আপনার স্কোরটি এই 32,767 টি ডিলগুলি সমাধান করতে মোট চলনগুলির সংখ্যা হবে, সংক্ষিপ্ত কোডটি টাই-ব্রেকার হিসাবে।


উপরের স্পেসিফিকেশন দ্বারা আবশ্যক বিন্যাসে সমস্ত ডেক সহ একটি ফাইল এখানে ডাউনলোডের জন্য উপলব্ধ ( https://github.com/joezeng/pcg-se-files/raw/master/freesel_decks


1
এখন আমাকে কেবল এলোমেলো নম্বর জেনারেটর ধরতে হবে যা তারা 32 32,768 গেম তৈরি করে। : এস
জো জেড।

3
জেনারেটরটি এখানে রয়েছে: rosettacode.org/wiki/Deal_cards_for_FreeCell
নটকি

1
এটা একটা ভাল দিক. একই বর্ণ এবং সংখ্যার দুটি কার্ড (যেমন 7 সি এবং 7 এস) উভয়ই ফ্রি কোষে রয়েছে সে ক্ষেত্রে আপনি কীভাবে মোকাবেলা করবেন? তারপরে আপনি যদি "সি" থেকে একটি কালো 8 এ চলে যান তবে এটি দুটি কার্ডের একটিরও হতে পারে।
জো জে।

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

1
কার্ডগুলি 0-সূচিযুক্ত হতে পারে?
tuskiomi

উত্তর:


22

সি 64,643 বাইট, স্কোর: .5 6.5 মিলিয়ন

নিম্নলিখিত স্ট্যাক স্নিপেট (মেগোর সৌজন্যে) সমস্ত কোডকে একটি একক স্ট্যান্ডেলোন সি ফাইল হিসাবে আউটপুট দেয়:

মূল উত্সটি এখানে ডাউনলোড করুন । জিসিসি makeব্যবহার করুন এবং রিডমে গাইডলাইনটি ব্যবহার করে তারপরে চালান ।

আমার ফর্ম্যাটিংটি খারাপ (সমস্ত ভিন্ন ফাইল একটি কোড ব্লকে রয়েছে) এবং এটি আরও গল্ফ করা যেতে পারে (12 কে বাইট থো)। কোন সাহায্য পছন্দ হবে!

কিছু কোড আমার নয়। আমি এটি অন-কপিরাইটযুক্ত উত্স থেকে ব্যবহার করেছি। যাইহোক আমি ইনপুট / আউটপুট পদ্ধতিটিকে চ্যালেঞ্জের মধ্যে থাকতে সংশোধন করেছিলাম (একটি দীর্ঘ কাজ যেহেতু আমি সি (5 ঘন্টা) ভীষণ ভয়ঙ্কর)। আমাকে অনেকটা কোড আবার লিখতে হয়েছিল এবং সমস্ত কিছু ডিবাগ করতে হয়েছিল। রাবার হাঁসকে সাহায্য করার জন্য এবং আমার স্মৃতি পরিচালনার ত্রুটিগুলি নির্দেশ করার জন্য এবং টিএনবিতে প্রত্যেকের জন্য যারা সিগফল্ট এবং সি সম্পর্কে আমার ক্ষুব্ধ অভিযানের মোকাবেলা করেছেন তাদের জন্য অনেক ধন্যবাদ thanks


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

@ মেগো আমার অর্থ হ্যাঁ তবে এটি বেশ কয়েকটি ফাইলে রয়েছে
ক্রিস্টোফার

একক একাধিক সি ফাইল একত্রিত করা সহজ।
মেগো

এখানে একটি স্ট্যাক স্নিপেট যা একক ফাইলে সংযুক্ত কোডটি দেখায়।
ঐ মেগো

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