编写一个程序玩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列中玩。