نتیجهی یک بازی Hex / Polygon را محاسبه کنید.
بازی رومیزی انتزاعیای که با نامهای Hex / Polygon / CON-TAC-TIX شناخته میشود، از نظر قواعد بسیار ساده است، هرچند در عمل پیچیده است. دو بازیکن سنگها را روی متوازیالاضلاعی با خانههای ششضلعی میگذارند. بازیکنی که زودتر سنگهایش را به ضلع مقابل وصل کند، برنده میشود. چهار ضلع متوازیالاضلاع بین دو بازیکن تقسیم میشود (یعنی به یکی از بازیکنان یک ضلع و ضلع مستقیم مقابلش تعلق میگیرد و به بازیکن دیگر دو ضلع دیگر).
هدف شما ساختن برنامهای است که با گرفتن یک نمایش ساده از صفحه، برنده (یا نبودن برنده) را محاسبه میکند. توجه کنید که لازم نیست همهی بازیها «منصفانه» باشند. (برای مثال، ممکن است تعداد سنگهای بازیکنان برابر نباشد یا عرض و ارتفاع صفحهی بازی متفاوت باشد.)
صفحهها به این شکل هستند:
. O . X .
. X X O .
O O O X .
. X O X O
X O O O X
«بازیکن O» از بالا به پایین بازی میکند و «بازیکن X» از چپ به راست.
در مثال بالا، O از چپ به راست ارتباط برقرار کرده است، اما هیچکس برنده نشده، چون O بالا و پایین را به هم وصل نکرده است.
در Exercism ثبتنام کنید تا Standard ML را همراه با 90 تمرین و مربیگری انسانی واقعی یاد بگیرید و در آن استاد شوید، همهی اینها رایگان.