云盟

标题: python制作简单五子棋游戏 [打印本页]

作者: 云盟    时间: 2020-9-30 13:15
标题: python制作简单五子棋游戏

本文实例为大家分享了python五子棋游戏的具体代码,供大家参考,具体内容如下

#五子棋
‘''
矩阵做棋盘 16*16 “+”

打印棋盘 for for

游戏是否结束

开始下棋 while 游戏是否结束:
黑白交替 player=0 p%2==0 ==1 p+=1
下棋动作一样 但是棋子不一样
‘''

代码


  1. #创建棋盘的程序
  2. def initBoard():
  3. global board #调用全局的board
  4. board=[None]*16
  5. for i in range(len(board)):
  6. board[i]=["+ "]*16
  7. #打印棋盘的程序
  8. def printBoard():
  9. global board
  10. for i in range(len(board)):
  11. for j in range(len(board[i])):
  12.   print(board[i][j],end=" ")
  13. print("")
  14. #开始下棋的程序
  15. def startGame():
  16. global board
  17. player=0
  18. while isGameContinue():
  19. if player%2==0:
  20.   #黑方下棋
  21.   print("==>黑方下棋")
  22.   if not playChess("●"):
  23.   continue
  24. else:
  25.   #白方下棋
  26.   print("==>白方下棋")
  27.   if not playChess("○"):
  28.   continue
  29. player+=1

  30. def playChess(chess):
  31. #获取位置
  32. x=int(input("==> X="))-1
  33. y=int(input("==> Y="))-1
  34. if board[x][y]=="+ ":
  35. board[x][y]=chess
  36. printBoard()
  37. return True #落子成功
  38. else:
  39. print("==> 已有棋子 请重新落子\a")
  40. printBoard()
  41. return False#落子失败
  42. def isGameContinue():
  43. for i in range(len(board)):
  44. for j in range(len(board[i])):
  45.   if board[i][j]!="+ ":
  46.   #横向
  47.   if j<=11:
  48.    if board[i][j]==board[i][j+1]==board[i][j+2]==board[i][j+3]==board[i][j+4]:
  49.    whoWin(i,j)
  50.    return False
  51.   #竖向
  52.   if i<=11:
  53.    if board[i][j]==board[i+1][j]==board[i+2][j]==board[i+3][j]==board[i+4][j]:
  54.    whoWin(i,j)
  55.    return False
  56.   #反斜
  57.   if i<=11 and j<=11:
  58.    if board[i][j]==board[i+1][j+1]==board[i+2][j+2]==board[i+3][j+3]==board[i+4][j+4]:
  59.    whoWin(i,j)
  60.    return False
  61.   #正斜
  62.   if i>=4 and j<=11:
  63.    if board[i][j]==board[i-1][j+1]==board[i-2][j+2]==board[i-3][j+3]==board[i-4][j+4]:
  64.    whoWin(i,j)
  65.    return False
  66. return True
  67. def whoWin(i,j):
  68. if board[i][j]=="●":
  69. print("黑方胜!")
  70. else:
  71. print("白方胜!")
  72. for i in range(10):
  73. print("\a")
  74. board=[]
  75. initBoard()
  76. printBoard()
  77. startGame()
复制代码

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持亿速云。







欢迎光临 云盟 (http://www.mcxt.com/) Powered by Discuz! X3.4