ভূমিকা
এই গেমটিতে খেলোয়াড়রা তাদের সেনাবাহিনীকে অন্য খেলোয়াড়ের সেনাবাহিনীর সাথে লড়াই করতে, অঞ্চল দখল করতে এবং সর্বশেষ স্থিতিতে পরিণত হয়। প্রতিটি ঘুরে, খেলোয়াড়রা তাদের নিষ্পত্তি করতে ব্যবহার করতে সেনাবাহিনীর একটি বেস নম্বর পান। নির্দিষ্ট অঞ্চলগুলিতে অঞ্চলগুলি ক্যাপচার করার মাধ্যমে খেলোয়াড়রা এই সংখ্যাটি বাড়াতে পারে তাদের পরবর্তী খেলায় সম্ভাব্য সুবিধা দিতে। (এটি মূলত ওয়ারলাইটের সমান )।
সমস্ত বট জাভা, সি, বা সি ++ এ লেখা উচিত (আমি অন্যান্য ভাষাগুলি অন্তর্ভুক্ত করব তবে তাদের জন্য সফ্টওয়্যার বা অভিজ্ঞতা নেই)। আপনার জমা দেওয়ার জন্য কোনও শ্রেণি বাড়ানো প্রয়োজনীয় নয় এবং আপনি ফাংশন, ক্লাস, ইন্টারফেস বা অন্য যা কিছু প্রয়োজন তা তৈরি করতে পারেন এবং স্ট্যান্ডার্ড এপিআইতে কোনও প্যাকেজ বা ক্লাস ব্যবহার করতে পারেন । আপনি যদি কোনও শ্রেণি বা ইন্টারফেস তৈরির পরিকল্পনা করে থাকেন তবে অনুগ্রহ করে কোনও অভ্যন্তর শ্রেণি বা অভ্যন্তরীণ ইন্টারফেস ব্যবহার করার বিষয়টি বিবেচনা করুন।
এই প্রতিযোগিতায় নিয়ন্ত্রক বা অন্যান্য জমাগুলিকে প্রোগ্রামগতভাবে পরিবর্তন করার চেষ্টা করবেন না।
গেমপ্লের
সংক্ষিপ্ত বিবরণ
একটি 10x10 দ্বি-মাত্রিক অ্যারে বোর্ডকে অনুকরণ করবে, প্রতিটি উপাদান / সেল একটি "অঞ্চল" প্রতিনিধিত্ব করবে। 20 রাউন্ড এবং প্রতি রাউন্ডে 1000 টার্ন থাকবে। প্রতিটি ঘুরে, খেলোয়াড়রা প্রথমে তাদের যে কোনও অঞ্চলে তাদের থাকা সেনাবাহিনী মোতায়েন করবে এবং তারপরে তাদের সৈন্যদের সেনাবাহিনী আক্রমণ করে তাদের প্রতিপক্ষের অঞ্চল দখলের প্রয়াসে তাদের বাহিনীকে নিকটবর্তী অঞ্চলে নিয়ে যাওয়ার সুযোগ দেওয়া হবে। খেলোয়াড়দের অবশ্যই তাদের সমস্ত বাহিনী মোতায়েন করতে হবে , তবে ইচ্ছা করলে তাদের এগুলি স্থানান্তর করতে হবে না।
আক্রমণ / স্থানান্তর সেনা
খেলোয়াড় যদি ইচ্ছুক হয় তবে সে একটি অঞ্চল থেকে আটটি পাশের যে কোনও একটিতে সেনা পাঠাতে পারে। বোর্ড "চারপাশে মোড়ানো", অর্থাত্ কোনও খেলোয়াড়ের অঞ্চল যদি একদিকে থাকে তবে এর থেকে সেনাবাহিনী অন্য পাশের একটি সংলগ্ন অঞ্চলে স্থানান্তরিত হতে পারে। কোনও অঞ্চল থেকে সেনাবাহিনী সরানোর সময়, সেই অঞ্চলে এখনও কমপক্ষে একটি সেনা থাকা উচিত। উদাহরণস্বরূপ, যদি কোনও অঞ্চলে পাঁচটি সেনাবাহিনী থাকে তবে চারজনের বেশি কোনও আলাদা অঞ্চলে স্থানান্তরিত হতে পারে না; যদি কোনও অঞ্চলে একটি থাকে, তবে সেনাবাহিনী চলাচল করতে পারে না।
যদি কোনও খেলোয়াড় n
তাদের মালিকানাধীন এক অঞ্চল থেকে অন্য অঞ্চলে সেনা প্রেরণ করে তবে সেই অঞ্চলটি n
সেনা গ্রহণ করবে ।
বলুন যে কোনও খেলোয়াড় n
তার / তার অঞ্চল থেকে o
সেনাবাহিনী সহ বিরোধী অঞ্চলে সেনা প্রেরণ করে। নিকটতম পূর্ণসংখ্যার সাথে গোল করে o
হ্রাস পাবে n * .6
; তবে একই সময়ে নিকটতম পূর্ণসংখ্যাকে গোল করে n
হ্রাস পাবে o * .7
। বিরোধী অঞ্চলটি দখল করা হয়েছে কিনা তা নিয়ে নিম্নলিখিত বিধিগুলি প্রয়োগ করা হবে:
- যদি
o
শূন্যে পৌঁছায় এবংn
0 এর চেয়ে বেশি হয়, প্লেয়ারটি অঞ্চলটি গ্রহণ করবে, যারn
মধ্যে সেনাবাহিনী থাকবে । - যদি উভয়
n
এবংo
পরিণত শূন্য,o
স্বয়ংক্রিয়ভাবে 1 সেট করা হবে এবং অঞ্চল দখল করা হবে না। - যদি
o
0 এর বেশি হয় তবে প্লেয়ারের অঞ্চলে সেনাবাহিনীর সংখ্যা বৃদ্ধি পাবেn
এবং বিরোধী অঞ্চলটি দখল করা হবে না।
বোনাসেস
অঞ্চলগুলির একটি গ্রুপকে বোনাস উপস্থাপন করার জন্য বেছে নেওয়া হবে; যদি কোনও খেলোয়াড় গোষ্ঠীর অংশভুক্ত সমস্ত অঞ্চলগুলির মালিক হন, তবে সেই খেলোয়াড় প্রতি টার্নে অতিরিক্ত পরিমাণ সেনাবাহিনী পাবে।
বিভিন্ন খেলোয়াড় এবং মানগুলি বোঝাতে বোনাসের আইডি নম্বর রয়েছে যা কোনও খেলোয়াড় পেতে পারে এমন অতিরিক্ত সেনাবাহিনীর প্রতিনিধিত্ব করে। প্রতিটি রাউন্ডে, একটি বোনাসের মান 5 এবং 10 এর মধ্যে একটি এলোমেলো সংখ্যা হবে, সমেত এবং দশটি বোনাস মাঠে উপলব্ধ হবে, প্রতিটি বোনাসের অন্তর্ভুক্ত দশটি অঞ্চল থাকবে।
উদাহরণস্বরূপ, যদি কোনও খেলোয়াড় প্রতি ঘুরে ৫ টি আর্মি পায় তবে 8 টির মান দিয়ে বোনাস তৈরির সমস্ত অঞ্চলের মালিক হয়ে থাকে, খেলোয়াড় পরবর্তী বার এবং পরবর্তী টার্নগুলি 13 সেনাবাহিনী পাবে। তবে, খেলোয়াড় যদি বোনাস তৈরি করে এমন এক বা একাধিক অঞ্চল হারিয়ে ফেলে, তবে তিনি প্রতি ঘুরে মাত্র ৫ টি আর্মি পাবেন।
ইনপুট আউটপুট
আপনার প্রোগ্রামটি কমান্ড-লাইন আর্গুমেন্টগুলির মাধ্যমে ইনপুট নেওয়া উচিত, এতে নিম্নলিখিত ফর্ম্যাট থাকবে:
[id] [armies] [territories (yours and all adjacent ones)] [bonuses] ["X" (if first turn)]
id
এবংarmies
উভয়ই সম্পূর্ণ সংখ্যা।id
আপনার আইডি এবংarmies
এটি আপনার অঞ্চলগুলিতে মোতায়েনের জন্য প্রয়োজনীয় সেনাবাহিনীর সংখ্যা। আপনাকে প্রদত্ত সমস্ত সেনাবাহিনী অবশ্যই মোতায়েন করতে হবে - আরও কমবে না।territories
আপনার মালিকানাধীন অঞ্চলগুলি এবং আপনার সংলগ্ন অঞ্চলগুলির মালিকানাধীন অঞ্চলগুলি প্রতিনিধিত্ব করে এমন একটি স্ট্রিং is স্ট্রিংগুলি এই বিন্যাসে রয়েছে:[row],[col],[bonus id],[player id],[armies]
row
এবংcol
এই অঞ্চলটির বোর্ডের সারি এবং কলামটি নির্দেশ করে,bonus id
এই অঞ্চলটি যে বোনাসের একটি অংশ,player id
সেই অঞ্চলটির মালিক খেলোয়াড়ের আইডি এবং অঞ্চলটিতেarmies
থাকা সেনাবাহিনীর সংখ্যা। এই সমস্ত সংখ্যা।bonuses
বোর্ডে বোনাস উপস্থাপন করে এমন একটি স্ট্রিং যা আপনি নিতে পারেন। স্ট্রিংগুলি এই বিন্যাসে রয়েছে:[id],[armies],[territories left]
id
এই বোনাসের আইডিarmies
হ'ল, এই বোনাসের সমস্ত অঞ্চলের মালিকানা পেয়ে আপনিterritories left
যে অতিরিক্ত সেনাবাহিনী গ্রহণ করতে পারেন, এবং অতিরিক্ত বৌদ্ধিক সেনাবাহিনী গ্রহণের জন্য আপনাকে যে বোনাসের ক্যাপচার করতে হবে সেই সংখ্যা।
দয়া করে মনে রাখবেন যে পঞ্চম আর্গুমেন্ট, একটি "এক্স" প্রদর্শিত হবে যদি এটি কোনও রাউন্ডের প্রথম পালা হয় এবং সুবিধার কারণে ব্যবহার করা যায়।
প্রথম পালা ইনপুট উদাহরণ:
0 5 "7,6,7,-1,2 8,7,7,-1,2 7,7,7,0,5 6,6,7,-1,2 8,8,9,-1,2 6,7,7,-1,2 7,8,9,-1,2 6,8,9,-1,2 8,6,7,-1,2" "0,5,10 1,5,10 2,9,10 3,9,10 4,9,10 5,5,10 6,5,10 7,6,9 8,7,10 9,7,10" X
আপনার প্রোগ্রামকে অবশ্যই একটি নতুন লাইনের দ্বারা পৃথক দুটি স্ট্রিং আউটপুট দিতে হবে, এর মধ্যে প্রথমটি যে অঞ্চলগুলিতে আপনি সেনা যোগ করতে চান সেগুলির সারি এবং কলামগুলি এবং আপনি এতে যোগ করতে চান সেনাবাহিনীর সংখ্যা তালিকাভুক্ত করে এবং এর দ্বিতীয়টি সারিগুলি তালিকাভুক্ত করে এবং আপনি যে সমস্ত অঞ্চলে সেনা প্রেরণ করতে চান এবং যে সেনাবাহিনী আপনি প্রেরণ করতে চান তার কলামগুলি। আউটপুটটিতে পেছনের স্থান থাকতে পারে।
আপনি যে অঞ্চলটিতে সেনাবাহিনী যুক্ত করতে চান তা নির্দিষ্ট করতে, আপনার আউটপুটটি এই ফর্ম্যাটটি অনুসরণ করবে:
[row],[col],[armies]
row
এবং col
বোর্ডের সারি এবং কলামটি যেখানে আপনি সেনা যুক্ত করতে চান সেই অঞ্চল এবং আপনি সেই অঞ্চলে সংযুক্ত সেনাবাহিনীর armies
সংখ্যা।
আপনি কোন অঞ্চলগুলিতে সেনা প্রেরণ করতে চান তা নির্দিষ্ট করতে, আপনার আউটপুটটি এই ফর্ম্যাটটি অনুসরণ করবে:
[srow],[scol],[drow],[dcol],[armies]
srow
এবং scol
সারি এবং বোর্ডের কলাম যেখানে অঞ্চল আপনি পরিবহণ সৈন্যবাহিনী করতে চান থেকে এসেছ, drow
এবং dcol
সারি এবং বোর্ডের কলাম যেখানে অঞ্চল আপনি সৈন্যবাহিনী পাঠানোর জন্য করতে চান, এবং armies
আপনি পাঠাতে চান সৈন্যবাহিনী সংখ্যা । মনে রাখবেন যে আপনি যদি কোনও সেনাবাহিনী স্থানান্তর করতে না চান তবে আপনার প্রোগ্রামের একটি স্থান মুদ্রণ করা উচিত।
একটি নমুনা আউটপুট এটি হতে পারে:
0,0,5
0,0,0,1,3 0,0,1,0,3 0,0,1,1,3
এই ক্ষেত্রে, খেলোয়াড় 0,0 এ পাঁচটি সেনা মোতায়েন করে এবং তিনটি বাহিনী 0,0 থেকে 0,1 এ নিয়ে যায়; তিনটি 0,0 থেকে 1,0; এবং তিনটি 0,0 থেকে 1,1 এ।
রাউন্ড এবং টার্নস
প্রতিটি রাউন্ডের শুরুতে, সমস্ত খেলোয়াড়কে বোর্ডের একটি এলোমেলো স্পটে অবস্থিত একটি অঞ্চল দেওয়া হবে (দুই বা ততোধিক খেলোয়াড় একে অপরের পাশে শুরু করা সম্ভব)। যে অঞ্চলগুলি বোনাস দেয় তারাও পরিবর্তিত হতে পারে।
প্রথম দিকে, প্রতিটি খেলোয়াড়ের পাঁচটি আর্মি সমন্বিত একটি অঞ্চল থাকবে এবং তারা ব্যবহার করতে পারে এমন পাঁচটি সেনা পাবে (এটি ন্যূনতম যে তারা গ্রহণ করতে পারে)। অন্যান্য সমস্ত অঞ্চল হ'ল এনপিসিগুলির মালিকানাধীন যারা আক্রমণ করে না; এর প্রত্যেকটিতে দুটি সেনা থাকে এবং এর আইডি থাকে -1
।
প্রতিটি টার্ন আপনার প্রোগ্রাম চালানো হবে, এবং আউটপুট উভয় টুকরা সংগ্রহ করা হবে। কন্ট্রোলার আউটপুট প্রথম টুকরা প্রয়োগ করবে, অবিলম্বে অঞ্চলগুলিতে সেনা যোগ করবে; যাইহোক, সমস্ত প্লেয়ার তাদের দ্বিতীয় আউটপুট, তাদের আক্রমণ / স্থানান্তর কমান্ড না দেওয়া পর্যন্ত নিয়ামক অপেক্ষা করবেন। এটি সম্পূর্ণ হয়ে গেলে কমান্ডগুলি এলোমেলোভাবে বদলে ফেলা হবে এবং তারপরে কার্যকর করা হবে। আপনার প্রোগ্রামটি অবশ্যই আউটপুট সরবরাহ করতে হবে এবং এক সেকেন্ড বা তারও কম সময়ে পাল্টাতে অংশ নিতে পারে।
স্কোরিং এবং জিতেছে
প্রদত্ত যে কোনও রাউন্ডের জন্য, যদি একজন খেলোয়াড় থেকে যায়, তবে সেই খেলোয়াড় 100 পয়েন্ট অর্জন করবে। অন্যথায়, যদি 1000 টার্ন পাস করে এবং এখনও একাধিক খেলোয়াড় থাকে তবে 100 পয়েন্টগুলি সমানভাবে ভাগ করা বাকি খেলোয়াড়দের মধ্যে (অর্থাৎ 3 জন খেলোয়াড়ের প্রতিদান 33 পয়েন্ট হবে) even ২০ রাউন্ড শেষে যে প্লেয়ারের সর্বাধিক পয়েন্ট রয়েছে তা জিতবে।
জমা
আপনার পোস্টে বটের জন্য একটি নাম, যে ভাষায় এটি লেখা আছে, এর একটি সংক্ষিপ্ত বিবরণ এবং এটি চালাতে ব্যবহৃত কোড অন্তর্ভুক্ত করা উচিত। একটি নমুনা বট এখানে উদাহরণ হিসাবে পোস্ট করা হবে এবং প্রতিযোগিতায় ব্যবহৃত হবে। আপনি নিজের ইচ্ছামত জমা দিতে পারেন।
অন্যান্য
আপনার প্রোগ্রামটি ফাইল তৈরি করতে, লিখতে এবং পড়তে পারে যতক্ষণ না ফাইলটির নাম আপনার জমা দেওয়ার জন্য ব্যবহার করা নামের মতোই থাকে। এই ফাইলগুলি টুর্নামেন্ট শুরুর আগে মুছে ফেলা হবে তবে রাউন্ডের মধ্যে নয়।
আপনার পালা এড়ানো হবে যদি:
- আপনি নির্মূল (কোন অঞ্চল নেই);
- আপনার প্রোগ্রামটি কিছু মুদ্রণ করে না;
- আপনার প্রোগ্রাম এক সেকেন্ডের মধ্যে শেষ হবে না;
- আপনি আপনার অঞ্চলগুলিতে খুব কম সেনাবাহিনী মোতায়েন করেছেন (যে অঞ্চলগুলিতে আপনার মালিকানা নেই সেগুলিতে সেনা মোতায়েন করা এটির পক্ষে গণ্য হবে) বা অনেকগুলি আর্মি; অথবা
- আপনার আউটপুট কন্ট্রোলার একটি ব্যতিক্রম নিক্ষেপ কারণ।
আপনার আক্রমণ / স্থানান্তর কমান্ড কার্যকর করা হবে না যদি:
- আপনার প্রোগ্রাম সঠিক আউটপুট দেয় না;
- আপনি যে অঞ্চলটি সেনাবাহিনী থেকে সরানোর জন্য বেছে নিয়েছেন তা আপনার নয়;
- আপনি আপনার অঞ্চল থেকে শূন্য বা নেতিবাচক সংখ্যক সেনা সরিয়ে নিয়েছেন;
- আপনি আপনার অঞ্চল থেকে অনেক সেনাবাহিনী সরানো; অথবা
- আপনি সেনা প্রেরণের জন্য একটি অঞ্চল বেছে নিয়েছেন যা থেকে আপনি সেনাবাহিনী সরানোর জন্য যে অঞ্চলটি বেছে নিয়েছেন তার সংলগ্ন নয়।
আপনি নিয়ামক এবং একটি নমুনা বট জানতে পারেন এখানে । বটটি খেলায় অংশ নেবে, তবে এটি সম্ভবত কোনও রাউন্ড জিতবে না (যদি না এটি সত্যিই ভাগ্যবান)।
ফলাফল
এতে একটি বাগ ফিক্স চাপানোর পরে নিয়ামক চালানো, ওয়েসওয়ার্ম গণনা করা এক শক্তি হিসাবে অবিরত রয়েছে। এটির বিপক্ষে সুযোগ পাওয়ার জন্য দুর্দান্ত কৌশল সহ এটি একটি বট নেবে।
As of 25-08-15, 04:40 UTC
1: WeSwarm 1420
2: java Player 120
java LandGrab 120
java Hermit 120
java Castler 120
6: java RandomHalver 80
লক্ষ্য করুন!
জেডএসডাব্লু দ্বারা সৃষ্ট একটি অঞ্চল যা গেমের সম্ভাব্য সুবিধা পাওয়ার জন্য অন্যদের পরে তাদের সেনাবাহিনী মোতায়েনের কারণ হয়ে গেছে fixed একটি সম্পাদনা নিয়ামকের দিকে ঠেলে দেওয়া হয়েছিল, সুতরাং দয়া করে উপরের লিঙ্কটি ব্যবহার করে পাওয়া বিদ্যমান সংস্করণটি ব্যবহার করুন।