Skip to content

Latest commit

 

History

History
67 lines (46 loc) · 10.9 KB

File metadata and controls

67 lines (46 loc) · 10.9 KB

پیش زمینه

چند وقت پیش در کلونی‌آباد زمین لرزه‌ای رخ داد که باعث به وجود آمدن خرابی‌های بسیاری شد. جنگجوها (عقرب‌ها) و کارگر‌ها (مورچه‌ها) از کلونی‌آباد مجبور به نقل مکان می‌شوند. در مسیر، آبادی دیگری می‌بینند (جنگ‌کار آباد). آن‌ها تصمیم می‌گیرند که در آن‌جا سکنی گزینند. اما ساکنین جنگ‌کار آباد که در جنگ نیز بسیار مهارت داشتند، به این راحتی آبادی خود را با دیگران شریک نمی‌شوند. و این زمینه‌ی آغاز جنگ را فراهم می‌کند ...

خلاصه بازی

بازی در چند نوبت (turn) انجام می‌شود. در هر نوبت، نیروه‌ها (جلوتر توضیح داده می‌شوند) می‌توانند در زمین جابه‌جا شوند، منابع را بردارند یا به دشمن حمله کنند. دو کلونی مورچه در یک زمین مستطیلی با هم مبارزه می‌کنند و هدف هر یک نابودی پایگاه حریف با جمع‌آوری منابع و ایجاد نیروهای جدید می‌باشد. اندازه نقشه ثابت است. همچنین ضلغ چپ و راست زمین و هم‌چنین ضلع بالا و پایین آن به یکدیگر متصل هستند.

یونیت‌ها

خانه‌های زمین

  • خانه‌ها، سه حالت دارند. بعضی از خانه های زمین دیوار هستند (خانه‌های میانی تصویر) و مورچه‌ها و عقرب‌ها نمی‌توانند در آن خانه‌ها قرار گیرند (قرار گرفتن چند مورچه در یک خانه بلامانع است).
  • هر بازیکن هم دارای یک پایگاه است که در یک نقطه مشخص زمین است و حرکت نمی‌کند. (قرار گرفتن مورچه‌ها در پایگاه بلامانع است).
  • باقی خانه‌های زمین، خانه‌های خالی هستند که مورچه‌ها می‌توانند در آن‌ها قرار بگیرند.

cells

منابع زمین

  • دو نوع منبع (نان و علف) در زمین موجود است. منابع در خانه‌های خالی قرار می‌دارند. پس از برداشت هر مورچه یک واحد از آن منبع کاهش پیدا می‌کند؛ هرگز در یک خانه دو نوع منبع قرار نمی‌گیرد (از آن جا که منبع در خانه‌ی خالی است، قرار گرفتن و عبور مورچه از خانه منبع بلامانع است).

resources

نیروها

مورچه‌ی کارگر

  • جان اولیه: در هنگام تولید، هر مورچه کارگر جانی برابر با health_kargar دارد.
  • طریقه برداشت منابع: هر مورچه کارگر در نوبتش در صورتی که به یک خانه خالی حاوی منبع برسد، یک واحد از آن منبع را برمی‌دارد و در ادامه تا زمانی که یک منبع را حمل می‌کند نمی‌تواند منبع جدیدی بردارد. با رسیدن مورچه کارگر حامل منبع به پایگاه خودی، منابع را تحویل می‌دهد.
  • در صورتی که چند مورچه کارگر همزمان به یک خانه حاوی منبع برسند و منبع در آن خانه به مقداری نباشد که به همه ی آن مورچه ها برسد، به شکل تصادفی منابع آن خانه به مورچه‌ها می‌رسد.
  • نوار قرمز رنگ کنار مورچه‌ها نشان‌دهنده‌ی سلامتی مورچه می‌باشد.
  • عدد روی آن‌ها نیز بیان‌گر id آن مورچه است.

ants

عقرب سرباز

  • جان اولیه: در هنگام تولید جونی برابر با health_sarbaz دارد.
  • طریقه حمله: عقرب سرباز می‌تواند به همه‌ی نیروهای و پایگاه حریف در شعاع attack_distance (منهتنی) از خودش حمله کند (همان دید مورچه که در ادامه توضیح داده می‌شود).
  • سرباز در هر نوبت حداکثر ۱ حمله خواهد داشت که با اولویت حمله به پایگاه حریف، سپس حمله به سربازها و بعد حمله به مورچه‌هاست. میان نیروهای هم اولویت به صورت تصادفی حمله به یکی انجام می‌شود. حمله به صورت اتوماتیک است و فرمان حمله توسط مورچه داده نمی‌شود.
  • نوار قرمز رنگ کنار عقرب‌ها نشان‌دهنده‌ی سلامتی سرباز است.
  • عدد روی سرباز بیان‌گر id سرباز می‌باشد.

scorpions

مشخصات

هر مورچه در هر لحظه یک مکان (x, y) دارد. همچنین هر مورچه مقدار مشخصی جان دارد که در زمانی که تولید می‌شود برابر مقدار اولیه است.

