python 扫雷揭示功能

python minesweeper reveal function

def reveal(board, row, col):
  board[row][col] = "C" + board[row][col][1]
  count = 0
  board =[]
  rowcount = 0
  for i in board:
      if count in mines:
          i = 'C*'
      print("| ", i, end=" ")
      if rowcount == 9:
          print("|")
          rowcount = 0
      else:
          rowcount += 1
      count += 1

  board = []
  mines = []
  for i in range(9):
   board.append([])
  for j in range(12):
    board[i].append('C*')

  for i in range(9):
    for j in range(12):
      #Error Below it says Index Not in Range
      print("|", board[i][j], end=" ")
  print("|")
  mines = []
  for i in range(9):

    loc = random.randint(0, 99)
  while loc in mines:
      loc = random.randint(0, 99)
  #board[loc] = 'C*'
  bombs.append(loc)

我遇到的问题是我在指示的地方遇到了索引错误,但我不知道这意味着什么或如何更改它。这是我的扫雷游戏的显示功能,当运行程序

时我的棋盘不会绘制

快速猜测是这样的:

for i in range(9):
 board.append([])
for j in range(12):
  board[i].append('C*')

像那样,它运行两个独立的循环,因此 i 将具有最后一个值 (8),您只附加到最后一行。

如果你修复了缩进,它将看起来像这样:

for i in range(9):
    board.append([])
    for j in range(12):
        board[i].append('C*')

然后,它将正常工作。

这就是为什么你应该使用超过 一个 space 的缩进大小,所以你真的看到了差异!