প্লট : জিমি নিখোঁজ; আমাদের তাকে খুঁজে বের করতে হবে। আমাদের বিচ্ছেদ হওয়া উচিত।
প্লট টুইস্ট : জিমি ইতিমধ্যে মারা গেছে।
তবে, আমাদের castালাই এটি জানেন না, সুতরাং তাদের যে কোনও উপায়ে পুরো অঞ্চলটি অনুসন্ধান করা দরকার। এখানে একটি এন কলাম রয়েছে x এম সারি (1 <= এম, এন <= 256) ঘরগুলির গ্রিড, হয় প্রারম্ভিক পয়েন্টের জন্য "এস" হিসাবে চিহ্নিত, "" " খোলা জায়গার জন্য, বা "#" বাধার জন্য এই মানচিত্র ।
এখানে 0 <= পি <= 26 কস্টার , 0 <= কি <= 26 অতিরিক্ত এবং 1 তারা রয়েছে । সকলেই প্রাথমিকভাবে এস চিহ্নিত চিহ্নিত কক্ষে রয়েছেন
নিয়ম
প্রতিটি ব্যক্তির নীচে দেখানো দর্শন ব্যাসার্ধ আছে:
...
.....
..@..
.....
...
তারাটিকে "@" দ্বারা চিহ্নিত করা হয়, মূলধনী অক্ষরের দ্বারা কস্টারগুলি "এ" দিয়ে শুরু হয় এবং ছোট হাতের অক্ষর দ্বারা অতিরিক্তগুলি "এ" দিয়ে শুরু করা হয়। প্রাথমিকভাবে, প্রারম্ভিক বিন্দুর চারপাশে দর্শনীয় ব্যাসার্ধটি ইতিমধ্যে অনুসন্ধান হিসাবে চিহ্নিত করা হয়েছে। এটি যদি মানচিত্রের পুরো উন্মুক্ত স্থান গঠন করে, খেলাটি শেষ হয়। প্রতিটি বার, নিম্নলিখিত ক্রমে :
- প্রতিটি ব্যক্তি একই সাথে একটি রাজা সরানো (হয় স্থির দাঁড়িয়ে, বা 8 প্রতিবেশী কোষের একটিতে স্থানান্তরিত) করে।
- প্রতিটি ব্যক্তির চারপাশে দর্শনীয় ব্যাসার্ধের সমস্ত কক্ষ অনুসন্ধান করা হিসাবে গণনা করা হয়।
- একজন কোস্টার যদি অন্য কাউকে দেখতে না পান তবে তিনি মারা যান। অতিরিক্ত যদি কোনও দামি, তারা বা কমপক্ষে 2 জন অতিরিক্ত দেখতে না পায় তবে সে মারা যায়। এগুলি একই সাথে ঘটে - অর্থাৎ, একক পালনে মৃত্যুর কোনও চেইন প্রতিক্রিয়া হতে পারে না; উপরের শর্তগুলি পরীক্ষা করা হয়, এবং যে মারা যেতে পারে সে প্রত্যেকে একবারে মারা যায়।
- যদি মানচিত্রে সমস্ত খোলা জায়গা অনুসন্ধান করা হয় তবে অনুসন্ধান শেষ হয়েছে।
নোট
একাধিক ব্যক্তি যে কোনও সময়ে একই স্কোয়ারে থাকতে পারে এবং এই লোকেরা একে অপরকে দেখতে পারে।
বাধা কখনও দৃষ্টিতে বাধা দেয় না, কেবল চলাফেরা করে; লোকেরা একে অপরকে দেখতে পাবে, এর ... লাভা?
মানচিত্রের খোলা জায়গাগুলি কিং পদক্ষেপ দ্বারা সংযুক্ত হওয়ার গ্যারান্টিযুক্ত।
প্রাথমিক "এস "টিকে কোনও বাধা না দিয়ে উন্মুক্ত স্থান হিসাবে বিবেচনা করা হয়।
যে কোনও রাজা খোলা জায়গাতে অবতরণ করে তা বৈধ। উদাহরণস্বরূপ, নিম্নলিখিত পদক্ষেপ আইনী:
.... ....
.@#. ---> ..#.
.#.. .#@.
.... ....
ইনপুট
ইনপুটটি ফর্ম্যাটে থাকবে
N M p q
[N cols x M rows grid with characters ".", "#", and "S"]
নমুনা ইনপুট:
6 5 0 0
......
......
..S...
......
......
এবং
9 9 1 1
S.......#
.......##
......##.
..#####..
...##....
...##....
...#.....
....#..#.
.........
পি এবং কিউ যথাক্রমে কস্টার এবং অতিরিক্তগুলির সংখ্যা।
আউটপুট
প্রতিটি আবর্তনের জন্য আউটপুটটি হওয়া উচিত, নির্দেশিত নির্দেশাবলী সহ প্রতিটি চলনের জন্য চালানো উচিত
789
456
123
পদক্ষেপের ক্রমটি বিবেচনা করে না, কারণ এগুলি সমস্ত একই সাথে কার্যকর করা হয়েছিল। কোনও ব্যক্তির পদক্ষেপের তালিকা না দেওয়া ভাল, এবং তাকে দিকনির্দেশনা 5 এর সমান 5. চলনগুলি নিম্নলিখিত বিন্যাসে তালিকাবদ্ধ করা উচিত:
@9 A2 a2 B7.
"।" একটি পালা জন্য আপনার পদক্ষেপের শেষ নির্দেশ করে।
মানচিত্রটি অনুসন্ধানের পরে, আউটপুটের চূড়ান্ত লাইনটি তিনটি পূর্ণসংখ্যার হওয়া উচিত, স্পেস দ্বারা পৃথক করে: বোর্ডটি সন্ধান করা শেষ করার জন্য আপনাকে যতটা ঘুরেছে, তার সংখ্যা, জীবনযাত্রার সংখ্যা এবং জীবিত অতিরিক্তের সংখ্যা। প্রথম উদাহরণ ইনপুট জন্য
6 5 0 0
......
......
..S...
......
......
নিম্নলিখিতটি বৈধ আউটপুট:
@4.
@6.
@6.
@6.
4 0 0
একটি চূড়ান্ত নোট: তারা মারা যাবে না এবং মানচিত্রে উন্মুক্ত স্থানটি সংযুক্ত হওয়ার গ্যারান্টিযুক্ত, সুতরাং অনুসন্ধান সর্বদা শেষ পর্যন্ত সফল হবে।
স্কোরিং
আপনার স্কোরটি বেঞ্চমার্ক পরীক্ষার সেটগুলিতে নেওয়া মোট মোট সংখ্যা ; আপনার উত্তর সহ আপনার নিজের পরীক্ষার কেস জমা দিতে স্বাগতম welcome বেঞ্চমার্ক সেটের উপরে থাকা লাইভ কস্টারের সংখ্যার যোগফল টাই-ব্রেকার হিসাবে ব্যবহৃত হবে, এবং এখনও যদি একটি টাই থাকে, তবে জীবিত অতিরিক্তগুলির সংখ্যার যোগফল ব্যবহৃত হবে।
পরীক্ষা সেট এবং নিয়ামক
বর্তমানে, 5 টি মানচিত্র https://github.com/Tudwell/HorrorMovieSearchParty/ এ অনলাইনে রয়েছে । যে কোনও উত্তর জমা দেওয়ার পরেও একটি পরীক্ষার মামলা জমা দিতে পারে, যা আমি যে কোনও কারণে প্রত্যাখ্যান করার অধিকার সংরক্ষণ করি (যদি আমি কোনও কারণে আপনার মানচিত্রটি প্রত্যাখ্যান করি তবে আপনি অন্যটি জমা দিতে পারেন)। এগুলি আমার বিবেচনার ভিত্তিতে পরীক্ষার সেটে যুক্ত করা হবে।
পাইথন (২.7.৫-এ পরীক্ষিত) কন্ট্রোলার গিথুবকে নিয়ন্ত্রণে রাখা হয়েছে । সেখানে একটি দ্বিতীয় নিয়ামক, কন্ট্রোলার_ডিস্প.পি , সন্ধানের সময় গ্রাফিকাল আউটপুট দেখায় (পাইগেম লাইব্রেরির প্রয়োজন হয়) ব্যতীত অভিন্ন।
ব্যবহার :
python controller.py <map file> <your execution line>
অর্থাৎ,
python controller.py map1.txt python solver.py map1.txt
নিয়ামকের ফর্মটির আউটপুট (আপনার প্রোগ্রামের স্টিডিনে ) রয়েছে
Turn 1
@:2,3 A:2,3 B:2,3.
##...##
#ooo..#
ooooo..
ooooo..
ooooo..
#ooo...
##.....
###....
----------------------------------------
এটি এখন টার্ন নম্বর (1 স্থান পরিবর্তন করার আগে আপনি চলে যাওয়ার আগে), একটি '.'- সমস্ত অভিনেতা এবং তাদের x, y স্থানাঙ্কের সমাপ্ত তালিকা (উপরের বাম অক্ষরটি (0,0)), পুরো উপস্থাপনা বোর্ড, এবং 40'-এর একটি লাইন। এরপরে এটি ফর্মটির ইনপুটটির জন্য (আপনার প্রোগ্রামের স্টাডআউট থেকে ) অপেক্ষা করে
@9 A2 B7.
এটি উপরে বর্ণিত আউটপুট ফর্ম্যাট। নিয়ন্ত্রক খোলা জায়গার জন্য একটি 'ও' আউটপুট দেয় যা অনুসন্ধান করা হয়েছে '' খোলা জায়গার জন্য যা অনুসন্ধান করা হয়নি এবং '#' বাধার জন্য। এটির মধ্যে কেবলমাত্র জীবিত লোককে তার লোকদের তালিকায় এবং তাদের স্থানাঙ্কগুলিতে অন্তর্ভুক্ত করে এবং গেমের সমস্ত নিয়ম ট্র্যাক করে। অবৈধ পদক্ষেপের চেষ্টা করা হলে নিয়ন্ত্রণকারীটি প্রস্থান করবে। যদি প্রদত্ত পালাটির চালগুলি অনুসন্ধান শেষ করে, আউটপুট উপরের মতো নয়; পরিবর্তে এটি ফর্ম হয়
Finished in 4 turns
4 1 0
"4 1 0" এখানে 4 টি মোট টার্ন, 1 টি লিভিং কস্টার এবং 0 লিভিং অতিরিক্ত ব্যবহার করে। আপনার নিয়ামক ব্যবহার করার দরকার নেই; এটি ব্যবহার করতে নির্দ্বিধায় বা নিজের প্রবেশের জন্য এটি সংশোধন করুন। আপনি যদি এটি ব্যবহার করার সিদ্ধান্ত নিয়ে থাকেন এবং সমস্যার মুখোমুখি হন তবে আমাকে জানান।
কন্ট্রোলারটি লেখার জন্য আমাকে সাহায্য করার জন্য @ গিথুবাফাগোসাইটকে ধন্যবাদ।
সম্পাদনা করুন: এলোমেলোভাবে প্রবেশের জন্য, আপনি সেই মানচিত্রের জন্য আপনার স্কোর হিসাবে কোনও নির্দিষ্ট মানচিত্রে যে কোনও রান বেছে নিতে পারেন। নোট করুন যে স্কোরিং প্রয়োজনীয়তার কারণে আপনার সর্বদা সর্বনিম্ন টার্নগুলি, তারপরে কয়েকটি সর্বাধিক মৃত ব্যয় এবং তারপরে প্রতিটি মানচিত্রের জন্য কয়েকটি মৃত অতিরিক্ত বেছে নেওয়া উচিত।