构建单人井字游戏
Building a single player Tic-Tac-Toe
我已经为 2 位玩家制作了 Tic-Tac-Toe。我将 P1 和 P2 的选择存储在 x 和 y 集中,并检查它们是否存在于获胜条件集中。
我想让它成为单人游戏。我好像想不出如何使P2自动化。
x=set()
y=set()
b=[x,y]
win_con=({0,1,2},{3,4,5},{6,7,8},{0,4,8},{2,4,6},{0,3,6},{1,4,7},{2,5,8})
a=['']*10
def clear():
for i in range(0,10):
a[i]=i
x.clear()
y.clear()
def grid():
for x in range(0,3):
for y in range(0,3):
if y==2:
print(a[3*x+y],end='')
else:
print(a[3*x+y],'|',end='')
if x!=2:
print('\n--+--+--')
def win():
for i in range(0,2):
if b[i] in win_con:
return 1
return 0
def play():
i=0
clear()
while i<9:
grid()
t=int(input("\nPlayer 1 enters"))
a[t]='X'
x.add(t)
if win()==1:
print('Player 1 wins')
break
grid()
t=int(input("\nPlayer 2 enters"))
a[t]='0'
y.add(t)
if win()==1:
print('Player 2 wins')
break
i+=2
if win()==0:
print("Tie")
k=input('Play again?')
if k=='y':
play()
play()
此外,我将其添加到 github。我没有使用 git,只是上传了文件。它只有在我使用 git 时才有用吗?
听起来您正在尝试为井字游戏制作 ai
...
您可以尝试使用 minimax
算法来执行此操作,例如 here。希望这对您有所帮助!
PS:It 最好把代码放在 Whosebug 上
我已经为 2 位玩家制作了 Tic-Tac-Toe。我将 P1 和 P2 的选择存储在 x 和 y 集中,并检查它们是否存在于获胜条件集中。 我想让它成为单人游戏。我好像想不出如何使P2自动化。
x=set()
y=set()
b=[x,y]
win_con=({0,1,2},{3,4,5},{6,7,8},{0,4,8},{2,4,6},{0,3,6},{1,4,7},{2,5,8})
a=['']*10
def clear():
for i in range(0,10):
a[i]=i
x.clear()
y.clear()
def grid():
for x in range(0,3):
for y in range(0,3):
if y==2:
print(a[3*x+y],end='')
else:
print(a[3*x+y],'|',end='')
if x!=2:
print('\n--+--+--')
def win():
for i in range(0,2):
if b[i] in win_con:
return 1
return 0
def play():
i=0
clear()
while i<9:
grid()
t=int(input("\nPlayer 1 enters"))
a[t]='X'
x.add(t)
if win()==1:
print('Player 1 wins')
break
grid()
t=int(input("\nPlayer 2 enters"))
a[t]='0'
y.add(t)
if win()==1:
print('Player 2 wins')
break
i+=2
if win()==0:
print("Tie")
k=input('Play again?')
if k=='y':
play()
play()
此外,我将其添加到 github。我没有使用 git,只是上传了文件。它只有在我使用 git 时才有用吗?
听起来您正在尝试为井字游戏制作 ai
...
您可以尝试使用 minimax
算法来执行此操作,例如 here。希望这对您有所帮助!
PS:It 最好把代码放在 Whosebug 上