π ΠΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΠΏΠΈΠ½Π³ ΠΏΠΎΠ½Π³ Π½Π° Python: ΠΏΡΠΎΡΡΠΎΠΉ Π³Π°ΠΉΠ΄ ΠΈ ΠΏΡΠΈΠΌΠ΅ΡΡ ΠΊΠΎΠ΄Π°
ΠΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΠΏΠΈΠ½Π³-ΠΏΠΎΠ½Π³ Π½Π° Python
ΠΠ»Ρ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΠΈΠ³ΡΡ "ΠΏΠΈΠ½Π³-ΠΏΠΎΠ½Π³" Π½Π° Python, Π²Π°ΠΌ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ pygame. ΠΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ ΠΏΡΠΎΡΡΠΎΠΉ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ:
import pygame
import random
# ΠΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Pygame
pygame.init()
# Π Π°Π·ΠΌΠ΅Ρ ΠΎΠΊΠ½Π°
ΡΠΈΡΠΈΠ½Π° = 800
Π²ΡΡΠΎΡΠ° = 400
# Π¦Π²Π΅ΡΠ°
Π±Π΅Π»ΡΠΉ = (255, 255, 255)
ΡΠ΅ΡΠ½ΡΠΉ = (0, 0, 0)
# ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΡΠ°ΠΊΠ΅ΡΠΎΠΊ
ΡΠΈΡΠΈΠ½Π°_ΡΠ°ΠΊΠ΅ΡΠΊΠΈ = 10
Π²ΡΡΠΎΡΠ°_ΡΠ°ΠΊΠ΅ΡΠΊΠΈ = 60
ΡΠΊΠΎΡΠΎΡΡΡ_ΡΠ°ΠΊΠ΅ΡΠΊΠΈ = 5
# ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΌΡΡΠ°
ΡΠ°Π΄ΠΈΡΡ_ΠΌΡΡΠ° = 10
ΡΠΊΠΎΡΠΎΡΡΡ_ΠΌΡΡΠ° = 5
# Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΎΠΊΠ½Π°
ΠΎΠΊΠ½ΠΎ = pygame.display.set_mode((ΡΠΈΡΠΈΠ½Π°, Π²ΡΡΠΎΡΠ°))
pygame.display.set_caption("ΠΠΈΠ½Π³-ΠΏΠΎΠ½Π³")
# Π Π°ΠΊΠ΅ΡΠΊΠΈ ΠΈΠ³ΡΠΎΠΊΠΎΠ²
ΡΠ°ΠΊΠ΅ΡΠΊΠ°_1 = pygame.Rect(50, Π²ΡΡΠΎΡΠ° // 2 - Π²ΡΡΠΎΡΠ°_ΡΠ°ΠΊΠ΅ΡΠΊΠΈ // 2, ΡΠΈΡΠΈΠ½Π°_ΡΠ°ΠΊΠ΅ΡΠΊΠΈ, Π²ΡΡΠΎΡΠ°_ΡΠ°ΠΊΠ΅ΡΠΊΠΈ)
ΡΠ°ΠΊΠ΅ΡΠΊΠ°_2 = pygame.Rect(ΡΠΈΡΠΈΠ½Π° - 50 - ΡΠΈΡΠΈΠ½Π°_ΡΠ°ΠΊΠ΅ΡΠΊΠΈ, Π²ΡΡΠΎΡΠ° // 2 - Π²ΡΡΠΎΡΠ°_ΡΠ°ΠΊΠ΅ΡΠΊΠΈ // 2, ΡΠΈΡΠΈΠ½Π°_ΡΠ°ΠΊΠ΅ΡΠΊΠΈ, Π²ΡΡΠΎΡΠ°_ΡΠ°ΠΊΠ΅ΡΠΊΠΈ)
# ΠΡΡ
ΠΌΡΡ = pygame.Rect(ΡΠΈΡΠΈΠ½Π° // 2 - ΡΠ°Π΄ΠΈΡΡ_ΠΌΡΡΠ° // 2, Π²ΡΡΠΎΡΠ° // 2 - ΡΠ°Π΄ΠΈΡΡ_ΠΌΡΡΠ° // 2, ΡΠ°Π΄ΠΈΡΡ_ΠΌΡΡΠ°, ΡΠ°Π΄ΠΈΡΡ_ΠΌΡΡΠ°)
# Π‘ΠΊΠΎΡΠΎΡΡΡ ΡΠ°ΠΊΠ΅ΡΠΎΠΊ
ΡΠΊΠΎΡΠΎΡΡΡ_ΡΠ°ΠΊΠ΅ΡΠΊΠΈ_1 = 0
ΡΠΊΠΎΡΠΎΡΡΡ_ΡΠ°ΠΊΠ΅ΡΠΊΠΈ_2 = 0
# ΠΠ»Π°Π²Π½ΡΠΉ ΡΠΈΠΊΠ» ΠΈΠ³ΡΡ
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
quit()
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_w:
ΡΠΊΠΎΡΠΎΡΡΡ_ΡΠ°ΠΊΠ΅ΡΠΊΠΈ_1 = -ΡΠΊΠΎΡΠΎΡΡΡ_ΡΠ°ΠΊΠ΅ΡΠΊΠΈ
if event.key == pygame.K_s:
ΡΠΊΠΎΡΠΎΡΡΡ_ΡΠ°ΠΊΠ΅ΡΠΊΠΈ_1 = ΡΠΊΠΎΡΠΎΡΡΡ_ΡΠ°ΠΊΠ΅ΡΠΊΠΈ
if event.key == pygame.K_UP:
ΡΠΊΠΎΡΠΎΡΡΡ_ΡΠ°ΠΊΠ΅ΡΠΊΠΈ_2 = -ΡΠΊΠΎΡΠΎΡΡΡ_ΡΠ°ΠΊΠ΅ΡΠΊΠΈ
if event.key == pygame.K_DOWN:
ΡΠΊΠΎΡΠΎΡΡΡ_ΡΠ°ΠΊΠ΅ΡΠΊΠΈ_2 = ΡΠΊΠΎΡΠΎΡΡΡ_ΡΠ°ΠΊΠ΅ΡΠΊΠΈ
if event.type == pygame.KEYUP:
if event.key == pygame.K_w or event.key == pygame.K_s:
ΡΠΊΠΎΡΠΎΡΡΡ_ΡΠ°ΠΊΠ΅ΡΠΊΠΈ_1 = 0
if event.key == pygame.K_UP or event.key == pygame.K_DOWN:
ΡΠΊΠΎΡΠΎΡΡΡ_ΡΠ°ΠΊΠ΅ΡΠΊΠΈ_2 = 0
# ΠΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ ΡΠ°ΠΊΠ΅ΡΠΎΠΊ
ΡΠ°ΠΊΠ΅ΡΠΊΠ°_1.y += ΡΠΊΠΎΡΠΎΡΡΡ_ΡΠ°ΠΊΠ΅ΡΠΊΠΈ_1
ΡΠ°ΠΊΠ΅ΡΠΊΠ°_2.y += ΡΠΊΠΎΡΠΎΡΡΡ_ΡΠ°ΠΊΠ΅ΡΠΊΠΈ_2
# ΠΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΡ ΡΠ°ΠΊΠ΅ΡΠΎΠΊ
if ΡΠ°ΠΊΠ΅ΡΠΊΠ°_1.y <= 0:
ΡΠ°ΠΊΠ΅ΡΠΊΠ°_1.y = 0
if ΡΠ°ΠΊΠ΅ΡΠΊΠ°_1.y >= Π²ΡΡΠΎΡΠ° - Π²ΡΡΠΎΡΠ°_ΡΠ°ΠΊΠ΅ΡΠΊΠΈ:
ΡΠ°ΠΊΠ΅ΡΠΊΠ°_1.y = Π²ΡΡΠΎΡΠ° - Π²ΡΡΠΎΡΠ°_ΡΠ°ΠΊΠ΅ΡΠΊΠΈ
if ΡΠ°ΠΊΠ΅ΡΠΊΠ°_2.y <= 0:
ΡΠ°ΠΊΠ΅ΡΠΊΠ°_2.y = 0
if ΡΠ°ΠΊΠ΅ΡΠΊΠ°_2.y >= Π²ΡΡΠΎΡΠ° - Π²ΡΡΠΎΡΠ°_ΡΠ°ΠΊΠ΅ΡΠΊΠΈ:
ΡΠ°ΠΊΠ΅ΡΠΊΠ°_2.y = Π²ΡΡΠΎΡΠ° - Π²ΡΡΠΎΡΠ°_ΡΠ°ΠΊΠ΅ΡΠΊΠΈ
# ΠΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ ΠΌΡΡΠ°
ΠΌΡΡ.x += ΡΠΊΠΎΡΠΎΡΡΡ_ΠΌΡΡΠ°
ΠΌΡΡ.y += ΡΠΊΠΎΡΠΎΡΡΡ_ΠΌΡΡΠ°
# ΠΡΡΠΊΠΎΠΊ ΠΌΡΡΠ° ΠΎΡ ΠΊΡΠ°Π΅Π² ΡΠΊΡΠ°Π½Π°
if ΠΌΡΡ.y <= 0 or ΠΌΡΡ.y >= Π²ΡΡΠΎΡΠ° - ΡΠ°Π΄ΠΈΡΡ_ΠΌΡΡΠ°:
ΡΠΊΠΎΡΠΎΡΡΡ_ΠΌΡΡΠ° = -ΡΠΊΠΎΡΠΎΡΡΡ_ΠΌΡΡΠ°
# ΠΡΡΠΊΠΎΠΊ ΠΌΡΡΠ° ΠΎΡ ΡΠ°ΠΊΠ΅ΡΠΎΠΊ
if ΠΌΡΡ.colliderect(ΡΠ°ΠΊΠ΅ΡΠΊΠ°_1) or ΠΌΡΡ.colliderect(ΡΠ°ΠΊΠ΅ΡΠΊΠ°_2):
ΡΠΊΠΎΡΠΎΡΡΡ_ΠΌΡΡΠ° = -ΡΠΊΠΎΡΠΎΡΡΡ_ΠΌΡΡΠ°
# ΠΡΡΠΈΡΠΎΠ²ΠΊΠ° ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΈΠ³ΡΡ
ΠΎΠΊΠ½ΠΎ.fill(ΡΠ΅ΡΠ½ΡΠΉ)
pygame.draw.rect(ΠΎΠΊΠ½ΠΎ, Π±Π΅Π»ΡΠΉ, ΡΠ°ΠΊΠ΅ΡΠΊΠ°_1)
pygame.draw.rect(ΠΎΠΊΠ½ΠΎ, Π±Π΅Π»ΡΠΉ, ΡΠ°ΠΊΠ΅ΡΠΊΠ°_2)
pygame.draw.ellipse(ΠΎΠΊΠ½ΠΎ, Π±Π΅Π»ΡΠΉ, ΠΌΡΡ)
pygame.draw.aaline(ΠΎΠΊΠ½ΠΎ, Π±Π΅Π»ΡΠΉ, (ΡΠΈΡΠΈΠ½Π° // 2, 0), (ΡΠΈΡΠΈΠ½Π° // 2, Π²ΡΡΠΎΡΠ°))
# ΠΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΡΠΊΡΠ°Π½Π°
pygame.display.update()
ΠΠ΅ΡΠ°Π»ΡΠ½ΡΠΉ ΠΎΡΠ²Π΅Ρ
ΠΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΠΏΠΈΠ½Π³ ΠΏΠΎΠ½Π³ Π½Π° Python
Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅, ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ, ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΠΈΠ³ΡΡ "ΠΏΠΈΠ½Π³-ΠΏΠΎΠ½Π³" Π½Π° ΡΠ·ΡΠΊΠ΅ Python. ΠΡ ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΠΏΡΠΎΡΡΡΡ ΠΈΠ³ΡΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΈΠ³ΡΠΎΠΊ ΡΠΌΠΎΠΆΠ΅Ρ ΡΠΏΡΠ°Π²Π»ΡΡΡ ΡΠ°ΠΊΠ΅ΡΠΊΠΎΠΉ ΠΈ ΠΎΡΠ±ΠΈΠ²Π°ΡΡ ΠΌΡΡΠΈΠΊ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ±Π΅Π΄ΠΈΡΡ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠΈΠ²Π½ΠΈΠΊΠ°.
Π¨Π°Π³ 1: Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Pygame
ΠΠ΅ΡΠ²ΡΠΌ ΡΠ°Π³ΠΎΠΌ, Π½Π°ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ Pygame, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΈΠ³ΡΡ Π½Π° ΡΠ·ΡΠΊΠ΅ Python. Π§ΡΠΎΠ±Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Pygame, Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅:
pip install pygame
ΠΠΎΡΠ»Π΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Pygame, ΠΌΡ Π³ΠΎΡΠΎΠ²Ρ ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ ΠΊ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΈΠ³ΡΡ.
Π¨Π°Π³ 2: Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΎΠΊΠ½Π° ΠΈΠ³ΡΡ
ΠΠ»Ρ Π½Π°ΡΠ°Π»Π°, Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΠΎΠΊΠ½ΠΎ ΠΈΠ³ΡΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π±ΡΠ΄ΡΡ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡΡΡ Π²ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ. ΠΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ ΠΊΠΎΠ΄Π°:
import pygame
# ΠΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Pygame
pygame.init()
# Π Π°Π·ΠΌΠ΅ΡΡ ΠΎΠΊΠ½Π°
width = 800
height = 400
# Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΎΠΊΠ½Π°
screen = pygame.display.set_mode((width, height))
pygame.display.set_caption("ΠΠΈΠ½Π³-ΠΏΠΎΠ½Π³")
# ΠΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΡΠΈΠΊΠ» ΠΈΠ³ΡΡ
running = True
while running:
# ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΡΠΎΠ±ΡΡΠΈΠΉ
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
# ΠΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΡΠΊΡΠ°Π½Π°
pygame.display.flip()
# ΠΠ°Π²Π΅ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ°Π±ΠΎΡΡ Pygame
pygame.quit()
ΠΡΠΎΡ ΠΊΠΎΠ΄ ΡΠΎΠ·Π΄Π°Π΅Ρ ΠΎΠΊΠ½ΠΎ ΠΈΠ³ΡΡ Ρ ΡΠ°Π·ΠΌΠ΅ΡΠ°ΠΌΠΈ 800x400 ΠΏΠΈΠΊΡΠ΅Π»Π΅ΠΉ ΠΈ Π½Π°Π·ΡΠ²Π°Π΅Ρ Π΅Π³ΠΎ "ΠΠΈΠ½Π³-ΠΏΠΎΠ½Π³". ΠΠ³ΡΠ° Π±ΡΠ΄Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π΄ΠΎ ΡΠ΅Ρ ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π½Π΅ Π·Π°ΠΊΡΠΎΠ΅Ρ ΠΎΠΊΠ½ΠΎ.
Π¨Π°Π³ 3: ΠΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΡΠ°ΠΊΠ΅ΡΠΎΠΊ ΠΈ ΠΌΡΡΠΈΠΊΠ°
Π’Π΅ΠΏΠ΅ΡΡ Π΄Π°Π²Π°ΠΉΡΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ ΡΠ°ΠΊΠ΅ΡΠΊΠΈ ΠΈ ΠΌΡΡΠΈΠΊ Π½Π° ΡΠΊΡΠ°Π½. ΠΡ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΡΠΎΡΡΡΠ΅ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠΈ Π΄Π»Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΡΡΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ². ΠΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ ΠΊΠΎΠ΄Π°:
# Π¦Π²Π΅ΡΠ°
white = (255, 255, 255)
black = (0, 0, 0)
# Π Π°ΠΊΠ΅ΡΠΊΠΈ
paddle_width = 10
paddle_height = 60
paddle_speed = 5
paddle1_x = 0
paddle1_y = height / 2 - paddle_height / 2
paddle2_x = width - paddle_width
paddle2_y = height / 2 - paddle_height / 2
# ΠΡΡΠΈΠΊ
ball_radius = 10
ball_speed_x = 3
ball_speed_y = 3
ball_x = width / 2
ball_y = height / 2
# ΠΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΡΠΈΠΊΠ» ΠΈΠ³ΡΡ
while running:
# ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΡΠΎΠ±ΡΡΠΈΠΉ
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
# Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠ°ΠΊΠ΅ΡΠΊΠ°ΠΌΠΈ
keys = pygame.key.get_pressed()
if keys[pygame.K_w] and paddle1_y > 0:
paddle1_y -= paddle_speed
if keys[pygame.K_s] and paddle1_y < height - paddle_height:
paddle1_y += paddle_speed
if keys[pygame.K_UP] and paddle2_y > 0:
paddle2_y -= paddle_speed
if keys[pygame.K_DOWN] and paddle2_y < height - paddle_height:
paddle2_y += paddle_speed
# ΠΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΡΠΊΡΠ°Π½Π°
screen.fill(black)
pygame.draw.rect(screen, white, (paddle1_x, paddle1_y, paddle_width, paddle_height))
pygame.draw.rect(screen, white, (paddle2_x, paddle2_y, paddle_width, paddle_height))
pygame.draw.circle(screen, white, (int(ball_x), int(ball_y)), ball_radius)
pygame.display.flip()
# ΠΠ°Π²Π΅ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ°Π±ΠΎΡΡ Pygame
pygame.quit()
Π ΡΡΠΎΠΌ ΠΊΠΎΠ΄Π΅ ΠΌΡ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΡΠ°ΠΊΠ΅ΡΠΊΠΈ ΠΈ ΠΌΡΡΠΈΠΊ Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΡΠΈΠΊΠ» ΠΈΠ³ΡΡ. ΠΠ³ΡΠΎΠΊ ΡΠΌΠΎΠΆΠ΅Ρ ΡΠΏΡΠ°Π²Π»ΡΡΡ ΡΠ°ΠΊΠ΅ΡΠΊΠΎΠΉ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠ»Π°Π²ΠΈΡ "W" ΠΈ "S", Π° ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ½ΡΠΉ ΠΏΡΠΎΡΠΈΠ²Π½ΠΈΠΊ β Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠ»Π°Π²ΠΈΡ "ΠΠ²Π΅ΡΡ " ΠΈ "ΠΠ½ΠΈΠ·". ΠΡΡΠΈΠΊ Π±ΡΠ΄Π΅Ρ Π΄Π²ΠΈΠ³Π°ΡΡΡΡ ΠΏΠΎ ΡΠΊΡΠ°Π½Ρ Ρ ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ ΡΠΊΠΎΡΠΎΡΡΡΡ.
Π¨Π°Π³ 4: ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΡΡΠΎΠ»ΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠΉ
Π’Π΅ΠΏΠ΅ΡΡ ΠΏΡΠΈΡΠ»ΠΎ Π²ΡΠ΅ΠΌΡ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ ΡΡΠΎΠ»ΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠΉ ΠΌΡΡΠΈΠΊΠ° Ρ ΡΠ°ΠΊΠ΅ΡΠΊΠ°ΠΌΠΈ ΠΈ ΡΡΠ΅Π½ΠΊΠ°ΠΌΠΈ. ΠΡΠ»ΠΈ ΠΌΡΡΠΈΠΊ ΡΡΠΎΠ»ΠΊΠ½Π΅ΡΡΡ Ρ ΡΠ°ΠΊΠ΅ΡΠΊΠΎΠΉ, ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΎΡΡΠΊΠΎΡΠΈΡΡ Π² ΠΏΡΠΎΡΠΈΠ²ΠΎΠΏΠΎΠ»ΠΎΠΆΠ½ΠΎΠΌ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠΈ. ΠΡΠ»ΠΈ ΠΌΡΡΠΈΠΊ Π΄ΠΎΡΡΠΈΠ³Π½Π΅Ρ ΡΡΠ΅Π½Ρ, ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΎΡΡΠ°Π·ΠΈΡΡΡΡ ΠΎΡ Π½Π΅Π΅. ΠΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ ΠΊΠΎΠ΄Π°:
# ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΡΡΠΎΠ»ΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠΉ ΠΌΡΡΠΈΠΊΠ° Ρ ΡΠ°ΠΊΠ΅ΡΠΊΠ°ΠΌΠΈ
if (ball_x < paddle1_x + paddle_width and paddle1_y < ball_y < paddle1_y + paddle_height) or (ball_x > paddle2_x - ball_radius and paddle2_y < ball_y < paddle2_y + paddle_height):
ball_speed_x *= -1
# ΠΠ²ΠΈΠΆΠ΅Π½ΠΈΠ΅ ΠΌΡΡΠΈΠΊΠ°
ball_x += ball_speed_x
ball_y += ball_speed_y
# ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΡΡΠΎΠ»ΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠΉ ΠΌΡΡΠΈΠΊΠ° ΡΠΎ ΡΡΠ΅Π½ΠΊΠ°ΠΌΠΈ
if ball_y < 0 or ball_y > height - ball_radius:
ball_speed_y *= -1
# ΠΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΡΠΊΡΠ°Π½Π°...
ΠΡΠΎΡ ΠΊΠΎΠ΄ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅Ρ ΡΡΠΎΠ»ΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΡ ΠΌΡΡΠΈΠΊΠ° Ρ ΡΠ°ΠΊΠ΅ΡΠΊΠ°ΠΌΠΈ ΠΈ ΡΡΠ΅Π½ΠΊΠ°ΠΌΠΈ, ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅Ρ Π΅Π³ΠΎ ΡΠΊΠΎΡΠΎΡΡΡ ΠΈ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅, Π΅ΡΠ»ΠΈ ΡΡΠΎΠ»ΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ»ΠΎ. ΠΡΡΠΈΠΊ ΡΠ°ΠΊΠΆΠ΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΎΡΡΠ°ΠΆΠ°ΡΡΡΡ ΠΎΡ Π²Π΅ΡΡ Π½Π΅ΠΉ ΠΈ Π½ΠΈΠΆΠ½Π΅ΠΉ ΡΡΠ΅Π½ΠΎΠΊ ΠΈΠ³ΡΠΎΠ²ΠΎΠ³ΠΎ ΠΏΠΎΠ»Ρ.
Π¨Π°Π³ 5: ΠΠΎΠ΄ΡΡΠ΅Ρ ΠΎΡΠΊΠΎΠ² ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ±Π΅Π΄ΠΈΡΠ΅Π»Ρ
ΠΠ°ΠΊΠΎΠ½Π΅Ρ, Π΄Π°Π²Π°ΠΉΡΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ ΠΏΠΎΠ΄ΡΡΠ΅Ρ ΠΎΡΠΊΠΎΠ² ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ±Π΅Π΄ΠΈΡΠ΅Π»Ρ. ΠΡ Π±ΡΠ΄Π΅ΠΌ ΡΡΠΈΡΠ°ΡΡ ΠΎΡΠΊΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ³ΡΠΎΠΊΠ° ΠΏΡΠΈ ΠΏΡΠΎΠΏΡΡΠΊΠ΅ ΠΌΡΡΠΈΠΊΠ°. ΠΠ΅ΡΠ²ΡΠΉ ΠΈΠ³ΡΠΎΠΊ, Π½Π°Π±ΡΠ°Π²ΡΠΈΠΉ 5 ΠΎΡΠΊΠΎΠ², ΠΏΠΎΠ±Π΅Π΄ΠΈΡ. ΠΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ ΠΊΠΎΠ΄Π°:
# ΠΡΠΊΠΈ ΠΈΠ³ΡΠΎΠΊΠΎΠ²
player1_score = 0
player2_score = 0
# ΠΡΡΠΈΡΠΎΠ²ΠΊΠ° ΠΎΡΠΊΠΎΠ²
font = pygame.font.Font(None, 36)
player1_text = font.render(f"ΠΠ³ΡΠΎΠΊ 1: {player1_score}", True, white)
player1_rect = player1_text.get_rect()
player1_rect.x = 20
player1_rect.y = 20
player2_text = font.render(f"ΠΠ³ΡΠΎΠΊ 2: {player2_score}", True, white)
player2_rect = player2_text.get_rect()
player2_rect.x = width - player2_rect.width - 20
player2_rect.y = 20
# ΠΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΡΠΈΠΊΠ» ΠΈΠ³ΡΡ
while running:
# ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΡΠΎΠ±ΡΡΠΈΠΉ...
# ΠΡΠΎΠ²Π΅ΡΠΊΠ° ΠΏΡΠΎΠΏΡΡΠΊΠ° ΠΌΡΡΠΈΠΊΠ°
if ball_x < 0:
player2_score += 1
if player2_score == 5:
# ΠΠΎΠ±Π΅Π΄Π° ΠΈΠ³ΡΠΎΠΊΠ° 2
running = False
else:
# ΠΠΎΠ·ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΈΠ³ΡΡ
ball_x = width / 2
ball_y = height / 2
ball_speed_x *= -1
ball_speed_y *= -1
if ball_x > width:
player1_score += 1
if player1_score == 5:
# ΠΠΎΠ±Π΅Π΄Π° ΠΈΠ³ΡΠΎΠΊΠ° 1
running = False
else:
# ΠΠΎΠ·ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΈΠ³ΡΡ
ball_x = width / 2
ball_y = height / 2
ball_speed_x *= -1
ball_speed_y *= -1
# ΠΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΎΡΠΊΠΎΠ²
player1_text = font.render(f"ΠΠ³ΡΠΎΠΊ 1: {player1_score}", True, white)
player2_text = font.render(f"ΠΠ³ΡΠΎΠΊ 2: {player2_score}", True, white)
# ΠΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΡΠΊΡΠ°Π½Π°...
Π ΡΡΠΎΠΌ ΠΊΠΎΠ΄Π΅ ΠΌΡ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ Π΄Π»Ρ ΠΏΠΎΠ΄ΡΡΠ΅ΡΠ° ΠΎΡΠΊΠΎΠ² ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ³ΡΠΎΠΊΠ° ΠΈ ΠΎΡΡΠΈΡΠΎΠ²ΠΊΡ ΡΡΠΈΡ ΠΎΡΠΊΠΎΠ² Π½Π° ΡΠΊΡΠ°Π½Π΅. ΠΡΠ»ΠΈ ΠΌΡΡΠΈΠΊ ΠΏΡΠΎΠΏΡΡΡΠΈΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· ΠΈΠ³ΡΠΎΠΊΠΎΠ², Π΅Π³ΠΎ ΡΡΠ΅Ρ ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°Π΅ΡΡΡ Π½Π° 1. ΠΠΎΠ³Π΄Π° ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΈΠ³ΡΠΎΠΊΠΎΠ² Π½Π°Π±Π΅ΡΠ΅Ρ 5 ΠΎΡΠΊΠΎΠ², ΠΈΠ³ΡΠ° Π·Π°Π²Π΅ΡΡΠΈΡΡΡ, ΠΈ ΡΡΠΎΡ ΠΈΠ³ΡΠΎΠΊ Π±ΡΠ΄Π΅Ρ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ ΠΏΠΎΠ±Π΅Π΄ΠΈΡΠ΅Π»Π΅ΠΌ.
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
ΠΡ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π»ΠΈ ΠΎΡΠ½ΠΎΠ²Ρ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΠΈΠ³ΡΡ "ΠΏΠΈΠ½Π³-ΠΏΠΎΠ½Π³" Π½Π° ΡΠ·ΡΠΊΠ΅ Python. ΠΡ ΡΠΎΠ·Π΄Π°Π»ΠΈ ΠΎΠΊΠ½ΠΎ ΠΈΠ³ΡΡ, Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΡΠ°ΠΊΠ΅ΡΠΊΠΈ ΠΈ ΠΌΡΡΠΈΠΊ, ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°Π»ΠΈ ΡΡΠΎΠ»ΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΡ ΠΈ ΠΏΠΎΠ΄ΡΡΠΈΡΠ°Π»ΠΈ ΠΎΡΠΊΠΈ. Π’Π΅ΠΏΠ΅ΡΡ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΡ ΡΡΡ ΠΈΠ³ΡΡ ΡΠ²ΠΎΠΈΠΌΠΈ ΠΈΠ΄Π΅ΡΠΌΠΈ ΠΈ ΡΠ»ΡΡΡΠΈΡΡ Π΅Π΅ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»!