Tick-Tack-Toe 〜 横へな 2012.7.6
問題
三目並べ( tick-tack-toe )の手を入力とし、勝敗を出力する。
- 先攻がo、後攻がx
-
すでに打ってある場所に打った場合、反則負け
- x が反則をした場合、「Foul : o won.」と出力
-
縦横斜めのいずれかで一列揃ったら、揃えた方の勝ち
-
9マス埋まっても揃わなかったら引き分け
- 勝敗が決した後の手は無視する
-
入力文字列は、先攻から順に打った位置を示す。盤上の位置と数の対応は下表を参照。
-
入力文字列が「91593」の場合、「oが9の位置、xが1の位置、oが5の位置、xが9の位置→xの反則負け(最後の3は無視)」となる。
-
以下の様なケースは考慮しなくてよい
- 入力が 1〜9 以外の文字を含んでいる
- 入力が不足していて、ゲームの勝敗が決まらない
入力と出力の例
| # | 入力 | 出力 |
|---|
| 1 | 79538246 | x won. |
| 2 | 35497162193 | x won. |
| 3 | 61978543 | x won. |
| 4 | 254961323121 | x won. |
| 5 | 6134278187 | x won. |
| 6 | 4319581 | Foul : x won. |
| 7 | 9625663381 | Foul : x won. |
| 8 | 7975662 | Foul : x won. |
| 9 | 2368799597 | Foul : x won. |
| 10 | 18652368566 | Foul : x won. |
| 11 | 965715 | o won. |
| 12 | 38745796 | o won. |
| 13 | 371929 | o won. |
| 14 | 758698769 | o won. |
| 15 | 42683953 | o won. |
| 16 | 618843927 | Foul : o won. |
| 17 | 36535224 | Foul : o won. |
| 18 | 882973 | Foul : o won. |
| 19 | 653675681 | Foul : o won. |
| 20 | 9729934662 | Foul : o won. |
| 21 | 972651483927 | Draw game. |
| 22 | 5439126787 | Draw game. |
| 23 | 142583697 | Draw game. |
| 24 | 42198637563 | Draw game. |
| 25 | 657391482 | Draw game. |