Viết chương trình chơi trò chơi Connect 4 . Bạn được đưa ra trạng thái của bảng làm đầu vào và bạn phải quyết định cột nào sẽ đặt mảnh của bạn để có được 4 liên tiếp (theo chiều ngang, chiều dọc hoặc đường chéo) hoặc chặn đối thủ của bạn làm điều tương tự.
Bảng là một mảng 6x7, trong đó mỗi ô có thể trống (''), chứa mảnh của bạn ('X') hoặc mảnh của đối thủ ('O'). Một bảng ví dụ:
O
XX X
XOX OO
XOO OXO
OXXOXXO
XOXOXOX
Bạn sẽ muốn chơi trong cột 3 (các cột là 0-6, được đánh số từ bên trái) để giành chiến thắng theo đường chéo. Vì vậy, bạn xuất:
3
Mã của bạn phải xuất ra một số cột và nó phải đáp ứng các tiêu chí sau:
- Bạn không thể chơi trong một cột đã có 6 phần trong đó.
- Nếu có ít nhất một nước cờ chiến thắng, bạn phải chơi một trong số chúng.
- Nếu bạn có thể ngăn đối thủ của mình giành chiến thắng trong lần di chuyển tiếp theo của anh ta, bạn phải làm như vậy.
Lưu ý rằng chơi tối ưu là không cần thiết, chỉ cần bạn giành chiến thắng ngay lập tức hoặc ngăn chặn chiến thắng ngay lập tức của đối thủ. Nếu đối thủ của bạn có nhiều hơn một cách để giành chiến thắng, bạn không cần phải chặn bất kỳ ai trong số họ.
Bạn được cấp bảng trên đầu vào tiêu chuẩn và phải in số cột mà bạn muốn phát trên đầu ra tiêu chuẩn. Bảng được đảm bảo có hình dạng tốt (không có lỗ, ít nhất một lần di chuyển có thể) và chưa có chiến thắng cho một trong hai người chơi.
Mã ngắn nhất sẽ thắng.
ví dụ 1
X
O
X
O
OOO X
XXX O
Bạn phải chơi cột 0 hoặc 4 để giành chiến thắng.
Ví dụ 2
X
X X
O O
XOX XO
XXO XOX
XXO XXO
Bạn phải chơi cột 3 để chặn chiến thắng ngay lập tức của đối thủ.
Ví dụ 3
X
XO
OX O
XO XX
XXO OOO
OOO XXO
Bạn không thể thắng hoặc ngăn đối thủ của mình chiến thắng, vì vậy bạn có thể chơi bất kỳ cột 1-6 nào (0 đã đầy).
Ví dụ 4
X
O
X
OOO
XOX
OXOX
Bạn không thể chơi trong cột 3, vì nó cho phép đối thủ của bạn giành chiến thắng ngay lập tức. Bạn có thể chơi trong các cột 1-2 hoặc 4-6.