我已经为两人制作了井字游戏。我将玩家1和玩家2的选择分别存储在x和y集合中,并检查它们是否存在于获胜条件集合中。我想将其改为单人游戏,但我似乎想不出如何自动化玩家2的操作。
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=['']*10def 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 0def play(): i=0 clear() while i<9: grid() t=int(input("\n玩家1输入")) a[t]='X' x.add(t) if win()==1: print('玩家1获胜') break grid() t=int(input("\n玩家2输入")) a[t]='0' y.add(t) if win()==1: print('玩家2获胜') break i+=2 if win()==0: print("平局") k=input('再玩一次吗?') if k=='y': play()play()
另外,我已经将其上传到GitHub。我没有使用Git,只是上传了文件。如果不使用Git,这是否有用?
https://github.com/sarthakag/Tic-Tac-Toe-Python
回答:
听起来你是在尝试为井字游戏制作一个ai
…你可以尝试使用minimax
算法,示例在这里。希望这对你有帮助!
附注:最好将代码直接放在StackOverflow上