Python扫雷函数返回值异常:同一位置多次操作结果不一致
扫雷游戏Bug排查:同一位置周边地雷数返回值异常
我用Python的class、random和Numpy模块编写了扫雷游戏。通过选择难度,借助Numpy设置棋盘维度并生成棋盘,再根据难度随机布置地雷。操作时,有一个函数会检查所选位置周围8个单元格的地雷数量并返回结果。经过一些修复后,运行代码发现同一位置在不同操作后返回的数值不同。我检查了每个函数以及每次操作的程序执行路径,但仍未找到问题所在。
代码预览如下:
def setupMines(self, mines: int = 15) -> None: if len(self.board) <= 5: raise ValueError('Board too small') self.mines = set() while len(self.mines) < mines: rand_row = randint(0, self.__dimension - 1) rand_col = randint(0, self.__dimension - 1) self.mines.add((rand_row, rand_col)) for row, col in self.mines: self.board[row][col] = 1 def makePlay(self, row: int, col: int) -> None: self.row = row - 1 self.column = col - 1 if self.board[row - 1][col - 1] == 1: for i in 'You stepped on a mine!\nEnding program...': print(i, end='') wait(0.07) exit(0) elif self.board[row - 1][col - 1] == 0: self.board[row - 1][col - 1] = -1 self.printBoard() self.EndGame() def checkPlay(self) -> int: tip = 0 aux_row = -1 for _ in range(3): aux_column = -1 for _ in range(3): if (self.row + aux_row, self.column + aux_column) in self.mines: tip += 1 aux_column += 1 aux_row += 1 return tip
内容的提问来源于stack exchange,提问作者Pedddrym
相关产品推荐
相关产品推荐

