Python 井字棋三连棋游戏代码,python井字棋代码,Python 井字棋三连
Python 井字棋三连棋游戏代码,python井字棋代码,Python 井字棋三连
Python 井字棋三连棋游戏代码。下边代码是基于python 3.2的,这段码比较简单,没有复杂的语法,小伙伴们参考着吧,适合初学者。
注:落子得位置和小键盘一致。电脑还是很厉害的。
import randomdef drawBroad(broad): print('-----------') print(' '+broad[7]+' | '+broad[8]+' | '+broad[9]) print('-----------') print(' '+broad[4]+' | '+broad[5]+' | '+broad[6]) print('-----------') print(' '+broad[1]+' | '+broad[2]+' | '+broad[3]) print('-----------')def chooseLetter(): print('before the game ,please choose the letter "X" or "O"("X will be first"): ') letter = input().strip().upper()[0] print("you choose :"+letter) if (letter == 'X'): return 'X' elif (letter == 'O'): return 'O' else: chooseLetter()#if has win return letter#else return Ndef checkWin(broad,letter): if ((broad[1] ==letter and broad[2] ==letter and broad[3] ==letter ) or (broad[4] ==letter and broad[5] ==letter and broad[6] ==letter ) or (broad[7] ==letter and broad[8] ==letter and broad[9] ==letter ) or (broad[1] ==letter and broad[4] ==letter and broad[7] ==letter ) or (broad[2] ==letter and broad[5] ==letter and broad[8] ==letter ) or (broad[3] ==letter and broad[6] ==letter and broad[9] ==letter ) or (broad[7] ==letter and broad[5] ==letter and broad[3] ==letter ) or (broad[1] ==letter and broad[5] ==letter and broad[9] ==letter ) ): return letter else: return 'N'#www.iplaypy.comdef hasLetter(broad,location): return broad[location] != ' '# return freeListdef FreeList(broad): freeList=[] for i in range(1,10): if(not hasLetter(broad,i)): freeList.append(i) return freeListdef PlayerMove (broad,letter): if(FreeList(broad) == []): print("tie !!!") return 'T' playlocation = int(input("your turn:").strip()[0]) print("***in PlayerMove() ***") #if (playlocation in list(range(1,10))and not hasLetter(broad,playlocation)): if(playlocation in FreeList(broad)): broad[playlocation] = letter drawBroad(broad) if(checkWin(broad,letter)!= 'N'): print("you win") return letter else: PlayerMove(broad,letter) def NextPlay(letter): if(letter == 'X'): return 'O' else: return 'X'def ComputerMove(broad, computerLetter): #1,try to Computer win #2,try to break player win #3,random location if(FreeList(broad) == []): print("tie !!!") return 'T' print("***in ComputerMove() ***") if(WillWin(broad,computerLetter)!=0): broad[WillWin(broad,computerLetter)]=computerLetter print("computer win") return computerLetter elif(WillWin(broad,NextPlay(computerLetter)!=0)): broad[WillWin(broad,NextPlay(computerLetter))]=computerLetter else: broad[random.choice(FreeList(broad))]=computerLetter drawBroad(broad)# copy boarddef BoardTemp(board): boardTemp = {} for i in range(1,10): boardTemp[i] = board[i] return boardTemp# if will win return location# else return def WillWin(board, Letter): boardTemp=BoardTemp(board) for i in FreeList(board): boardTemp[i]=Letter if(checkWin(boardTemp,Letter) != 'N'): #drawBroad(boardTemp) return i else: boardTemp[i]=" " return 0def GameInit(): broad = {} for i in range(1,10): broad[i]=' ' drawBroad(broad) return broad def GameBody(board,letter): templetter=letter rs = '' while(True): rs = ComputerMove(board, templetter) if(rs is not None): break templetter = NextPlay(templetter) rs = PlayerMove(board,templetter) if(rs is not None): break templetter = NextPlay(templetter) return rs def GameStart(): broad = GameInit() playerletter = chooseLetter() if(playerletter == 'X'): PlayerMove(broad,playerletter) rs = GameBody(broad,NextPlay(playerletter)) print("rs:"+rs) print(FreeList(broad)) GameStart()
编橙之家文章,
相关内容
- 遇到python编码错误要怎么解决,遇到python编码错误,这只
- Python3.X绿色精简版IDLE,python3.xidle,这是适用于Python3
- Django模板中css与javascript的应用,djangocss,学习Python一定
- 用python方法获取电视节目表单的代码,python电视节目表
- 腾讯读书转TXT文件下载python代码,txtpython,这里是用腾讯
- 看看python是如何解决三赌徒问题的,python赌徒,关于Py
- 完成自动查找翻译单词的python源代码,python源代码,下面
- 从糗事百科下载数据的python方法示例,糗事python,从糗事
- 下载序列并保存到文本中的方法,序列保存文本方法
- Python方法生成华容道所有开局,python华容道开局,编橙之
评论关闭