在这里,我正在尝试开发一款游戏。
任何人请解释为什么 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')
请帮我解决这个问题。
答案 0 :(得分:0)
您有一个在“玩游戏”时未修改的静态布尔值
相反,定义一个检查板子状态的函数
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