import pygame
import random
import time
pygame.init()
# Окно программы
WIDTH = 1000
HEIGHT = 800
screen = pygame.display.set_mode((WIDTH, HEIGHT))
clock = pygame.time.Clock()
FPS = 30
# Переменные для ракеток
x_1 = 0
y_1 = 300
x_2 = WIDTH - 20
y_2 = 300
width = 20
height = 180
speed = 8
flag = 0
flag_2 = 0
my_font = pygame.font.SysFont(None,35)
text = my_font.render("правая сторона победила", False, (100, 100, 255))
text1 = my_font.render("левая сторона победила", False, (255, 100, 100))
# Переменные для мячика
flag_x = 1 # направление мяча по x
flag_y = 1 # направление мяча по y
speed_1 = 10 # скорость мяча
x = WIDTH // 2
y = HEIGHT // 2
R = 20
color_circle = (random.randint(0, 255), random.randint(0, 255), random.randint(0, 255))
# Игровой цикл
game_run = True
while game_run:
# Обработка событий
for event in pygame.event.get():
if event.type == pygame.QUIT:
game_run = False
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_w:
flag = -1
if event.key == pygame.K_s:
flag = 1
if event.key == pygame.K_UP:
flag_2 = -1
if event.key == pygame.K_DOWN:
flag_2 = 1
if event.type == pygame.KEYUP:
if event.key == pygame.K_w or event.key == pygame.K_s:
flag = 0
if event.key == pygame.K_UP or event.key == pygame.K_DOWN:
flag_2 = 0
# Логика ракеток
y_1 += speed * flag
y_2 += speed * flag_2
# Ограничения, чтобы ракетки не выходили за границы
y_1 = max(0, min(HEIGHT - height, y_1))
y_2 = max(0, min(HEIGHT - height, y_2))
# Логика мяча
x += speed_1 * flag_x
y += speed_1 * flag_y
# Отскок мяча от верхней и нижней границы
if y - R <= 0:
flag_y = 1
if y + R >= HEIGHT:
flag_y = -1
# Отскок мяча от левой ракетки
if (x - R < x_1 + width) and (y > y_1) and (y < y_1 + height) and (flag_x < 0):
flag_x = 1
color_circle = (random.randint(0, 255), random.randint(0, 255), random.randint(0, 255)) # случайный цвет мяча
# Отскок мяча от правой ракетки
if (x + R > x_2) and (y > y_2) and (y < y_2 + height) and (flag_x > 0):
flag_x = -1
color_circle = (random.randint(0, 255), random.randint(0, 255), random.randint(0, 255)) # случайный цвет мяча
# Отрисовка
screen.fill((0, 0, 0))
if x - R <= 0:
flag_x = 0
flag_y = 0
screen.blit(text,(350,350))
speed = 0
if x + R >= WIDTH:
flag_x = 0
flag_y = 0
screen.blit(text1,(350,350))
speed = 0
pygame.draw.circle(screen, color_circle, (x, y), R)
pygame.draw.rect(screen, (255, 0, 0), (x_1, y_1, width, height))
pygame.draw.rect(screen, (0, 0, 255), (x_2, y_2, width, height))
pygame.display.flip()
clock.tick(FPS)
pygame.quit()