في هذا التمرين، ستكتب برنامجًا يحدّد حالة لعبة إكس-أو. (قد تعرف اللعبة أيضًا باسم "noughts and crosses" أو "Xs and Os".)
تُلعب اللعبة على شبكة 3×3.
يتناوب اللاعبون على وضع علامات X وO على الشبكة.
تنتهي اللعبة عندما يفوز أحد اللاعبين بوضع ثلاث علامات في صف أو عمود أو على أحد أقطار الشبكة، أو عندما تُملأ الشبكة بالكامل.
في هذا التمرين، سنفترض أن X هو من يبدأ.
مهمتك هي تحديد الحالة التي وصلت إليها لعبة معطاة.
هناك 3 حالات محتملة للعبة:
إذا كانت اللوحة المعطاة غير صالحة، فارمِ خطأً مناسبًا.
تكون اللوحة غير صالحة إذا استوفت الشروط التالية:
X هو من يبدأ). | |
X | |
___|___|___
| |
| X | O
___|___|___
| |
O | X |
| |
| |
X | O | X
___|___|___
| |
X | X | O
___|___|___
| |
O | X | O
| |
| |
X | X | X
___|___|___
| |
| O | O
___|___|___
| |
| |
| |
| |
O | O | X
___|___|___
| |
| |
___|___|___
| |
| |
| |
| |
X | X | X
___|___|___
| |
O | O | O
___|___|___
| |
| |
| |
تُمثَّل اللوحة بسلسلة نصية منتهية بمحرف null، مع محرف سطر جديد في نهاية كل صف.
ومن الأمثلة على ذلك "X \n XO\nOX \n"
| السجل | الاستخدام | النوع | الوصف |
|---|---|---|---|
$a0 |
إدخال | عنوان | سلسلة إدخال نصية منتهية بمحرف null
|
$v0 |
إخراج | عدد صحيح | حالة اللعبة (1 = ongoing، 2 = draw، 3 = win، -1 = error) |
$t0-9 |
مؤقت | أي | لتخزين مؤقت |
سجّل في Exercism لتتعلّم وتتقن MIPS Assembly عبر 70 تمرينًا، وإرشاد بشري حقيقي، وكل ذلك مجانًا.