Python:如何简化井字棋平局判断代码及检测变量是否为空格?
井字棋平局判断简化与空格检测技巧
简化平局判断代码
你原来逐个变量判断的写法太冗余,把所有棋盘格子变量放进列表,用all()函数就能一行搞定:
# 将所有棋盘格子存入列表 board_cells = [a1, a2, a3, b1, b2, b3, c1, c2, c3] # 检查所有格子都已被填充(无空格) if all(cell != " " for cell in board_cells): board() print("its a tie!") quit()
all()会验证列表里的每一个元素,只有当所有元素都满足!= " "时才返回True,和你原代码的逻辑完全一致,但简洁度提升明显。
检测变量是否为空格的简便方法
- 单个变量检测:直接用
变量 == " "即可,比如if a1 == " ": print("a1是空的") - 批量检测多个变量:同样用列表配合
any()函数,快速判断是否存在空格(即还有空位):
if any(cell == " " for cell in board_cells): print("游戏还能继续!")
any()只要列表里有一个元素是空格就返回True,刚好适合判断游戏是否还未结束。
额外建议:后续开发可以改用二维列表存储棋盘,比如board = [[" ", " ", " "], [" ", " ", " "], [" ", " ", " "]],这样通过board[row][col]访问格子更规范,后续扩展胜负判断等功能也更方便。
内容的提问来源于stack exchange,提问作者Jules Hornstra
相关产品推荐
相关产品推荐

