【问题标题】:ConnectN game check horizontal winConnectN游戏检查横胜
【发布时间】:2020-08-27 09:32:37
【问题描述】:

我正在尝试为 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】:

    在这个循环中:

    for c in range(num_col-num_piece):
    

    您只会查看第 0 列和第 1 列(即 'O' 行开始之前的两列),因为 range 的结尾不包含在内。如果你在这个范围内加 1,那么我认为这个方案可能会奏效。

    如果您想尝试处理垂直行和对角行,我建议您阅读一下:Finding neighbor cells in a grid with the same value. Ideas how to improve this function?

    【讨论】:

      猜你喜欢
      • 2020-09-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多