【发布时间】:2018-02-22 19:00:22
【问题描述】:
我正在编写一个程序来与两个玩家一起玩井字游戏。我已经完成了基本代码(尽管效率很低),但我不断收到错误消息,提示未定义 player2。我已经尝试了很多方法来修复错误,但想知道你们是否有任何想法。它被第一个 player1 == player2 条件捕获。代码如下:
def main():
board1 = [" "," "," "]
board2 = [" "," "," "]
board3 = [" "," "," "]
game(board1,board2,board3)
def play1():
global player1
player1 = int(input("Player 1, where would you like to move? "))
return player1
def play2():
global player2
player2 = int(input("Player 2, where would you like to move? "))
return player2
def game(brd1,brd2,brd3):
isvalid = False
while(not(isvalid)):
play1()
try:
if player1 == player2:
print("You can't both go to the same spot!")
except NameError:
if player1 == 0:
brd1.pop(0)
brd1.insert(0,"x")
print(brd1)
print(brd2)
print(brd3)
elif player1 == 1:
brd1.pop(1)
brd1.insert(1,"x")
print(brd1)
print(brd2)
print(brd3)
elif player1 == 2:
brd1.pop(2)
brd1.insert(2,"x")
print(brd1)
print(brd2)
print(brd3)
elif player1 == 3:
brd2.pop(0)
brd2.insert(0,"x")
print(brd1)
print(brd2)
print(brd3)
elif player1 == 4:
brd2.pop(1)
brd2.insert(1,"x")
print(brd1)
print(brd2)
print(brd3)
elif player1 == 5:
brd2.pop(2)
brd2.insert(2,"x")
print(brd1)
print(brd2)
print(brd3)
elif player1 == 6:
brd3.pop(0)
brd3.insert(0,"x")
print(brd1)
print(brd2)
print(brd3)
elif player1 == 7:
brd3.pop(1)
brd3.insert(1,"x")
print(brd1)
print(brd2)
print(brd3)
elif player1 == 8:
brd3.pop(2)
brd3.insert(2,"x")
print(brd1)
print(brd2)
print(brd3)
play2()
if player2 == player1:
print("You can't both go to the same spot!")
elif player2 == 0:
brd1.pop(0)
brd1.insert(0,"o")
print(brd1)
print(brd2)
print(brd3)
elif player2 == 1:
brd1.pop(1)
brd1.insert(1,"o")
print(brd1)
print(brd2)
print(brd3)
elif player2 == 2:
brd1.pop(2)
brd1.insert(2,"o")
print(brd1)
print(brd2)
print(brd3)
elif player2 == 3:
brd2.pop(0)
brd2.insert(0,"o")
print(brd1)
print(brd2)
print(brd3)
elif player2 == 4:
brd2.pop(1)
brd2.insert(1,"o")
print(brd1)
print(brd2)
print(brd3)
elif player2 == 5:
brd2.pop(2)
brd2.insert(2,"o")
print(brd1)
print(brd2)
print(brd3)
elif player2 == 6:
brd3.pop(0)
brd3.insert(0,"o")
print(brd1)
print(brd2)
print(brd3)
elif player2 == 7:
brd3.pop(1)
brd3.insert(1,"x")
print(brd1)
print(brd2)
print(brd3)
elif player2 == 8:
brd3.pop(2)
brd3.insert(2,"o")
print(brd1)
print(brd2)
print(brd3)
if __name__ == '__main__':
main()
【问题讨论】: