本文来源吾爱破解论坛
本帖最后由 Vkzhx 于 2020-1-22 18:39 编辑
python小白,自学了一下python,参考书中代码写的井字棋实现,大佬勿喷
[Python] 纯文本查看 复制代码
#一个简单的井字棋游戏,人机对战由random模块实现 import random #游戏需要的函数 def drawbroad(b): print('当前井字棋如下:') print(b[1]+'|'+b[2]+'|'+b[3]) print('-----') print(b[4]+'|'+b[5]+'|'+b[6]) print('-----') print(b[7]+'|'+b[8]+'|'+b[9]) def decide(): r=random.randint(0,1) if r==1: return True #电脑 else: return False #玩家 def select(): print('你选择的棋子,O或X.') s=input().upper() if s=='X': return['X','O'] else: return['O','X'] def iswin(b):#判断电脑或玩家是否胜利 if b[1]==b[2]==b[3]:#最上 if b[1] !='':#判断位置是否为空,若3个位置为空,也会返回True return True if b[4]==b[5]==b[6]:#中间 if b[4] !='': return True if b[7]==b[8]==b[9]:#下面 if b[7] !='': return True if b[1]==b[4]==b[7]:#1 if b[1] !='': return True if b[2]==b[5]==b[8]:#2 if b[2] !='': return True if b[3]==b[6]==b[9]:#3 if b[3] !='': return True if b[1]==b[5]==b[9]:#对角线 if b[1] !='': return True if b[3]==b[5]==b[7]:#对角线 if b[3] !='': return True def computermove(computer,i): while True: w=random.randint(1,9) if i[w]=='': i[w]=computer print('电脑在位置'+str(w)+'下了棋子.') break else: continue#必须在位置为空处生成棋子 def playermove(player,i): while True: print('键入你要填入的位置') w=int(input()) if i[w]=='':#判断输入位置是否有棋子 i[w]=player print('玩家在位置'+str(w)+'下了棋子.') break else: print('位置'+str(w)+'已有'+i[w]+',请重填.') continue #游戏主体 i=['']*10 player,computer=select() times=1 playertimes=1 computertimes=1 if decide(): print('电脑先开始走:') while True: if times==9:#判断平局仍需改进 print('玩家和电脑平局.') break if times%2==0: print('到玩家走了.') playermove(player,i) if iswin(i): print('玩家走了'+str(playertimes)+'次后胜利.') drawbroad(i) break else: times+=1 playertimes+=1 drawbroad(i) else: print('到电脑走了.') computermove(computer,i) if iswin(i): print('电脑走了'+str(computertimes)+'次后胜利.') drawbroad(i) break else: times+=1 computertimes+=1 drawbroad(i) else: print('玩家先开始走,输入1-9位置的随便一个:') while True: if times==9: print('玩家和电脑平局.') break if times%2 !=0: print('到玩家走了') playermove(player,i) if iswin(i): print('玩家走了'+str(playertimes)+'次后胜利.') drawbroad(i) break else: times+=1 playertimes+=1 drawbroad(i) else: print('到电脑走了.') computermove(computer,i) if iswin(i): print('电脑走了'+str(computertimes)+'次后胜利.') drawbroad(i) break else: times+=1 computertimes+=1 drawbroad(i) print('游戏结束,按任意键退出游戏...') Back=input()
版权声明:
本站所有资源均为站长或网友整理自互联网或站长购买自互联网,站长无法分辨资源版权出自何处,所以不承担任何版权以及其他问题带来的法律责任,如有侵权或者其他问题请联系站长删除!站长QQ754403226 谢谢。
- 上一篇: 【Python爬虫】爬取古诗词,按类别采集
- 下一篇: 美女图片爬虫实战--轻松爬取几万张美女图片