用python写个三子棋游戏

下面是一个简单的三子棋游戏的Python代码示例。在这个游戏中,玩家需要使用鼠标点击来放置棋子,并尽可能地使自己的三个棋子连成一线(横、竖或斜)。

python
复制代码
import pygame  
import random  
  
# 初始化pygame  
pygame.init()  
  
# 设置屏幕大小和标题  
screen_width = 800  
screen_height = 600  
screen = pygame.display.set_mode((screen_width, screen_height))  
pygame.display.set_caption("三子棋游戏")  
  
# 设置颜色  
WHITE = (255, 255, 255)  
BLACK = (0, 0, 0)  
RED = (255, 0, 0)  
GREEN = (0, 255, 0)  
  
# 设置棋盘大小和棋子大小  
board_width = 16  
board_height = 16  
tile_size = 30  
margin = 10  
  
# 创建棋盘和棋子列表  
board = [[0 for _ in range(board_width)] for _ in range(board_height)]  
tiles = []  
for row in range(board_height):  
    for col in range(board_width):  
        x = margin + col * tile_size + tile_size // 2  
        y = margin + row * tile_size + tile_size // 2  
        tiles.append((x, y))  
  
# 游戏主循环  
running = True  
while running:  
    for event in pygame.event.get():  
        if event.type == pygame.QUIT:  
            running = False  
        elif event.type == pygame.MOUSEBUTTONDOWN:  # 如果点击了鼠标左键,则放置棋子并检查是否获胜  
            mouse_x, mouse_y = pygame.mouse.get_pos()  
            row = (mouse_y - margin) // tile_size + 1  
            col = (mouse_x - margin) // tile_size + 1  
            if board[row][col] == 0:  # 如果该位置没有棋子,则放置棋子并检查是否获胜  
                board[row][col] = 1  # 放置白棋子(玩家1)  
                if check_win(board, row, col, 1):  # 检查是否获胜(玩家1)胜出  
                    pygame.font.init()  # 初始化字体模块(如果之前没有初始化)  
                    font = pygame.font.SysFont("Arial", 36)  # 创建字体对象(36号字体)  
                    text = font.render("玩家1胜出!", True, GREEN)  # 创建获胜提示文本对象(绿色字体)  
                    screen.blit(text, (20, 20))  # 在屏幕上显示获胜提示文本(左上角位置)  
                    pygame.display.flip()  # 更新屏幕显示内容  
                    running = False  # 结束游戏循环(获胜)  
                else:  # 如果玩家1没有获胜,则轮到玩家2下棋(交替下棋)  
                    pygame.time.wait(1000)  # 等待1秒钟(等待时间可调整)  
                    board[row][col] = -1  # 放置黑棋子(玩家2)  
                    if check_win(board, row, col, -1):  # 检查是否获胜(玩家2)胜出  
                        pygame.font.init()  # 初始化字体模块(如果之前没有初始化)  
                        font = pygame.font.SysFont("Arial", 36)  # 创建字体对象(36号字体)  
                        text = font.render("玩家2胜出!", True, RED)  # 创建获胜提示文本对象(红色字体)  
                        screen.blit(text, (20, 20))  # 在屏幕上显示获胜提示文本(左上角位置)  
                        pygame.display.flip()  # 更新屏幕显示内容  
                        running = False  # 结束游戏循环(获胜)  
            else:  # 如果该位置已经有棋子,则不放置棋子(无法重复下棋)  
                pygame.font.init()  # 初始化字体模块(如果之前没有初始化)  
                font = pygame.font.SysFont("Arial", 24)  # 创建字体对象(24号字体)  
                text

你可能感兴趣的:(python,游戏,pygame)