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(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。