WEBSITE ĐÃ HOẠT ĐỘNG TRỞ LẠI, TUY NHIÊN SỐ LƯỢNG SUBMIT BỊ GIỚI HẠN MỖI NGÀY CÒN RẤT ÍT (THEO CHÍNH SÁCH MỚI CỦA JUDGE0, BÊN CUNG CẤP API). DO VẬY RẤT MONG CÁC BẠN CHÚ Ý TEST THẬT KỸ CODE TRƯỚC KHI SUBMIT.

TicTacToe

Đề bài:
Game TicTacToe là một game phiên bản thu gọn của cờ caro với board game là một bảng 3 x 3. Game gồm 2 người chơi, mỗi lượt 1 người chơi sẽ đánh dấu vào ô trong bảng. Người chơi thứ nhất sẽ đánh dấu ‘x’, còn người chơi thứ hai sẽ đánh dấu ‘o’.

Game có người chiến thắng khi 1 người đánh dấu được 3 dấu thẳng hàng trước (có thể dọc, ngang hoặc chéo) hoặc hòa khi không ai có thể hoàn thành 3 dấu thẳng hàng.

Ban đầu board game là một ma trận 3 x 3 với các ô là các số được đánh lần lượt từ 1 đến 9, sau mỗi lượt 1 ô sẽ được thay thế bằng dấu tick bởi người chơi 1 hoặc 2 như đã nêu ở trên.

Cho một dãy select thể hiện các lượt chọn ô để đánh theo thứ tự của 2 người chơi (s[0] là lượt của người chơi 1, s[1] là của người chơi 2,…), yêu cầu của bạn là kiểm tra tình trạng của trò chơi (ai thắng, hòa hay chưa kết thúc). Nếu người chơi 1 thắng thì trả về 1, người chơi 2 thắng trả về 2, hòa trả về 0, chưa kết thúc trả về -1.
Hãy xem ví dụ để dễ hiểu hơn.

Ví dụ:

Với select = [1, 2, 3, 4, 5, 6, 7] thì ticTacToe(select) = 1.
Giải thích: Ban đầu board game sẽ là:

1 2 3
4 5 6
7 8 9
Và sau 7 lượt chọn số, s[0] là ‘x’, s[1] là ‘o’, s[2] là ‘x’,… s[6] là ‘x’ thì board game sẽ là:

x o x
o x o
x 8 9
Và người chơi 1 chiến thắng vì hoàn thành 3 dấu x thẳng hàng trước.
Với select = [2, 3, 6, 5, 1] thì ticTacToe(select) = -1.
Trò chơi chưa kết thúc.

Đầu vào: Một mảng thể hiện các lượt chọn ô để đánh theo thứ tự của 2 người chơi
Đầu ra: Nếu người chơi 1 thắng thì trả về 1, người chơi 2 thắng trả về 2, hòa trả về 0, chưa kết thúc trả về -1.
Ví dụ:

input:
7
1 2 3 4 5 6 7
output:
1

Bạn chưa đăng nhập? Đăng nhập để Submit ngay!

Add a Comment