মেটা টিক-ট্যাক-টো-এর খেল খেলতে দেয়!
এটি মেটা টিক-টাক-টো -এর কিং-অফ-পাহাড়ী টুর্নামেন্ট। মেটা টিক-ট্যাক-টো এর নিয়মগুলি নিম্নরূপ:
টিক-ট্যাক-টোয়ের নিয়মিত সমস্ত নিয়ম প্রযোজ্য।
একটি করে মাস্টার বোর্ড করার জন্য নয়টি বোর্ড সাজানো আছে। তাই ভালো:
0|1|2 || 0|1|2 || 0|1|2 ----- || ----- || ----- 3|4|5 || 3|4|5 || 3|4|5 ----- || ----- || ----- 6|7|8 || 6|7|8 || 6|7|8 ======================== 0|1|2 || 0|1|2 || 0|1|2 ----- || ----- || ----- 3|4|5 || 3|4|5 || 3|4|5 ----- || ----- || ----- 6|7|8 || 6|7|8 || 6|7|8 ======================== 0|1|2 || 0|1|2 || 0|1|2 ----- || ----- || ----- 3|4|5 || 3|4|5 || 3|4|5 ----- || ----- || ----- 6|7|8 || 6|7|8 || 6|7|8
বোর্ড 0 শীর্ষ বাম বোর্ডকে বোঝায়, বোর্ড 1 টি শীর্ষ মিডল বোর্ডকে বোঝায় ... এর মতো
0|1|2 ----- 3|4|5 ----- 6|7|8
যদি আমি বোর্ড 3 বলি, টাইল 4, তার মানে মাঝ বামে বোর্ডের কেন্দ্র টাইল।
আপনাকে কেবলমাত্র ছোট বোর্ডগুলির মধ্যে একটিতে যাওয়ার অনুমতি দেওয়া হয়েছে।
আপনি যদি একটি ছোট বোর্ড জিতেন তবে পুরো বোর্ডটি আপনার টাইল হিসাবে গণ্য হবে।
কোনও একটি বোট এটি জয়ের আগে যদি বোর্ডগুলির মধ্যে একটি পূর্ণ হয়, তবে এটি নোবডি টাইল হিসাবে গণ্য।
যে জিতবে মাস্টার বোর্ডের জয়!
তবে, একটি গুরুত্বপূর্ণ মোড় আছে। ধরা যাক আমি বোর্ড 7 এ যাই, টাইল 2। তার মানে আপনার পালা, আপনি কেবল বোর্ডে 2 যেতে পারেন Then তারপরে ধরে নেওয়া যাক আপনি বোর্ড 2, টাইল 5 এ যান my এখন আমার পালা, আমি কেবল বোর্ড 5 তে যেতে পারি ধরা যাক বোর্ড 1 টি পূর্ণ। (আর কোনও দাগ বাকী নেই, বা আমাদের মধ্যে ইতিমধ্যে একটি বোর্ড জিতেছে 1) এখন আমি যদি বোর্ড 5, টাইল 1 এ যাই তবে আপনি যে কোনও বোর্ডে যেতে পারেন।
এই নিয়মগুলি হিসাবে বিবেচনা করা যেতে পারে:
- পূর্ববর্তী প্লেয়ারের পজিশন অনুসারে আপনাকে অবশ্যই বোর্ডে খেলতে হবে।
- এক্স বোর্ডে 2 খেললে, টাইল 5; হে বোর্ড 5 খেলতে হবে
- যদি লক্ষ্য বোর্ডটি পূর্ণ (একটি টাই) বা ইতিমধ্যে একটি বিজয়ী থাকে, পরবর্তী পদক্ষেপটি নিয়ন্ত্রণহীন।
- বিজয়ী সহ একটি বোর্ড খেলতে নাও পারা যায়, এমনকি একটি নিয়ন্ত্রণহীন পদক্ষেপেও।
এটি যদি কিছুটা বিভ্রান্ত হয় তবে আপনি এটি এখানে অনলাইনে চেষ্টা করতে পারেন । ("প্রথম টাইল জয়" থেকে "এক সারি 3 টাইলস" এ স্যুইচ করার বিষয়টি নিশ্চিত করুন)
এখন এখানে চ্যালেঞ্জের নিয়ম রয়েছে।
আপনার অবশ্যই একটি বট লিখতে হবে যা এই গেমটি খেলবে।
বট 1 হ'ল এক্স, এবং এটি প্রথমে যেতে পারে। এটি এই কমান্ড লাইন আর্গুমেন্টের সাথে ডাকা হবে (বন্ধনীগুলির স্টাফ ছাড়াই):
X (whose turn) --------- (board 0) --------- (board 1) --------- (board 2) --------- (board 3) --------- (board 4) --------- (board 5) --------- (board 6) --------- (board 7) --------- (board 8) --------- (master board) xx (last move)
প্রথম চরিত্রটি বটটি কে প্রতিনিধিত্ব করে। এই ক্ষেত্রে, বট 1 এক্স হিসাবে খেলবে The পরবর্তী 9 টি লাইন 9 টি বোর্ডকে বোঝায়। 11 তম লাইনটি মাস্টার বোর্ডকে বোঝায়। "এক্সএক্স" হ'ল শেষ পদক্ষেপ। এখন, বট 1 টি অবশ্যই 0 এবং 8 এর মধ্যে দুটি সংখ্যা মুদ্রণ করবে আপনার নম্বরটি 1 টি আপনার বটটি যে বোর্ডে প্রবেশ করছে, এবং 2 নম্বরটি বোর্ডের টাইল। নিয়ামক এই পদক্ষেপের উপর নজর রাখবেন। বট 1 টি 38 টি প্রিন্ট বলি এখন বোর্ডটি এর মতো দেখাবে:
| | || | | || | | ----- || ----- || ----- | | || | | || | | ----- || ----- || ----- | | || | | || | | ========================== | | || | | || | | ----- || ----- || ----- | | || | | || | | ----- || ----- || ----- | |X || | | || | | ========================== | | || | | || | | ----- || ----- || ----- | | || | | || | | ----- || ----- || ----- | | || | | || | |
এবং bot2 এই আর্গুমেন্টের সাথে কল করা হবে:
O --------- --------- --------- --------X --------- --------- --------- --------- --------- --------- 38
এখন বট 2 টি অবশ্যই বোর্ড 8 এ চলতে হবে (কারণ বট 1 টাইল 3 এ একটি এক্স রেখেছিল)। আসুন বলি বট 2 84 টি প্রিন্ট করে Now এখন বোর্ডটি এর মতো দেখাচ্ছে।
| | || | | || | | ----- || ----- || ----- | | || | | || | | ----- || ----- || ----- | | || | | || | | ========================== | | || | | || | | ----- || ----- || ----- | | || | | || | | ----- || ----- || ----- | |X || | | || | | ========================== | | || | | || | | ----- || ----- || ----- | | || | | || |O| ----- || ----- || ----- | | || | | || | |
এখন bot1 এই যুক্তি দিয়ে ডাকা হবে:
X --------- --------- --------- --------X --------- --------- --------- --------- ----0---- --------- 84
এখন bot1 অবশ্যই বোর্ডে চলতে হবে ৪. তবে, বট 1 একটি দুষ্টু ছোট বট এবং বোর্ডে সরানোর সিদ্ধান্ত নিয়েছে It এটি '30' প্রিন্ট করে। বোর্ড মোটেই বদলায় না। মাস্টার বট এটিকে লক্ষ্য রাখে। এখন এই যুক্তি দিয়ে বট 2 কল করা হবে:
O --------- --------- --------- --------X --------- --------- --------- --------- ----0---- --------- xx
এখন বট 2 এটি যে কোনও জায়গায় যেতে পারে (অবশ্যই 38 এবং 84 বাদে)। কেউ একের পর এক 3 টি মাস্টার বোর্ড জিত না হওয়া পর্যন্ত এটি অব্যাহত থাকে। তারপরে, এখানে একটি দ্বিতীয় ম্যাচআপ রয়েছে যেখানে বট 2 এক্স এবং প্রথমে যেতে পারে।
যতক্ষণ না প্রতিটি একক বট প্রতিটি অন্যান্য বট না খেলে এটি পুনরাবৃত্তি করে।
স্কোরিং
স্কোরিং এর মতো কাজ করে:
প্রতিটি ম্যাচের বিজয়ী 100 + number of open spots
পয়েন্ট পায় । এইভাবে, আপনার বটটি দ্রুত জিতলে এটি আরও মূল্যবান। আপনার বট প্রতিবারই একটি অবৈধ পদক্ষেপ নেয়, এটি 1 পয়েন্ট হারাবে। যদি 250 রাউন্ডের পরে, কোনও বট জিতেনি, প্রতিটি বট 10 পয়েন্ট হারিয়েছে এবং আমরা পরবর্তী রাউন্ডে যেতে চাই।
সমস্ত কিছু এমন একটি ডিরেক্টরিতে রাখা হবে যাতে এতে রয়েছে
নিয়ামক বট এটি একটি সি ++ প্রোগ্রাম যা আমি লিখেছি। আপনি এখানে নিয়ামক বট উত্স কোডটি দেখতে পারেন । আপনি যদি এমন কোনও কিছু নিয়ন্ত্রণকারীর সাথে সঠিক না দেখেন তবে আমাকে জানান।
instructions.txt
এই ফাইলটির নামের একটি পাঠ্য ফাইলটি এরকম কিছু দেখবে:[Total number of bots that are competing] [bot1Name] [bot1 command to run] [bot2Name] [bot2 command to run] ...
প্রতিটি বট জন্য একটি ফোল্ডার। এই ফোল্ডারটি আপনার প্রোগ্রামটিকে (এটি কোনও স্ক্রিপ্ট বা বাইনারি হোক) এবং এক টেক্সট ফাইলকে ধরে রাখবে
data.txt
যা আপনার বটটি যা যা চায় পড়তে ও লিখতে পারে।
প্রযুক্তিগত বৈশিষ্ট্য এবং নিয়মের স্পষ্টতা
যে ফটোগুলি এর ফোল্ডারের ভিতরে নয় সেখান থেকে যে কোনও বট পড়তে / লিখতে চেষ্টা করে সে খেলা থেকে লাথি মারবে।
আপনার প্রোগ্রামটি অবশ্যই ইয়োসেমাইট চলমান ম্যাকবুকটিতে চালাতে সক্ষম হবে। বর্তমানে সমর্থিত ভাষা হ'ল পাইথন (২..9.৯ এবং ৩.৪.২), সি / সি ++, অবজেক্টি-সি, পার্ল, রুবি, বাশ, পিএইচপি, জাভা, সি #, জাভাস্ক্রিপ্ট এবং হাস্কেল। আরও অনেক কিছু রয়েছে, তবে এই মুহূর্তে আমি এখনই ভাবতে পারি। সময় বাড়ার সাথে সাথে আরও যুক্ত করব। আপনি যদি কোনও নির্দিষ্ট ভাষায় প্রতিযোগিতা করতে চান তবে আমাকে বার্তা দিন বা মন্তব্য করুন এবং সম্ভব হলে তালিকায় এটি যুক্ত করব add
যদি কোনও বোর্ড জিতে যায় তবে এখনও স্থান রয়েছে তবে আপনি এখনও খোলা জায়গাগুলির কোনওটিতে যেতে পারবেন না।
নোট করুন যে আপনার জমা দেওয়ার কার্যকারী ডিরেক্টরিটি সেই ডিরেক্টরিতে থাকবে যা নিয়ামক এবং অন্যান্য সমস্ত বট ধারণ করে, আপনার বটটি যে ডিরেক্টরিতে থাকে তা নয়।
দয়া করে আপনার নিয়ামক বট কোডটি সহ সঠিক কমান্ডটি সংকলন করতে (যদি প্রযোজ্য হয়) এবং আপনার বট চালানোর জন্য পোস্ট করুন। এর বেশিরভাগটি ওএস এক্স টার্মিনাল থেকে করা হবে যা একটি লিনাক্স টার্মিনালের সাথে মোটামুটি সমান।
বটস অবশ্যই এক সেকেন্ডের অধীনে সম্পূর্ণ করতে হবে। দুর্ভাগ্যক্রমে, আমি কন্ট্রোলার বটটিতে টাইমার যুক্ত করতে যথেষ্ট সক্ষম নই। তবে, আমি নিজেই বটগুলি সময় করব time
ফলাফল!
ঠিক আছে, আমি ঠিক ছিল। আমি মাস্টারবোর্ড পূর্ণ কিনা তা দেখতে কন্ট্রোলার বট চেক করতে ভুলে গেছি। যদি মাস্টারবোর্ডটি পূর্ণ থাকে, তবে প্রতিটি পদক্ষেপ অবৈধ, তবে এটি বটগুলিকে কল করতে থাকে, যার কারণেই সম্ভবত সেখানে অনেকগুলি অবৈধ পদক্ষেপ ছিল। আমি এখন এটি ঠিক আছে। সমস্ত বটগুলির সর্বাধিক বর্তমান সংস্করণ সহ সরকারী ফলাফল এখানে।
Bot 1, goodRandBot, has 1 wins and made 0 illegal moves, for a total of 133 points.
Bot 2, naiveBot, has 3 wins and made 48 illegal moves, for a total of 361 points.
Bot 3, depthBot, has 5 wins and made 0 illegal moves, for a total of 664 points.
Bot 4, middleBot, has 1 wins and made 20 illegal moves, for a total of 114 points.
With 4 bots, This program took 477.471 seconds to finish.
ডিপথ বট হলেন রাজকীয় চ্যাম্পিয়ন! কমপক্ষে, এখনই জন্য।
XXX000---
সংক্রমণ হয়? বা এটি যে 'ও এটি প্রথম জিতেছে তার পরেও কেউ তা পায় না'?