所以这基本上类似于Connect4,但在这种情况下是连续5个游戏而不是4个游戏。我试图编写此代码来检查横向胜利,但它不起作用并且没有任何打印内容?
有人可以告诉我我在做什么错吗?
game_board = [['_','_','_','_','_','_','_'],
['_','_','_','_','_','_','_'],
['_','_','_','X','_','_','_'],
['_','_','_','O','_','_','_'],
['_','X','O','O','O','O','O'],
['X','X','X','O','O','X','O']]
num_col= 7
num_row= 6
num_piece= 5
game_piece= 'O'
for r in range(num_row):
for c in range(num_col-num_piece):
index=0
for i in range (num_piece):
if game_board[r][c + index] == game_piece:
index +=1
else:
break
if index == num_piece:
print('end game')
如果c + index
大于6,则game_board[r][c + index]
将引发该错误。您应该将要检查的列数减少为num_col - num_piece
,因为无论如何从该点开始的水平行进始终不可能导致获胜。
for r in range(num_row):
for c in range(num_col - num_piece):
...