所以现在我写了一个简单的井字游戏。我甚至没有使用我所做的所有功能,但我的问题是:
我如何判断玩家是否在已经有1或2的地方放置1或2,我想我知道怎么做,但是如果他们输入非法字符或试图覆盖已经放置的1或2,我如何才能将它们放回“输入你的号码”提示符。在
还有没有更紧凑的方法来实现这一点?在
游戏代码如下:nr = [0,0,0,0,0,0,0,0,0]
keepGoing = True
def checkP1():
if nr[0] and nr[1] and nr[2] or nr[3] and nr[4] and nr[5] or nr[6] and nr[7] and nr[8] or nr[0] and nr[3] and \
nr[6] or nr[1] and nr[4] and nr[7] or nr[2] and nr[5] and nr[8] or nr[0] and nr[4] and nr[8] or nr[2] and nr[4] and nr[6] == 1:
print("P1 Wins")
keepGoing = False
return keepGoing
def checkP2():
if nr[0] and nr[1] and nr[2] or nr[3] and nr[4] and nr[5] or nr[6] and nr[7] and nr[8] or nr[0] and nr[3] and \
nr[6] or nr[1] and nr[4] and nr[7] or nr[2] and nr[5] and nr[8] or nr[0] and nr[4] and nr[8] or nr[2] and nr[4] and nr[6] == 2:
print("P2 Wins")
keepGoing = False
return keepGoing
def Game():
while keepGoing:
PrintBoard()
in1 = 0
in2 = 0
in1 = input("Please enter the number of the position you want to put your symbol P1.")
nr[int(in1)-1] = 1
check = checkP1()
if check == 0:
PrintBoard()
break
in2 = input("Please enter the number of the position you want to put your symbol P2.")
check = checkP2()
if check == 0:
PrintBoard()
break
nr[int(in2)-1] = 2
def PrintBoard():
print("",nr[0],nr[1],nr[2],"\n",nr[3],nr[4],nr[5],"\n",nr[6],nr[7],nr[8])
def Reset():
nr = [0,0,0,0,0,0,0,0,0]
keepGoing = True