You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 10:43:18