이 연습 문제에서는 틱택토 게임의 상태를 판별하는 프로그램을 구현해요. (이 게임은 "noughts and crosses" 또는 "Xs and Os"라고도 해요.)
게임은 3×3 격자에서 진행돼요.
플레이어는 번갈아 가며 격자에 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개, 그리고 실제 사람의 멘토링과 함께 배우고 익혀 보세요. 모두 무료예요.