Tic-tac-toe
Đề bài
Mô tả
Trò chơi tic-tac-toe (cờ ca-rô 3x3) diễn ra như sau: hai người chơi lần lượt đánh dấu vào các ô của một lưới . Một người luôn vẽ dấu X, người kia luôn vẽ dấu 0. Người đầu tiên xếp được ba dấu của mình thành một hàng ngang, cột dọc hoặc đường chéo sẽ thắng và ván đấu kết thúc ngay lập tức. Nếu lưới đã đầy mà không ai tạo được hàng ba dấu thì ván đấu hòa. Người vẽ dấu X luôn đi trước.
Cho một lưới , mỗi ô hoặc trống, hoặc chứa dấu X, hoặc chứa dấu 0. Hãy xác định người chơi (thứ nhất hay thứ hai) sẽ đi nước tiếp theo, hoặc in ra một trong các kết luận sau:
- illegal: nếu trạng thái lưới đã cho không thể xuất hiện trong một ván đấu hợp lệ.
- the first player won: nếu ở trạng thái đã cho người chơi thứ nhất vừa mới thắng.
- the second player won: nếu ở trạng thái đã cho người chơi thứ hai vừa mới thắng.
- draw: nếu trạng thái đã cho vừa dẫn tới một ván hòa.
Ván đấu dừng lại ngay khi một người thắng, nên không thể có trạng thái mà cả hai người cùng có một hàng ba dấu, và cũng không thể có thêm nước đi nào sau khi đã có người thắng.
Dữ liệu vào
Gồm ba dòng, mỗi dòng chứa ba ký tự thuộc tập {".", "X", "0"} (dấu chấm, chữ X hoa, hoặc chữ số 0). Dấu chấm biểu diễn ô trống.
Dữ liệu ra
In ra đúng một trong sáu kết luận: first, second, illegal, the first player won, the second player won hoặc draw.
- first: đến lượt người chơi thứ nhất (X) đi.
- second: đến lượt người chơi thứ hai (0) đi.
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| X0X .0. .X. |
second | Có 3 dấu X và 2 dấu 0, chưa ai thắng, lưới chưa đầy nên đến lượt người chơi thứ hai đi. |
| 00. 00. X.X |
illegal | Có 2 dấu X nhưng 4 dấu 0. Vì X đi trước nên số dấu 0 không thể vượt số dấu X, trạng thái này không hợp lệ. |
| XXX ... 000 |
illegal | Cả X (hàng trên) lẫn 0 (hàng dưới) đều có hàng ba dấu. Ván đấu phải dừng ngay khi người đầu tiên thắng, nên trạng thái này không thể xảy ra. |
Bình luận