πŸ“ Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΠΎΠ½Π³ Π½Π° ΠΏΠΈΡ‚ΠΎΠ½Π΅ - Π»Π΅Π³ΠΊΠΈΠΉ Π³Π°ΠΉΠ΄ для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ… Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ²

Для создания ΠΈΠ³Ρ€Ρ‹ "ΠΏΠΎΠ½Π³" Π½Π° ΠΏΠΈΡ‚ΠΎΠ½Π΅ Π²Π°ΠΌ понадобится ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Pygame. Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π° для создания простой вСрсии ΠΈΠ³Ρ€Ρ‹:


import pygame

# Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡ ΠΎΠΊΠ½Π° ΠΈΠ³Ρ€Ρ‹
pygame.init()
width, height = 800, 400
screen = pygame.display.set_mode((width, height))
pygame.display.set_caption("Понг")

# ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Ρ†Π²Π΅Ρ‚ΠΎΠ²
bg_color = pygame.Color("black")
object_color = pygame.Color("white")

# Настройка ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ²
ball = pygame.Rect(width // 2 - 15, height // 2 - 15, 30, 30)
player = pygame.Rect(width - 20, height // 2 - 60, 10, 120)
opponent = pygame.Rect(10, height // 2 - 60, 10, 120)

# Настройка скорости ΠΈ направлСния двиТСния мяча
ball_speed_x = 3
ball_speed_y = 3

# Основной ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠΉ Ρ†ΠΈΠΊΠ»
while True:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            pygame.quit()
            sys.exit()

    # ОбновлСниС ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ мяча
    ball.x += ball_speed_x
    ball.y += ball_speed_y

    # ΠžΡ‚ΡΠΊΠΎΠΊ мяча ΠΎΡ‚ стСн
    if ball.top <= 0 or ball.bottom >= height:
        ball_speed_y *= -1
    if ball.left <= 0 or ball.right >= width:
        ball_speed_x *= -1

    # ΠžΡ‚ΡΠΊΠΎΠΊ мяча ΠΎΡ‚ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ
    if ball.colliderect(player) or ball.colliderect(opponent):
        ball_speed_x *= -1

    # ОбновлСниС экрана
    screen.fill(bg_color)
    pygame.draw.ellipse(screen, object_color, ball)
    pygame.draw.rect(screen, object_color, player)
    pygame.draw.rect(screen, object_color, opponent)
    pygame.draw.aaline(screen, object_color, (width // 2, 0), (width // 2, height))

    pygame.display.flip()
    pygame.time.Clock().tick(60)

Π”Π΅Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΡ‚Π²Π΅Ρ‚

Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΠΎΠ½Π³ Π½Π° ΠΏΠΈΡ‚ΠΎΠ½Π΅

ΠŸΡ€ΠΈΠ²Π΅Ρ‚! Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ я расскаТу Ρ‚Π΅Π±Π΅, ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΈΠ³Ρ€Ρƒ «Понг» Π½Π° языкС программирования Python. Π”Π°Π²Π°ΠΉ Π½Π°Ρ‡Π½Π΅ΠΌ!

1. Установка ΠΏΠ°ΠΊΠ΅Ρ‚Π° Pygame

ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΌΡ‹ Π½Π°Ρ‡Π½Π΅ΠΌ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΈΠ³Ρ€Ρƒ «Понг», Π½Π°ΠΌ понадобится ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΏΠ°ΠΊΠ΅Ρ‚ Pygame. Pygame β€” это Π½Π°Π±ΠΎΡ€ инструмСнтов для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈΠ³Ρ€ Π½Π° Python, Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰ΠΈΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π³Ρ€Π°Ρ„ΠΈΠΊΠΎΠΉ, Π·Π²ΡƒΠΊΠΎΠΌ ΠΈ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ.

Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΏΠ°ΠΊΠ΅Ρ‚ Pygame ΠΌΠΎΠΆΠ½ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π΅:

pip install pygame

2. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΎΠΊΠ½Π° для ΠΈΠ³Ρ€Ρ‹

НачнСм с создания ΠΎΠΊΠ½Π° для ΠΈΠ³Ρ€Ρ‹. Π’ΠΎΡ‚ простой ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Π½Π°ΠΌ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠΊΠ½ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ 800 Π½Π° 400 пиксСлСй:

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.quit()

Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ использовали ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Pygame для создания ΠΎΠΊΠ½Π° Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ 800 Π½Π° 400 пиксСлСй с Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠΌ "Понг". Π—Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ создали основной ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠΉ Ρ†ΠΈΠΊΠ», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ провСряСт события ΠΈ обновляСт экран с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ pygame.display.flip().

3. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ ΠΈ мяча

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, ΠΊΠΎΠ³Π΄Π° Ρƒ нас Π΅ΡΡ‚ΡŒ ΠΎΠΊΠ½ΠΎ, Π΄Π°Π²Π°ΠΉΡ‚Π΅ создадим ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ ΠΈ мяч для ΠΈΠ³Ρ€Ρ‹. Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π°:

import pygame

# Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡ Pygame
pygame.init()

# Π Π°Π·ΠΌΠ΅Ρ€Ρ‹ ΠΎΠΊΠ½Π°
width = 800
height = 400

# Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΎΠΊΠ½Π°
screen = pygame.display.set_mode((width, height))
pygame.display.set_caption("Понг")

# Π¦Π²Π΅Ρ‚Π°
BLACK = (0, 0, 0)
WHITE = (255, 255, 255)

# Π Π°Π·ΠΌΠ΅Ρ€Ρ‹ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ
paddle_width = 15
paddle_height = 60

# ΠšΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ
player_x = 10
player_y = height // 2 - paddle_height // 2
opponent_x = width - 25 - paddle_width
opponent_y = height // 2 - paddle_height // 2

# Π Π°Π·ΠΌΠ΅Ρ€Ρ‹ мяча
ball_width = 15
ball_height = 15

# ΠšΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ мяча
ball_x = width // 2 - ball_width // 2
ball_y = height // 2 - ball_height // 2

# Основной ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠΉ Ρ†ΠΈΠΊΠ»
running = True
while running:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False

    # Π—Π°Π»ΠΈΠ²ΠΊΠ° ΠΎΠΊΠ½Π° Ρ‡Π΅Ρ€Π½Ρ‹ΠΌ Ρ†Π²Π΅Ρ‚ΠΎΠΌ
    screen.fill(BLACK)

    # ΠžΡ‚Ρ€ΠΈΡΠΎΠ²ΠΊΠ° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ ΠΈ мяча
    pygame.draw.rect(screen, WHITE, (player_x, player_y, paddle_width, paddle_height))
    pygame.draw.rect(screen, WHITE, (opponent_x, opponent_y, paddle_width, paddle_height))
    pygame.draw.ellipse(screen, WHITE, (ball_x, ball_y, ball_width, ball_height))

    # ОбновлСниС экрана
    pygame.display.flip()

# Π’Ρ‹Ρ…ΠΎΠ΄ ΠΈΠ· ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹
pygame.quit()

Π’ этом ΠΊΠΎΠ΄Π΅ ΠΌΡ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠ»ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ ΠΈ мяча, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΡ… Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹. Π—Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ отрисовали ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ ΠΈ мяч Π½Π° экранС с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ pygame.draw.rect() для ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ ΠΈ pygame.draw.ellipse() для мяча.

4. Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°ΠΌΠΈ

Для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ ΠΌΠΎΠ³Π»ΠΈ Π΄Π²ΠΈΠ³Π°Ρ‚ΡŒΡΡ, Π½Π°ΠΌ понадобится Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π»ΠΎΠ³ΠΈΠΊΡƒ управлСния. Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Π½Π°ΠΌ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠΎΠΉ ΠΈΠ³Ρ€ΠΎΠΊΠ° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ клавиш Π½Π° ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Π΅:

import pygame

# Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡ Pygame
pygame.init()

# Π Π°Π·ΠΌΠ΅Ρ€Ρ‹ ΠΎΠΊΠ½Π° ΠΈ ΠΏΡ€ΠΎΡ‡ΠΈΠ΅ настройки...

# Основной ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠΉ Ρ†ΠΈΠΊΠ»
running = True
while running:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False

        # Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠΎΠΉ ΠΈΠ³Ρ€ΠΎΠΊΠ°
        if event.type == pygame.KEYDOWN:
            if event.key == pygame.K_UP:
                player_y -= 5
            elif event.key == pygame.K_DOWN:
                player_y += 5

    # Π—Π°Π»ΠΈΠ²ΠΊΠ° ΠΎΠΊΠ½Π° Ρ‡Π΅Ρ€Π½Ρ‹ΠΌ Ρ†Π²Π΅Ρ‚ΠΎΠΌ ΠΈ отрисовка ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ²...

    # ОбновлСниС экрана
    pygame.display.flip()

# Π’Ρ‹Ρ…ΠΎΠ΄ ΠΈΠ· ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹
pygame.quit()

Π’ этом ΠΊΠΎΠ΄Π΅ ΠΌΡ‹ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ событий ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹ Π²Π½ΡƒΡ‚Ρ€ΠΈ основного ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»Π°. ΠŸΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ клавиши Π²Π²Π΅Ρ€Ρ… ΠΌΡ‹ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Π΅ΠΌ Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρƒ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ ΠΈΠ³Ρ€ΠΎΠΊΠ°, Π° ΠΏΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ клавиши Π²Π½ΠΈΠ· β€” ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Π΅ΠΌ. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΠΊΠΎΠ΄ для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ события pygame.QUIT для возмоТности Π·Π°ΠΊΡ€Ρ‹Ρ‚ΡŒ ΠΎΠΊΠ½ΠΎ ΠΈΠ³Ρ€Ρ‹.

5. Π”Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ мяча

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π΄Π°Π²Π°ΠΉΡ‚Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ мяча. Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ мячу Π΄Π²ΠΈΠ³Π°Ρ‚ΡŒΡΡ ΠΏΠΎ Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΠΈ ΠΈ Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΠΈ:

import pygame

# Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡ Pygame ΠΈ ΠΏΡ€ΠΎΡ‡ΠΈΠ΅ настройки...

# Π‘ΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ мяча
ball_dx = 2
ball_dy = 2

# Основной ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠΉ Ρ†ΠΈΠΊΠ»
running = True
while running:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False

    # Π”Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ мяча
    ball_x += ball_dx
    ball_y += ball_dy

    # ΠžΡ‚ΡΠΊΠΎΠΊ мяча ΠΎΡ‚ стСнок
    if ball_x <= 0 or ball_x >= width - ball_width:
        ball_dx *= -1
    if ball_y <= 0 or ball_y >= height - ball_height:
        ball_dy *= -1

    # Π—Π°Π»ΠΈΠ²ΠΊΠ° ΠΎΠΊΠ½Π° Ρ‡Π΅Ρ€Π½Ρ‹ΠΌ Ρ†Π²Π΅Ρ‚ΠΎΠΌ ΠΈ отрисовка ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ²...

    # ОбновлСниС экрана
    pygame.display.flip()

# Π’Ρ‹Ρ…ΠΎΠ΄ ΠΈΠ· ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹
pygame.quit()

Π’ этом ΠΊΠΎΠ΄Π΅ ΠΌΡ‹ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ Π΄Π²Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ball_dx ΠΈ ball_dy, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ двиТСния мяча ΠΏΠΎ Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΠΈ ΠΈ Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΠΈ соотвСтствСнно. Π—Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ обновляСм ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ мяча ΠΈ провСряСм, Π½Π΅ достиг Π»ΠΈ ΠΎΠ½ стСнок ΠΎΠΊΠ½Π°. Если достиг, мСняСм Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ двиТСния мяча.

6. Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π»ΠΎΠ³ΠΈΠΊΠΈ ΠΈΠ³Ρ€Ρ‹

НаконСц, Π΄Π°Π²Π°ΠΉΡ‚Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π»ΠΎΠ³ΠΈΠΊΡƒ ΠΈΠ³Ρ€Ρ‹ «Понг». ΠœΡ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠΌ ΠΏΡ€Π°Π²ΠΈΠ»Π°, ΠΊΠΎΠ³Π΄Π° ΠΈΠ³Ρ€ΠΎΠΊΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽΡ‚ ΠΎΡ‡ΠΊΠΈ ΠΏΡ€ΠΈ пропускС мяча ΠΈ Π²Ρ‹Π²Π΅Π΄Π΅ΠΌ счСт Π½Π° экран. Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π°:

import pygame

# Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡ Pygame ΠΈ ΠΏΡ€ΠΎΡ‡ΠΈΠ΅ настройки...

# Π‘Ρ‡Π΅Ρ‚
player_score = 0
opponent_score = 0

# Основной ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠΉ Ρ†ΠΈΠΊΠ»
running = True
while running:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False

    # Π”Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ ΠΈΠ³Ρ€ΠΎΠΊΠ° ΠΈ ΠΎΡΡ‚Π°Π»ΡŒΠ½Π°Ρ Π»ΠΎΠ³ΠΈΠΊΠ°...

    # Π‘Ρ‡Π΅Ρ‚
    if ball_x <= 0:
        opponent_score += 1
    elif ball_x >= width - ball_width:
        player_score += 1

    # Π—Π°Π»ΠΈΠ²ΠΊΠ° ΠΎΠΊΠ½Π° Ρ‡Π΅Ρ€Π½Ρ‹ΠΌ Ρ†Π²Π΅Ρ‚ΠΎΠΌ ΠΈ отрисовка ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ²...

    # Π’Ρ‹Π²ΠΎΠ΄ счСта Π½Π° экран
    font = pygame.font.Font(None, 36)
    player_text = font.render(f"Player: {player_score}", True, WHITE)
    opponent_text = font.render(f"Opponent: {opponent_score}", True, WHITE)
    screen.blit(player_text, (width // 2 - 100, 10))
    screen.blit(opponent_text, (width // 2 + 10, 10))

    # ОбновлСниС экрана
    pygame.display.flip()

# Π’Ρ‹Ρ…ΠΎΠ΄ ΠΈΠ· ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹
pygame.quit()

Π’ этом ΠΊΠΎΠ΄Π΅ ΠΌΡ‹ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ player_score ΠΈ opponent_score для хранСния счСта ΠΈΠ³Ρ€ΠΎΠΊΠΎΠ². ПослС ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ пропуска мяча ΠΌΡ‹ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Π΅ΠΌ счСт ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΈΠ³Ρ€ΠΎΠΊΠ°. Π—Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ pygame.font.Font() для создания ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΡˆΡ€ΠΈΡ„Ρ‚Π° ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ screen.blit() для Π²Ρ‹Π²ΠΎΠ΄Π° счСта Π½Π° экран.

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ рассмотрСли, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΈΠ³Ρ€Ρƒ «Понг» Π½Π° языкС программирования Python. ΠœΡ‹ ΠΈΠ·ΡƒΡ‡ΠΈΠ»ΠΈ установку ΠΏΠ°ΠΊΠ΅Ρ‚Π° Pygame, созданиС ΠΎΠΊΠ½Π° для ΠΈΠ³Ρ€Ρ‹, отрисовку ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ ΠΈ мяча, ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°ΠΌΠΈ, Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ мяча ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π»ΠΎΠ³ΠΈΠΊΠΈ ΠΈΠ³Ρ€Ρ‹. Π’Π΅ΠΏΠ΅Ρ€ΡŒ Ρ‚Ρ‹ моТСшь ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ эти знания, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΡΠΎΠ±ΡΡ‚Π²Π΅Π½Π½ΡƒΡŽ ΠΈΠ³Ρ€Ρƒ «Понг» ΠΈ Ρ€Π°Π·Π²ΠΈΠ²Π°Ρ‚ΡŒ свои Π½Π°Π²Ρ‹ΠΊΠΈ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ!

Π£Π΄Π°Ρ‡ΠΈ!

Π’ΠΈΠ΄Π΅ΠΎ ΠΏΠΎ Ρ‚Π΅ΠΌΠ΅

Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Пинг-Понг Π½Π° Python ΠΈ PyGame

Π£Ρ€ΠΎΠΊΠΈ ΠΏΠΎ Python. Π”Π΅Π»Π°Π΅ΠΌ ΠΈΠ³Ρ€Ρƒ Пинг-ΠΏΠΎΠ½Π³ Π½Π° ΠŸΠΈΡ‚ΠΎΠ½Π΅ (Π§Π°ΡΡ‚ΡŒ 1)

Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ ΠΈΠ³Ρ€Ρƒ Ping Pong Π½Π° Python Π·Π° 30 сСкунд!

ΠŸΠΎΡ…ΠΎΠΆΠΈΠ΅ ΡΡ‚Π°Ρ‚ΡŒΠΈ:

Как пСрСвСсти число Π² ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚Π΅Ρ€ΠΈΡ‡Π½ΡƒΡŽ систСму Π² ΠŸΠΈΡ‚ΠΎΠ½Π΅? 🐍

πŸ” Как Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° Π½Π° Python: ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Π΅ совСты ΠΈ подсказки!

πŸ”’ Как нСльзя Π½Π°Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π² Python: Π³Π»Π°Π²Π½Ρ‹Π΅ ошибки ΠΈ Ρ‡Ρ‚ΠΎ ΠΈΠ·Π±Π΅Π³Π°Ρ‚ΡŒ πŸ”’

πŸ“ Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΠΎΠ½Π³ Π½Π° ΠΏΠΈΡ‚ΠΎΠ½Π΅ - Π»Π΅Π³ΠΊΠΈΠΉ Π³Π°ΠΉΠ΄ для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ… Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ²

🐍 Python 2 Π²Ρ‹ΡˆΠ΅Π» Π² свСт: история ΠΈ особСнности

Как ΡƒΠ·Π½Π°Ρ‚ΡŒ Π² ΠΊΠ°ΠΊΠΎΠΉ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ установлСн python? 🐍

⭐ Как Ρ€Π΅ΡˆΠ°Ρ‚ΡŒ 5 Π·Π°Π΄Π°Π½ΠΈΠ΅ Π•Π“Π­ ΠΏΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Python? 🐍πŸ”₯