در این تمرین، برنامهای را پیادهسازی میکنید که وضعیت یک بازی tic-tac-toe را مشخص میکند. (شاید این بازی را با نامهای «noughts and crosses» یا «Xs and Os» هم بشناسید.)
این بازی روی یک شبکهی ۳×۳ انجام میشود.
بازیکنان به نوبت Xها و Oها را روی شبکه قرار میدهند.
بازی زمانی تمام میشود که یکی از بازیکنان با قرار دادن سه علامت در یک ردیف، یک ستون یا روی یک قطر از شبکه برنده شود، یا زمانی که کل شبکه پر شود.
در این تمرین فرض میکنیم که بازی با X شروع میشود.
کار شما این است که مشخص کنید یک بازی دادهشده در چه وضعیتی قرار دارد.
سه وضعیت ممکن برای بازی وجود دارد:
اگر صفحهی دادهشده نامعتبر باشد، خطای مناسبی پرتاب کنید.
اگر یک صفحه شرایط زیر را داشته باشد، نامعتبر است:
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 تمرین و مربیگری انسانی واقعی یاد بگیرید و در آن استاد شوید، همهی اینها رایگان.