python-3.x - 试图找出我的代码有什么问题
问题描述
在这里,我正在尝试开发游戏。
任何人请解释为什么如果值发生变化,变量的布尔值win
不会更新Board
这是代码..
Board = {'1':'1','2':'6','3':'7',
'4':'2','5':'5','6':'8',
'7':'3','8':'4','9':'9'}
Win = Board['1'] == Board['2']== Board['3']=='X' or Board['4'] == Board['5'] == Board['6'] or Board['7'] == Board['8'] == Board['9'] or Board['1'] == Board['5'] == Board['9'] or Board['3'] == Board['5'] == Board['7'] or Board['1'] == Board['4'] == Board['7'] or Board['2'] == Board['5'] == Board['8'] or Board['3'] == Board['6'] == Board['9']
turn = 'X'
print(Win)
for i in range(9):
a = str(input('Enter choice {}: '.format(turn)))
Board[a] = turn
turn = 'Y' if turn == 'X' else 'X'
if Win: #Here I am expecting Win to be True but it is actually False
print('Win')
这个你能帮我吗。
解决方案
您有一个在“玩游戏”时未修改的静态布尔值
相反,定义一个检查板状态的函数
def isWin(board):
return board['1'] == board['2']== board['3']=='X' or ...
然后在游戏循环中使用它
Board[a] = turn
turn = 'Y' if turn == 'X' else 'X'
if isWin(Board):
...
break # stop the game
推荐阅读
- swift - 在设备之间同步键值
- flutter - BoxConstraints(w=Infinity, 0.0<=h<=Infinity) | 如何整顿?
- github - 在 heroku 应用程序上使用 Beautiful Soup
- c - 如何使用 qsort 对具有一些 NULL 值的结构数组进行排序
- flutter - ios/Flutter/App.framework" failed: No such file or directory (2) done flutter
- python - Python 在递归代码中返回另一个函数——>它是如何工作的?
- asp.net-core - 标签助手不使用 DynamicRouteValueTransformer
- html - CSS - 在移动模式下网页屏幕保持大尺寸
- javascript - 动态创建 Mat 对话框配置
- html - HTML 输入字段占位符文本在末尾被截断