খেলুন কিক দ্য ক্যান!
যদিও মুগি বর্তমান বিজয়ী, যদি কেউ তার মুকুট নিতে পারেন তবে তারা তা করতে উত্সাহিত হবে
ক্যান দ্য কিক একটি বাচ্চাদের খেলা। একজন ডিফেন্ডার এবং একাধিক আক্রমণকারী জড়িত। আজ আর এমন খেলা আর নেই! আপনার কাজটি হ'ল একটি বট লিখুন যা এটি খেলবে, জয়ের জন্য, পাহাড়ের রাজা !
https://en.wikipedia.org/wiki/Kick_the_can
এই গেমটিতে কিছু মূল পার্থক্য রয়েছে। প্রথম মূল পার্থক্যটি হ'ল গেমটি মাল্টিপ্লেয়ার (5v5)। দ্বিতীয় মূল পার্থক্য হ'ল উভয় সেট বট উভয় খনি এবং নিক্ষেপ করা বোমা দিয়ে শত্রু খেলোয়াড়কে হত্যা করতে এবং নির্মূল করতে পারে! বটগুলি পাঁচটি বেশি ব্লকের দূরে কোনও খনি (দূরত্ব নির্বিশেষে) বা খেলোয়াড় দেখতে পাবে না!
ম্যাপটি নীচে একটি গোলকধাঁধা।
এই গোলকধাঁটি প্রক্রিয়াগতভাবে একটি গভীরতা প্রথম পুনরাবৃত্ত ব্যাকট্রাকিং অ্যালগরিদম ব্যবহার করে একটি ধাঁধা তৈরির মাধ্যমে তৈরি করা হয়। এবং তারপরে দেখানো গর্তগুলিতে স্থাপন করুন (পাশাপাশি গোলকধাঁটিকে আরও "অপূর্ণ" করুন The গোলকধাঁধাটি 65x65 ব্লক প্রশস্ত এবং শূন্য সূচীযুক্ত Thus সুতরাং নীল পতাকাটি (ক্যান) 1,1 এবং লাল পতাকাটি (ক্যান) হয় Blue৩,63৩ এ। নীল দলটি ২,২ এবং ৩,৩,৪,৪ এ প্রসারিত হয়েছে। লাল দল ,২,62২ এবং ,১,61১, 60০,60০ ইত্যাদি স্প্যান করেছে। সায়ানের ব্লকগুলি নীল দলের উপরের বট এবং ম্যাজেন্টায় ব্লকগুলি লাল বট হয় গেমটি সর্বদা পাঁচটি বনাম পাঁচটি হয় the দলের প্রতিটি বট আপনার কোড ব্যবহার করবে (তবে অন্যান্য উদাহরণের ভেরিয়েবলগুলি সংরক্ষণ করতে পারে (বা স্থানীয় ফাইলগুলি তৈরি করতে পারে) রাষ্ট্রের ট্র্যাক রাখতে এবং ভূমিকা পৃথক করতে পারে।
গেমপ্লের
আপনি ধূসর দেখতে পারেন হিসাবে খনি স্থাপন করা যেতে পারে। এবং বোমা সর্বোচ্চ চারটি ব্লকের দূরত্বে নিক্ষেপ করা যেতে পারে। এই দেয়াল এবং অন্যান্য খেলোয়াড়দের মাধ্যমে চারটি ব্লক অবধি কেবল আপনার শত্রুদের হত্যা করে enemies প্রতিটি পদক্ষেপের পরে তাদের 40% হয়ে যাওয়ার সম্ভাবনা রয়েছে। সুতরাং তাদের কাছে 1 রেঞ্জের 100% সম্ভাবনা রয়েছে 2% এর 3 টি পরিসরে 36% এবং তিনটি পরিসরে 21.6% একটি খনি স্থাপন বা বোমা নিক্ষেপ করতে একটি দল গোলাগুলি লাগে। এটি 0 থেকে শুরু হয় এবং কমলার বাক্সগুলি সংগ্রহ করে বাড়ানো যায়। মনে রাখবেন যে এই চারটি (4) গোলাগুলি সহজেই কেন্দ্রিক হবে। বটগুলি দুটি লাল এবং দুটি নীল রঙের একটি অ্যারে রেখাযুক্ত থাকে। আইআরআরআরআরআরবিবিবিবিবি। পতাকা গৌড়িংয়ের অনুমতি রয়েছে তবে সতর্ক থাকুন যে পতাকার কাছে থাকা (অর্থাত্ পাঁচটি ব্লকের চেয়ে কম) ফলস্বরূপ হ্রাস পায় এবং কেবল চলন্তকে অনুমতি দেয়। প্রতি তিনটি মোড়। অ্যারেনা প্রতিটি টার্নের জন্য একটি এলোমেলো স্টার্টার বাছাই করে। আই
উদ্দেশ্য
ভুলক্রমে চলাচল সফলভাবে নেভিগেট করতে এবং বিপরীত ক্যানটিকে স্পর্শ করতে গিয়ে নিজের ক্যানটিকে দুর্ঘটনাক্রমে আঘাত না করার জন্য বা খনিতে পদক্ষেপ নেওয়ার জন্য আপনার পাঁচটি বট (প্রত্যেকটির একই শ্রেণীর ফাইল রয়েছে) প্রোগ্রাম করুন।
প্রোগ্রামিং
আখড়া এবং বট এন্ট্রিগুলি বর্তমানে জাভাতে রয়েছে তবে অন্যান্য ভাষার জন্য স্টিডিন / আউট র্যাপার বিদ্যমান।
আঞ্চলিক কোডটি উপলব্ধ করা হবে তবে এখানে সম্পর্কিত বিবরণ।
বট ক্লাস
public class YourUniqueBotName extends Bot{
public YourUniqueBotName(int x , int y, int team){
super(x,y,team);
//optional code
}
public Move move(){//todo implement this method
//it should output a Move();
//A move has two paramaters
//direction is from 0 - 3 as such
// 3
// 2-I-0
// 1
// a direction of 4 or higher means a no-op (i.e stay still)
//And a MoveType. This movetype can be
//MoveType.Throw
//MoveType.Mine
//MoveType.Defuse defuse any mine present in the direction given
//MoveType.Move
}
}
মূল পদ্ধতি উপলব্ধ
নোট করুন যে ডেটা সংশোধন করতে বা অ্যাক্সেস করার জন্য কোনও কৌশল ব্যবহার করার ক্ষেত্রে আপনার সাধারণত অ্যাক্সেস থাকা উচিত নয় এবং এর ফলে অযোগ্যতার ফলস্বরূপ।
Arena.getAmmo()[team];//returns the shared ammo cache of your team
Arena.getMap();//returns an integer[] representing the map. Be careful since all enemies more than 5 blocks away (straight line distance) and all mines are replaced with constant for spaces
//constants for each block type are provided such as Bot.space Bot.wall Bot.mine Bot.redTeam Bot.blueTeam Bot.redFlag Bot.blueFlag
Arena.getAliveBots();//returns the number of bots left
getX();//returns a zero indexed x coordinate you may directly look at (but not change X)
getY();//returns a zero indexed y coordinate (y would work to, but do not change y's value)
//Although some state variables are public please do not cheat by accessing modifying these
স্ট্যান্ডিন / আউট র্যাপার ইন্টারফেস স্পেসিফিকেশন
ইন্টারফেসটি দুটি মোড নিয়ে গঠিত: আরম্ভ এবং চলমান।
ইনিশিয়েশন মোড চলাকালীন স্ট্যান্ডআউটের মাধ্যমে একটি একক আইএনআইটি ফ্রেম প্রেরণ করা হয়। এই ফ্রেমের স্পেসিফিকেশনটি নিম্নরূপ:
INIT
{Team Membership Id}
{Game Map}
TINI
যেখানে: {টিম সদস্যপদ আইডি an একটি একক চরিত্র: আর বা বি বি অর্থ নীল দল, আর এর অর্থ লাল দল।
{গেম ম্যাপ} হ'ল মানচিত্রের এক সারি উপস্থাপন করে এমন একাধিক অক্ষরের সারি সিরিজ। নিম্নলিখিত আসকি অক্ষরগুলি বৈধ: এফ = নীল পতাকা জি = লাল পতাকা ও = উন্মুক্ত স্থান ডাব্লু = প্রাচীর
গেমটি তারপরে প্রতিটি বটকে স্টাডাউটের উপর দিয়ে গেমের ফ্রেমগুলি প্রেরণ করতে এগিয়ে যাবে:
FRAME
{Ammo}
{Alive Bot Count}
{Bot X},{Bot Y}
{Local Map}
EMARF
কোথায়:
Mo অ্যাম্মো digit হল অঙ্কের একটি স্ট্রিং, মান 0 বা ততোধিক হবে {অ্যালাইভ বট কাউন্ট Count অঙ্কের একটি স্ট্রিং, মান 0 বা ততোধিক হবে {বক্স এক্স} হ'ল বটের এক্স কো-অর্ডিনেটের প্রতিনিধিত্ব করে এমন সংখ্যার একটি স্ট্রিং খেলা মানচিত্রে। মান 0 <= এক্স <মানচিত্রের প্রস্থ হবে। {বক্স ওয়াই হ'ল অঙ্কের একটি স্ট্রিং যা গেমের মানচিত্রে বটের Y- সমন্বয়কে উপস্থাপন করে। মান 0 <= Y <মানচিত্রের উচ্চতা হবে। {স্থানীয় মানচিত্র বোটের চারপাশে পুরো মানচিত্রের প্রতিনিধিত্ব করে এমন একাধিক সারি সারি অক্ষরগুলির ক্রম। নিম্নলিখিত আসকি অক্ষরগুলি বৈধ: এফ = নীল পতাকা জি = লাল পতাকা ও = উন্মুক্ত স্থান ডাব্লু = প্রাচীর আর = লাল দল বট বি = নীল দলের বট এম = মাইন এ = গোলাগুলি
কন্ট্রোলারটি আশা করে যে আপনার বট ফর্ম্যাটটিতে একক রেখার প্রতিক্রিয়া আউটপুট করবে (স্টাটআউটে):
{Action},{Direction}
কোথায়:
{অ্যাকশন of এর মধ্যে একটি: মুভ ডিফলিজ মাইন থ্রো
{দিকনির্দেশ 0 এবং 4 সমেত একক অঙ্ক। (দিকনির্দেশের তথ্য আগে দেখুন)
দ্রষ্টব্য: সমস্ত স্ট্রিং Line n লাইন অক্ষরের শেষে দিয়ে সীমিত করা হবে।এটি একটি এলিমিনেশন টুর্নামেন্ট হবে। আমার নমুনা বট ফিলার হিসাবে অংশ নেবে, কিন্তু আমি নিজেকে বিজয়ী করব না। আমার কোনও বটের দ্বারা জয়লাভের ক্ষেত্রে শিরোনামটি দ্বিতীয় স্থানের সদস্যের কাছে যায় এবং এমন একটি বট না পাওয়া পর্যন্ত অব্যাহত থাকবে যা আমার কোনও নয়। প্রতিটি ম্যাচে 11 রাউন্ড কিক ক্যান থাকে। ততক্ষণে কোনও দলই যদি একটি ম্যাচ জিততে না পারে তবে তারা দুজনই বাদ পড়ে। শূন্য নম্বরের স্কোর থাকলে টাই টাই ব্রেকার ম্যাচ খেলবে। টাই থাকলে উভয়ই বাদ পড়ে যায়। পরবর্তী রাউন্ডে আরও বেশি মিল থাকতে পারে। টুর্নামেন্টের সিডিং 7/31/16 (পরিবর্তনের সাধ্যের তারিখ) হিসাবে প্রাপ্ত সংখ্যার উপর ভিত্তি করে তৈরি হবে।
প্রতিটি ম্যাচ 4096 টার্নে চলে। একটি বিজয় একটি পয়েন্ট দেয়। একটি টাই বা ক্ষতি শূন্য পয়েন্ট মঞ্জুরি দেয়। শুভকামনা!
কোডটি দেখার জন্য নির্দ্বিধায় বা এই গিটহাব রেপোতে এটির সমালোচনা করুন।
https://github.com/rjhunjhunwala/BotCTF/blob/master/src/botctf/Arena.java
মনে রাখবেন যে আমার কম্পিউটারে খুব বেশি ভাষার জন্য দোভাষী নেই এবং তাদের কম্পিউটারে সিমুলেশন চালানোর জন্য আমার স্বেচ্ছাসেবীর প্রয়োজন হতে পারে। অথবা আমি ভাষা অনুবাদক ডাউনলোড করতে পারি। আপনার বটগুলি নিশ্চিত করুন।
- যুক্তিসঙ্গত পরিমাণে প্রতিক্রিয়া জানুন (250 এমএস বলুন)
- আমার হোস্ট মেশিনের ক্ষতি করবে না