المسارات
/
MIPS Assembly
MIPS Assembly
/
التمارين
/
حالة تيك تاك تو
حالة تيك تاك تو

حالة تيك تاك تو

متوسط

التعليمات

في هذا التمرين، ستكتب برنامجًا يحدّد حالة لعبة إكس-أو. (قد تعرف اللعبة أيضًا باسم "noughts and crosses" أو "Xs and Os".)

تُلعب اللعبة على شبكة 3×3. يتناوب اللاعبون على وضع علامات X وO على الشبكة. تنتهي اللعبة عندما يفوز أحد اللاعبين بوضع ثلاث علامات في صف أو عمود أو على أحد أقطار الشبكة، أو عندما تُملأ الشبكة بالكامل.

في هذا التمرين، سنفترض أن X هو من يبدأ.

مهمتك هي تحديد الحالة التي وصلت إليها لعبة معطاة.

هناك 3 حالات محتملة للعبة:

  • اللعبة في حالة ongoing.
  • انتهت اللعبة في حالة draw.
  • انتهت اللعبة في حالة win.

إذا كانت اللوحة المعطاة غير صالحة، فارمِ خطأً مناسبًا.

تكون اللوحة غير صالحة إذا استوفت الشروط التالية:

  • لا يمكن الوصول إلى اللوحة المعطاة إذا أُخذت الأدوار بالترتيب الصحيح (تذكّر أن 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 مؤقت أي لتخزين مؤقت
تعديل عبر GitHub يفتح الرابط في نافذة أو علامة تبويب جديدة
MIPS Assembly Exercism

مستعد لبدء حالة تيك تاك تو؟

سجّل في Exercism لتتعلّم وتتقن MIPS Assembly عبر 70 تمرينًا، وإرشاد بشري حقيقي، وكل ذلك مجانًا.