caihuang 发表于 2023-3-16 21:41

python写了一个五子棋小游戏

本帖最后由 wushaominkk 于 2023-3-17 08:37 编辑

# coding:UTF-8
# @Time : 2023/3/16 21:17
# @Autor : 菜皇
# @file : damo1.py
# @SOFTWARE : PyCharm

import sys

BOARD_SIZE = 15

# 初始化棋盘
def init_board():
    board = [['.' for _ in range(BOARD_SIZE)] for _ in range(BOARD_SIZE)]
    return board

# 绘制棋盘
def print_board(board):
    for row in board:
      print(" ".join(row))
    print()

# 检查是否有玩家获胜
def check_winner(board, player):
    for x in range(BOARD_SIZE):
      for y in range(BOARD_SIZE):
            if board == player:
                # 水平方向
                if y <= BOARD_SIZE - 5 and all(board == player for i in range(5)):
                  return True
                # 垂直方向
                if x <= BOARD_SIZE - 5 and all(board == player for i in range(5)):
                  return True
                # 主对角线方向
                if x <= BOARD_SIZE - 5 and y <= BOARD_SIZE - 5 and all(board == player for i in range(5)):
                  return True
                # 副对角线方向
                if x >= 4 and y <= BOARD_SIZE - 5 and all(board == player for i in range(5)):
                  return True
    return False

def main():
    board = init_board()
    print_board(board)
    players = ['X', 'O']
    current_turn = 0

    while True:
      try:
            x, y = map(int,
                     input("玩家 {} 的回合,请输入落子坐标(逗号分隔,0-14):".format(players)).split(','))
      except ValueError:
            print("输入错误,请输入逗号分隔的两个数字(0-14)。")
            continue

      if x < 0 or x >= BOARD_SIZE or y < 0 or y >= BOARD_SIZE:
            print("坐标超出范围,请输入0-14之间的数字。")
            continue

      if board != '.':
            print("该位置已有棋子,请重新输入。")
            continue

      board = players
      print_board(board)

      if check_winner(board, players):
            print("恭喜玩家 {} 获胜!".format(players))
            break

      current_turn = (current_turn + 1) % 2

if __name__ == "__main__":
    main()



想搞成一个窗口小游戏,还不会搞,没学到{:1_907:}

苏紫方璇 发表于 2023-3-17 01:47

推荐使用这种方式插入代码
【公告】发帖代码插入以及添加链接教程(有福利)
https://www.52pojie.cn/thread-713042-1-1.html
(出处: 吾爱破解论坛)

caihuang 发表于 2023-3-17 08:51

苏紫方璇 发表于 2023-3-17 01:47
推荐使用这种方式插入代码
【公告】发帖代码插入以及添加链接教程(有福利)
https://www.52pojie.cn/thr ...

好东西,多谢{:301_993:}

ganon 发表于 2023-3-17 09:03

思路值得借鉴

kiikki 发表于 2023-3-17 09:12

优秀,支持原创

LZJ123lzj 发表于 2023-3-17 09:41

牛呀,支持原创

Easonll 发表于 2023-3-17 09:52

不错的思路,借鉴下,学习学习

echoaku 发表于 2023-3-17 09:52

支持一下大佬

quakewg 发表于 2023-3-17 10:02

思路清晰,值得学习

linczh 发表于 2023-3-17 10:06

感谢分享,支持原创!
页: [1] 2 3
查看完整版本: python写了一个五子棋小游戏