Python连接4检查win功能
发布时间:2020-12-20 11:42:38 所属栏目:Python 来源:网络整理
导读:我正在写一个连接4游戏,你可以在其中选择板的大小.对于大多数电路板尺寸而言,游戏可以完美运行,但是当电路板较高而宽度较大时,会给我带来问题.我不断得到索引超出范围错误,我不知道我做错了什么.就我的检查功能而言,这就是我现在所拥有的,因为它是唯一给我问
我正在写一个连接4游戏,你可以在其中选择板的大小.对于大多数电路板尺寸而言,游戏可以完美运行,但是当电路板较高而宽度较大时,会给我带来问题.我不断得到索引超出范围错误,我不知道我做错了什么.就我的检查功能而言,这就是我现在所拥有的,因为它是唯一给我问题的部分.
def checkOWin(board): boardHeight = len(board) boardWidth = len(board[0]) tile = 'O' # check horizontal spaces for y in range(boardHeight): for x in range(boardWidth - 3): if board[x][y] == tile and board[x+1][y] == tile and board[x+2][y] == tile and board[x+3][y] == tile: return True # check vertical spaces for x in range(boardWidth): for y in range(boardHeight - 3): if board[x][y] == tile and board[x][y+1] == tile and board[x][y+2] == tile and board[x][y+3] == tile: return True # check / diagonal spaces for x in range(boardWidth - 3): for y in range(3,boardHeight): if board[x][y] == tile and board[x+1][y-1] == tile and board[x+2][y-2] == tile and board[x+3][y-3] == tile: return True # check diagonal spaces for x in range(boardWidth - 3): for y in range(boardHeight - 3): if board[x][y] == tile and board[x+1][y+1] == tile and board[x+2][y+2] == tile and board[x+3][y+3] == tile: return True return False 任何帮助或建议将不胜感激.提前致谢! 解决方法
你刚刚混淆了你的尺寸,你应该这样设置它们:
def checkOWin(board): boardHeight = len(board[0]) boardWidth = len(board) 因为当你引用board [x]时,那就是计算电路板中列表的数量,当你引用电路板[x] [y]时,它只是指电路板中一个特定行的长度. if board[x][y] == tile and board[x+1][y] == tile and board[x+2][y] == tile and board[x+3][y] == tile: 当我翻转这些值时,函数运行没有错误. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |