import pygame
pygame.init()
screen = pygame.display.set_mode((300, 300))
pygame.display.set_caption("Крестики-нолики")
board = [
[None, None, None],
[None, None, None],
[None, None, None]
]
def draw_board(surface):
# Очистить экран
surface.fill((255, 255, 255))
# Нарисовать сетку игрового поля
pygame.draw.line(surface, (0, 0, 0), (100, 0), (100, 300), 2)
pygame.draw.line(surface, (0, 0, 0), (200, 0), (200, 300), 2)
pygame.draw.line(surface, (0, 0, 0), (0, 100), (300, 100), 2)
pygame.draw.line(surface, (0, 0, 0), (0, 200), (300, 200), 2)
# Нарисовать крестики и нолики
for row in range(3):
for col in range(3):
if board[row][col] == "X":
x = col * 100 + 50
y = row * 100 + 50
pygame.draw.line(surface, (255, 0, 0), (x - 40, y - 40), (x + 40, y + 40), 4)
pygame.draw.line(surface, (255, 0, 0), (x + 40, y - 40), (x - 40, y + 40), 4)
elif board[row][col] == "O":
x = col * 100 + 50
y = row * 100 + 50
pygame.draw.circle(surface, (0, 0, 255), (x, y), 40, 4)
draw_board(screen)
pygame.display.flip()
def game_is_over():
# Проверить горизонтали
for row in range(3):
if (board[row][0] == board[row][1] == board[row][2]) and (board[row][0] is not None):
return True
# Проверить вертикали
for col in range(3):
if (board[0][col] == board[1][col] == board[2][col]) and (board[0][col] is not None):
return True
# Проверить диагонали
if (board[0][0] == board[1][1] == board[2][2]) and (board[0][0] is not None):
return True
if (board[0][2] == board[1][1] == board[2][0]) and (board[0][2] is not None):
return True
# Проверить ничью
if all([all(row) for row in board]):
return True
return False
game_over = False
turn = "X"
while not game_over:
for event in pygame.event.get():
if event.type == pygame.QUIT:
game_over = True
elif event.type == pygame.MOUSEBUTTONDOWN:
x, y = pygame.mouse.get_pos()
row = y // 100
col = x // 100
if board[row][col] is None:
board[row][col] = turn
if turn == "X":
turn = "O"
else:
turn = "X"
draw_board(screen)
pygame.display.flip()
if game_is_over():
game_over = True
print("Игра окончена.")
else:
if all([cell != None for row in board for cell in row]):
game_over = True
print("Ничья.")
Данный код реализует игру "Крестики-нолики" на Python с использованием библиотеки Pygame.