python实现简单井字棋游戏
井字棋,英文名叫Tic-Tac-Toe,是一种在3*3格子上进行的连珠游戏,和五子棋类似,由于棋盘一般不画边框,格线排成井字故得名。游戏需要的工具仅为纸和笔,然后由分别代表O和X的两个游戏者轮流在格子里留下标记(一般来说先手者为X),任意三个标记形成一条直线,则为获胜。
游戏的难点在于,如何判断连接成了一条线;横、竖、斜三个方向;
游戏的代码:
#!/usr/bin/envpython3 #-*-coding:utf-8-*- u''' Createdon2019年4月13日 @author:wuluo ''' __author__='wuluo' __version__='1.0.0' __company__=u'重庆交大' __updated__='2019-04-13' #创建井字棋的程序 definitBoard(): globalboard#调用全局的board board=[None]*3 print("井字棋:") foriinrange(len(board)): board[i]=["+"]*3 #打印井字棋的程序 defprintBoard(): globalboard foriinrange(len(board)): forjinrange(len(board[i])): print(board[i][j],end="") print("") #开始下棋的程序 defstartGame(): globalboard player=0 whileisGameContinue(): ifplayer<=8: ifplayer%2==0: #甲方下棋 print("==>黑方下棋") ifnotplayChess("x"): continue else: #乙方下棋 print("==>白方下棋") ifnotplayChess("○"): continue player+=1 else: print("平局") break defplayChess(chess): #获取位置 x=int(input("==>X="))-1 y=int(input("==>Y="))-1 ifboard[x][y]=="+": board[x][y]=chess printBoard() returnTrue#落子成功 else: print("==>已有棋子请重新落子\a") printBoard() returnFalse#落子失败 defisGameContinue(): foriinrange(len(board)): forjinrange(len(board[i])): ifboard[i][j]!="+": #横向 ifj==0: ifboard[i][j]==board[i][j+1]==board[i][j+2]: whoWin(i,j) returnFalse #竖向 ifi==0: ifboard[i][j]==board[i+1][j]==board[i+2][j]: whoWin(i,j) returnFalse #正斜 ifi==0andj==0: ifboard[i][j]==board[i+1][j+1]==board[i+2][j+2]: whoWin(i,j) returnFalse #反斜 ifi==2andj==0: ifboard[i][j]==board[i-1][j+1]==board[i-2][j+2]: whoWin(i,j) returnFalse returnTrue defwhoWin(i,j): ifboard[i][j]=="x": print("黑方胜!") else: print("白方胜!") foriinrange(3): print("win") classmain(): board=[] initBoard() printBoard() startGame() if__name__=="__main__": main()
游戏结果:
还有一种结果是平局:
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。