井字棋Pygame思路参考(不完全)

import pygame
import sys

# 初始化pygame
pygame.init()

# 创建屏幕对象
screen = pygame.display.set_mode((300, 300))

# 设置窗口标题
pygame.display.set_caption('井字棋')

# 创建一个列表来存储每个格子的状态,0表示空,1表示玩家1,2表示玩家2
grid = [[0 for _ in range(3)] for _ in range(3)]

# 定义格子的大小
grid_size = 100

# 定义玩家的当前移动
current_player = 1

# 定义游戏是否结束
game_over = False

while not game_over:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            sys.exit()
        elif not game_over and event.type == pygame.MOUSEBUTTONDOWN:
            # 获取鼠标位置
            x, y = pygame.mouse.get_pos()
            # 计算鼠标点击的格子位置
            row, col = y // grid_size, x // grid_size
            # 如果该格子是空的,那么玩家可以在该格子上移动
            if grid[row][col] == 0:
                grid[row][col] = current_player
                # 切换到另一个玩家
                current_player = 3 - current_player

    # 填充背景色
    screen.fill((255, 255, 255))

    # 绘制格子
    for i in range(3):
        for j in range(3):
            color = (0, 0, 0) if grid[i][j] == 0 else (255, 0, 0) if grid[i][j] == 1 else (0, 0, 255)
            pygame.draw.rect(screen, color, (j * grid_size, i * grid_size, grid_size, grid_size), 0)

    # 检查是否有玩家获胜
    for row in range(3):
        if grid[row][0] == grid[row][1] == grid[row][2] != 0:
            game_over = True
    for col in range(3):
        if grid[0][col] == grid[1][col] == grid[2][col] != 0:
            game_over = True
    if grid[0][0] == grid[1][1] == grid[2][2] != 0:
        game_over = True
    if grid[0][2] == grid[1][1] == grid[2][0] != 0:
        game_over = True

    # 更新屏幕
    pygame.display.flip()
  • Avatar photo

    宁妄

    一个热爱自然却被困在代码世界的“人”

    Related Posts

    pygame,填充效果

    纯色实心圆 再来个矩形的渐变

    函数的实际应用

    函数 格式: 关键字 函数名(): 举个例子,我要做一个小猫…

    发表回复

    您的邮箱地址不会被公开。 必填项已用 * 标注