অসমৰ কোটৰ বিড়াল ধর
আপডেট : কন্ট্রোলআরজভা ব্যতিক্রম (কেবল ত্রুটিগুলি) ধরেনি বলে গিস্ট-ফাইলগুলি আপডেট করা হয়েছে (নতুন সাবমিসন সহ)। এটি এখন ত্রুটি এবং ব্যতিক্রমগুলি ধরে এবং এগুলি মুদ্রণ করে।
এই চ্যালেঞ্জটি দুটি থ্রেড নিয়ে গঠিত, এটি ক্যাচার থ্রেড, বিড়ালের থ্রেডটি এখানে পাওয়া যাবে ।
নিয়ামকটি এখানে ডাউনলোড করা যায় ।
এটি একটি অপ্রতিসম KOTH হয়: প্রতিটি জমা হয় একটি হল বিড়াল বা পাখী । প্রতিটি বিড়াল এবং একটি ক্যাচারের প্রতিটি জুটির মধ্যে গেমস রয়েছে। বিড়াল এবং ক্যাচারদের পৃথক র্যাঙ্কিং রয়েছে।
ক্যাচার
ষড়ভুজ গ্রিডে একটি বিড়াল রয়েছে। আপনার কাজটি যত তাড়াতাড়ি সম্ভব এটি ধরা। প্রতি মুহুর্তে, আপনি বিড়ালটিকে সেখানে যেতে না দেওয়ার জন্য একটি গ্রিড সেলে একটি জলের বালতি রাখতে পারেন। তবে বিড়ালটি (সম্ভবত) সেই বোবা নয় এবং যখনই আপনি একটি বালতি রাখবেন, বিড়ালটি অন্য গ্রিড কোষে চলে যাবে। গ্রিড ষড়ভুজ হিসাবে, বিড়ালটি 6 টি ভিন্ন দিকে যেতে পারে। আপনার লক্ষ্য হ'ল বিড়ালটিকে জলের বালতি দিয়ে ঘিরে দেওয়া, তত দ্রুততর।
বিড়াল
আপনি জানেন যে ক্যাচার আপনার চারপাশে জলের বালতি রেখে আপনাকে ধরতে চায়। অবশ্যই আপনি এড়াতে চেষ্টা করুন, তবে আপনি যেমন একটি অলস বিড়াল (বিড়ালরা হলেন) আপনি ঠিক সেই সময় একটি পদক্ষেপ নিয়েছিলেন। এর অর্থ আপনি একই স্থানে থাকতে পারবেন না, তবে আপনাকে আশেপাশের ছয়টি দাগের একটিতে যেতে হবে। আপনি যখনই দেখবেন যে ক্যাচার একটি নতুন জলের বালতি রেখেছিল আপনি অন্য কোষে যান। অবশ্যই আপনি যতটা সম্ভব এড়ানোর চেষ্টা করুন।
গ্রিড
গ্রিডটি ষড়্ভুজাকৃতির, তবে আমাদের ষড়্ভুজাকৃতির ডেটা কাঠামো নেই বলে আমরা একটি 11 x 11
বর্গক্ষেত্র 2 ডি অ্যারে নিয়েছি এবং ষড়ভুজীয় 'আচরণ' নকল করি যা বিড়ালটি কেবল 6 দিকের দিকে যেতে পারে:
টপোলজিটি টোরয়েডাল, এর অর্থ যদি আপনি অ্যারের বাইরে 'কোষে' কোষে যান তবে আপনাকে কেবল অ্যারের অন্য পাশের সংশ্লিষ্ট ঘরে স্থানান্তরিত করা হবে।
খেলা
বিড়াল গ্রিডে দেওয়া অবস্থান থেকে শুরু হয়। ক্যাচারারটি প্রথম পদক্ষেপটি করতে পারে, তারপরে বিড়ালটিকে ধরা না দেওয়া পর্যন্ত বিড়াল এবং তার ক্যাচার বিকল্প চলাচল করে। পদক্ষেপের সংখ্যাটি সেই গেমের স্কোর। বিড়াল যতটা সম্ভব স্কোর পাওয়ার চেষ্টা করে, ক্যাচারটি যতটা সম্ভব কম স্কোর পাওয়ার চেষ্টা করে। আপনি যে সমস্ত গেমসে অংশ নিয়েছেন তার তুলনায় গড় পরিমাণ হ'ল আপনার জমা দেওয়ার স্কোর। দুটি পৃথক র্যাঙ্কিং রয়েছে, একটি বিড়ালের জন্য, একটি ক্যাচারদের জন্য।
নিয়ামক
প্রদত্ত নিয়ামকটি জাভাতে লেখা। ক্যাচার বা বিড়াল হিসাবে আপনার প্রত্যেকে জাভা ক্লাসটি সম্পূর্ণরূপে প্রয়োগ করতে হবে (ইতিমধ্যে কিছু প্রাথমিক উদাহরণ রয়েছে) এবং এটি players
প্যাকেজে রাখুন (এবং কন্ট্রোলার ক্লাসে বিড়াল / ক্যাচারগুলির তালিকা আপডেট করুন) তবে আপনি লিখতেও পারেন শ্রেণীর মধ্যে অতিরিক্ত ফাংশন। কন্ট্রোলার প্রতিটি সাধারণ বিড়াল / ক্যাচার ক্লাসের দুটি কাজের উদাহরণ সহ আসে।
ক্ষেত্রটি একটি 11 x 11
2D- int
অ্যারে যা ঘরের বর্তমান রাজ্যের মানগুলি সঞ্চয় করে। যদি কোনও ঘর খালি থাকে তবে এর মান থাকতে পারে 0
, যদি একটি বিড়াল থাকে তবে এর মান থাকে -1
এবং যদি বালতি থাকে তবে একটি থাকে 1
।
আপনি ব্যবহার করতে পারেন এমন কয়েকটি প্রদত্ত ফাংশন রয়েছে: isValidMove()
/ isValidPosition()
আপনার পদক্ষেপ (বিড়াল) / অবস্থান (ক্যাচার) বৈধ কিনা তা যাচাই করার জন্য।
প্রতিবার এটি আপনার পালা, আপনার ফাংশন takeTurn()
বলা হয়। যুক্তিটিতে বর্তমান গ্রিডের অনুলিপি রয়েছে যার একটিতে read(i,j)
ঘর পড়ার মতো পদ্ধতি রয়েছে (i,j)
, পাশাপাশি isValidMove()/ isValidPosition()
এটি আপনার উত্তরের বৈধতা পরীক্ষা করে। এটি টেরয়েডাল টপোলজির মোড়কেও পরিচালনা করে, এর অর্থ গ্রিডটি কেবলমাত্র 11 x 11 হলেও আপনি এখনও সেলটিতে প্রবেশ করতে পারবেন (-5,13)।
পদ্ধতিটি int
দুটি উপাদানের একটি অ্যারে ফিরিয়ে আনবে, যা সম্ভাব্য পদক্ষেপের প্রতিনিধিত্ব করে। বিড়ালদের জন্য এগুলি {-1,1},{0,1},{-1,0},{1,0},{0,-1},{1,-1}
যা বিড়ালটি কোথায় যেতে চায় তার তুলনামূলক অবস্থানকে প্রতিনিধিত্ব করে এবং ক্যাচাররা যেখানে তারা বালতি রাখতে চায় তার নিখুঁত স্থানাঙ্কগুলি ফিরিয়ে দেয় {i,j}
।
যদি আপনার পদ্ধতিটি একটি অবৈধ পদক্ষেপ উত্পন্ন করে, আপনার জমাটি অযোগ্য ঘোষণা করা হবে। পদক্ষেপটি অবৈধ হিসাবে বিবেচিত হবে, যদি আপনার গন্তব্যটিতে ইতিমধ্যে একটি বালতি থাকে বা সরানোর অনুমতি নেই / গন্তব্য ইতিমধ্যে দখল করা হয়েছে (বিড়াল হিসাবে), বা ইতিমধ্যে যদি বালতি / বিড়াল (ক্যাচার হিসাবে) থাকে তবে। আপনি প্রদত্ত ফাংশনগুলির সাথে আগে এটি পরীক্ষা করতে পারেন।
আপনার জমা দেওয়ার পক্ষে যুক্তিসঙ্গত দ্রুত কাজ করা উচিত। যদি আপনার পদক্ষেপটি প্রতিটি পদক্ষেপের জন্য 200 মিটারের বেশি সময় নেয় তবে এটিও অযোগ্য ঘোষণা করা হবে। (সম্ভবতঃ অনেক কম ...)
প্রোগ্রামগুলি ধাপগুলির মধ্যে তথ্য সংরক্ষণের অনুমতিপ্রাপ্ত।
জমা
- আপনি চান যতগুলি জমা দিতে পারেন।
- আপনি ইতিমধ্যে জমা দেওয়া জমাগুলি উল্লেখযোগ্যভাবে পরিবর্তন করবেন না দয়া করে।
- প্রতিটি উত্তর জমা দিন দয়া করে একটি নতুন উত্তরে।
- প্রতিটি জমা দেওয়ার পক্ষে এটির অনন্য নামটি থাকতে হবে।
- জমা দেওয়ার ক্ষেত্রে আপনার শ্রেণীর কোড এবং সেই সাথে একটি বিবরণ থাকতে হবে যা আমাদের জমা দেয় কীভাবে আমাদের জানায় tells
<!-- language: lang-java -->
স্বয়ংক্রিয় সিনট্যাক্স হাইলাইট করার জন্য আপনি আপনার সোর্সকোডের জন্য লাইনটি লিখতে পারেন ।
স্কোরিং
সমস্ত বিড়াল একই সংখ্যক বার সমস্ত ক্যাচারদের বিরুদ্ধে প্রতিদ্বন্দ্বিতা করবে । আমি বর্তমান স্কোরগুলি ঘন ঘন আপডেট করার চেষ্টা করব, ক্রিয়াকলাপ হ্রাস পেয়ে বিজয়ীরা নির্ধারিত হবে।
এই চ্যালেঞ্জটি এই পুরানো ফ্ল্যাশ গেম দ্বারা অনুপ্রাণিত
পরীক্ষামূলকভাবে কিছু গঠনমূলক মতামত দেওয়ার জন্য @ ফিলিপটপিকে ধন্যবাদ জানাই।
বর্তমান স্কোর (প্রতি জোড়া 100 গেমস)
Name Score Rank Author
RandCatcher 191674 8 flawr
StupidFill 214246 9 flawr
Achilles 76820 6 The E
Agamemnon 74844 5 The E
CloseCatcher 54920 4 randomra
ForwordCatcher 94246 7 MegaTom
Dijkstra 46500 2 TheNumberOne
HexCatcher 48832 3 randomra
ChoiceCatcher 43828 1 randomra
RandCat 77928 7 flawr
StupidRightCat 81794 6 flawr
SpiralCat 93868 5 CoolGuy
StraightCat 82452 9 CoolGuy
FreeCat 106304 3 randomra
RabidCat 77770 8 cain
Dijkstra's Cat 114670 1 TheNumberOne
MaxCat 97768 4 Manu
ChoiceCat 113356 2 randomra
PRINT_STEPS = true
ফাইলের আরও বিশদ সেটিংস সেট করতে হবে এমন নিয়ামক শুরু করার সময় MyFrame.java
)। তারপরে আমি এটি লিসেক্যাপ দিয়ে রেকর্ড করেছি এবং এটি জিআইএমপি-র সাথে সম্পাদনা করেছি । আপনার যদি আরও প্রশ্ন থাকে তবে জিজ্ঞাসা করুন!