学堂 学堂 学堂公众号手机端

Python如何制作五子棋棋盘并判断下子

lewis 6年前 (2019-07-10) 阅读数 8 #技术
今天小编跟大家讲解下有关“Python如何制作五子棋棋盘并判断下子”的内容 ,相信小伙伴们对这个话题应该有所关注吧,小编也收集到了相关资料,希望小伙伴们看了有所帮助。
      



 

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

# 制作一个棋盘
"""
++++++++++
++++++++++
++++++++++
++++++++++
"""


def createBoard():
  board = []
  for i in range(15):
    board.append(["+"] * 15)
  return board


def printBoard():# print(" ", end="")
  for i in range(1, 16):
    number = str(i).rjust(3)
    print(number, end="")
  print()#打印列号之后换行
  for i in range(15):
    number = str(i + 1).ljust(3)#注意这个函数,是将行号每个都变成左对齐,占3位,以实现棋盘对齐功能
    print(number, end="")#打印行号
    for j in range(15):
      print(board[i][j], end=" ")
    print()


def isGameOver():
  count = 0
  # 先判断连续
  for x in range(15):
    for y in range(15):
      if board[x][y] != "+":
        count += 1
        # 向右
        if y < 11:
          flag = True #表示默认游戏结束
          for c in range(y + 1, y + 5):
            if board[x][y] != board[x][c]:
              flag = False
              break
          if flag:
            if board[x][y] == "●":
              print(">>>黑方胜!")
            else :
              print(">>>白方胜!")
            return True; # 表示游戏结束
        # 向下
        if x < 11:
          if board[x][y] == board[x+1][y] == board[x+2][y] == board[x+3][y] == board[x+4][y]:
            if board[x][y] == "●":
              print(">>>黑方胜!")
            else :
              print(">>>白方胜!")
            return True
        # 向右下
        if x < 11 and y < 11:
          if board[x][y] == board[x+1][y+1] == board[x+2][y+2] == board[x+3][y+3] == board[x+4][y+4]:
            if board[x][y] == "●":
              print(">>>黑方胜!")
            else :
              print(">>>白方胜!")
            return True
        # 向右上
        if x > 3 and y < 11:
          if board[x][y] == board[x-1][y+1] == board[x-2][y+2] == board[x-3][y+3] == board[x-4][y+4]:
            if board[x][y] == "●":
              print(">>>黑方胜!")
            else :
              print(">>>白方胜!")
            return True
  # 再判断和棋
  if count == 15 ** 2:
    print(">>>和棋!")
    return True
  return False#如果以上连棋都没出现就游戏继续


def chess(c):
  x, y = eval(input("请输入坐标:"))
  x -= 1
  y -= 1
  if board[x][y] == "+":
    board[x][y] = c
    return True
  else:
    print(">>>此处已有棋子,请重新下棋!")
    return False


# 程序的开始
board = createBoard();
printBoard()
player = 0
while not isGameOver():#游戏继续的操作
  if player % 2 == 0:
    print(">>>请黑方下棋,", end="")
    if not chess("●"):
      continue
  else:
    print(">>>请白方下棋,", end="")
    if not chess("○"):
      continue
  printBoard()
  player += 1
print(">>>游戏结束!")

五子棋胜局判断的根据所在如上图。


这篇关于“Python如何制作五子棋棋盘并判断下子”的文章就介绍到这了,更多相关的内容,欢迎关注博信,小编将为大家输出更多高质量的实用文章!
版权声明

本文仅代表作者观点,不代表博信信息网立场。

热门