اکشن‌ها

هر مورچه می تواند در هر نوبت خود به یکی از خانه های بالا، پایین، چپ یا راست خود(به شرط اینکه دیوار نباشد) برود یا در جای خود باقی بماند. هر مورچه در هر نوبت می تواند یک پیام با طول محدود و ارزش مشخص برای قرار گرفتن در چت باکس دور بعد ارسال کند (پیام‌ها در بخش ارتباط مورچه‌ها توضیح داده شده‌اند).

ساخت مورچه

با آوردن منابع به پایگاه، هر زمان که سطح منبع نان از حد generate_kargar بالاتر رفت یک مورچه کارگر و هر زمان که حد منبع علف از generate_sarbaz بالاتر رفت یک مورچه سرباز تولید می‌شود. مکان اولیه مورچه تولید شده مکان پایگاه است و زمان تولید آن دور بعد از رسیدن منبع مشخص به حد نصاب است.

حمله

  • هر حمله یک مورچه سرباز به یک مورچه حریف یا پایگاه حریف، یک واحد از جان مورچه یا پایگاه کم می‌کند؛ همچنین در هر نوبت ابتدا حمله و سپس حرکت انجام می شود.
  • در اثر مردن یک مورچه، منبعی با ارزش rate_death_resource از نوع آن مورچه در آن خانه ایجاد می‌شود. مثلا اگر این پارامتر ۲/۳ باشد، منبعی با ارزش ۲/۳ مقدار generate آن نوع مورچه در آن مکان قرار می‌گیرد. ضمنا در صورتی که در اثر حمله، مورچه‌ای بمیرد، اگر آن مورچه کارگر بوده و منبعی حمل می‌کرده آن منبع در همان محل مردن قرار می‌گیرد.
  • همچنین هر پایگاه در صورتی که مورچه رقیب در محدود حمله آن قرار بگیرد با مقدار آسیب مشخص و یه اولویت تعیین شده برای مورچه های مهاجم حمله می‌کند.

ضمنا چون نباید هیچ دو منبعی در یک خانه باشند، اگر خانه مردن مورچه خود حاوی منبع باشد منبع در اثر مردن را در یکی از خانه‌های مجاوری که خالی است قرار می‌دهیم (نزدیک‌ترین خانه خالی از نظر منهتنی و به صورت تصادفی در حالت چند انتخاب داشتن).

اطلاعات نقشه

هر مورچه تا فاصله منهتنی مشخصی از خانه‌ای که در آن قرار دارد (view_distance) را مشاهده می‌کند. مورچه نوع خانه، مقدار منابع موجود در آن (و نوع آن‌)، شماره دوری که بازی در آن جریان دارد، مورچه ها(نوع و تیم) را در محدوده ای از نقشه که مشاهده می‌کند می‌بیند. در دیدن زمین تفاوتی بین دیدن پشت و جلوی دیوار وجود ندارد. همچنین هر مورچه از مکان فعلی، منبعی که حمل می‌کند (اگر کارگر است) اندازه نقشه و مقدار جان فعلی خود اطلاع دارد. به جز این موارد مورچه از باقی اطلاعات آگاهی ندارد.

ارتباط مورچه‌ها

هر مورچه می تواند در هر نوبت یک پیام با طول محدود و ارزش مشخص ارسال کند. در هر نوبت تعداد مشخصی از پیام ها (chat_limit) با بیش‌ترین ارزش در چت قرار می‌گیرند. اگر ارزش چند پیام که شانس حضور در چت را داشتند برابر بود به صورت تصادفی از بین آن‌ها انتخاب می شود. هر پیام در چت‌باکس متشکل از تعدادی کاراکتر ASCII و (chat_message_length) یک عدد است که برابر دوری است که پیام در آن ارسال شده (ارزش پیام‌ها در چت‌باکس دیده نمی‌شود). همه ی مورچه ها به همه ی چت‌باکس دسترسی دارند و هیچ پیامی از چت‌باکس حذف نمی شود. (حتی پس از ساخته شدن مورچه دسترسی به پیام‌های گذشته ممکن‌ است) ضمنا چت‌باکس دو بازیکن از هم جداست.

شرط برد

هدف بازی نابود کردن پایگاه حریف است. هر بار که پایگاه توسط مورچه سرباز مورد حمله قرار می گیرد یک واحد از جان خود را از دست می‌دهد. با رسیدن به محدودیت تعداد دور بازی (max_turns) اگر هیچ پایگاهی نابود نشده بود، مقدار جان پایگاه ها مقایسه می شود و اگر برابر بود بازیکنی که تا آن مرحله تعداد بیشتری مورچه تولید کرده است، برنده میشود. اگر برابر بود تعداد مورچه سرباز تولید شده و سپس جمع تعداد منابع هر دو تیم و باز هم در صورت برابری به صورت رندم برنده تعیین می‌شود.