Connect 4 게임을하는 프로그램을 작성 하십시오 . 보드 상태를 입력으로 받으면 4 열을 가로 (세로, 세로 또는 대각선)로 만들거나 상대가 같은 것을 수행하지 못하도록 조각을 놓을 열을 결정해야합니다.
보드는 6x7 배열이며 각 셀은 비어 있거나 ( '') 조각 ( 'X') 또는 상대방 조각 ( 'O')을 포함 할 수 있습니다. 보드 예 :
O
XX X
XOX OO
XOO OXO
OXXOXXO
XOXOXOX
대각선 승리를 위해 3 열 (열은 0-6, 왼쪽부터 번호가 매겨 짐)에서 재생하려고합니다. 그래서 당신은 출력 :
3
코드는 열 번호를 출력해야하며 다음 기준을 충족해야합니다.
- 이미 6 개 조각이있는 칼럼에서는 재생할 수 없습니다.
- 적어도 한 번의이기는 움직임이 있다면 그 중 하나를 플레이해야합니다.
- 상대방이 다음 움직임에서 이기지 못하게 막을 수 있다면 그렇게해야합니다.
최적의 플레이는 필요하지 않으며, 즉시 승리를 거두거나 상대방의 즉시 승리를 막을 수 있습니다. 상대방이 이길 수있는 방법이 두 가지 이상이면 그 중 하나를 막을 필요가 없습니다.
표준 입력에 보드가 제공되며 표준 출력에서 재생할 열 번호를 인쇄해야합니다. 보드는 잘 구성되어 있고 (구멍이없고, 최소한 한 번은 움직일 수 있음), 두 선수 모두에게 아직 승리하지 않았습니다.
가장 짧은 코드가 승리합니다.
실시 예 1
X
O
X
O
OOO X
XXX O
승리를 위해서는 0 번 또는 4 번 열을 플레이해야합니다.
실시 예 2
X
X X
O O
XOX XO
XXO XOX
XXO XXO
상대방의 즉시 승리를 막으려면 3 열을 플레이해야합니다.
실시 예 3
X
XO
OX O
XO XX
XXO OOO
OOO XXO
상대방이이기거나 이기지 못하게 할 수 없으므로 1-6 열 (0이 꽉 참)을 재생할 수 있습니다.
실시 예 4
X
O
X
OOO
XOX
OXOX
상대방이 즉시 이길 수 있기 때문에 3 열에서는 플레이 할 수 없습니다. 1-2 열 또는 4-6 열에서 연주 할 수 있습니다.