Python ConnectN棋盘游戏

问题描述 投票:0回答:1

所以这基本上类似于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')
python
1个回答
0
投票

如果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):
    ...
© www.soinside.com 2019 - 2024. All rights reserved.