
Вопрос задан 18.10.2023 в 01:32.
Предмет Информатика.
Спрашивает Кокунов Данила.
допоможіть створити гру пінг понг pythonв бібліотеці pygame з розмірами 500 на 500 щоб могли гра ти
2 людини. швидшееееее будь ласкаа

Ответы на вопрос

Отвечает Данильчук Тимофей.
Import pygame
import random
# Ініціалізація Pygame
pygame.init()
# Розміри вікна
WIDTH = 500
HEIGHT = 500
# Кольори
BLACK = (0, 0, 0)
WHITE = (255, 255, 255)
# Ініціалізація вікна гри
window = pygame.display.set_mode((WIDTH, HEIGHT))
pygame.display.set_caption("Гра пінг-понг")
clock = pygame.time.Clock()
# Розміри ракеток
PADDLE_WIDTH = 10
PADDLE_HEIGHT = 60
PADDLE_SPEED = 5
# Розміри м'яча
BALL_RADIUS = 5
BALL_SPEED_X = 3
BALL_SPEED_Y = 3
# Початкові координати ракеток
paddle1_x = 0
paddle1_y = HEIGHT // 2 - PADDLE_HEIGHT // 2
paddle2_x = WIDTH - PADDLE_WIDTH
paddle2_y = HEIGHT // 2 - PADDLE_HEIGHT // 2
# Початкові координати м'яча
ball_x = WIDTH // 2
ball_y = HEIGHT // 2
# Початкові напрямки руху м'яча
ball_dx = random.choice([-1, 1]) * BALL_SPEED_X
ball_dy = random.choice([-1, 1]) * BALL_SPEED_Y
# Функція для малювання ракеток і м'яча
def draw_objects():
window.fill(BLACK)
pygame.draw.rect(window, WHITE, (paddle1_x, paddle1_y, PADDLE_WIDTH, PADDLE_HEIGHT))
pygame.draw.rect(window, WHITE, (paddle2_x, paddle2_y, PADDLE_WIDTH, PADDLE_HEIGHT))
pygame.draw.circle(window, WHITE, (ball_x, ball_y), BALL_RADIUS)
# Головний цикл гри
running = True
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
# Рух м'яча
ball_x += ball_dx
ball_y += ball_dy
# Відбивання м'яча від ракеток
if ball_x <= PADDLE_WIDTH and paddle1_y < ball_y < paddle1_y + PADDLE_HEIGHT:
ball_dx = BALL_SPEED_X
if ball_x >= WIDTH - PADDLE_WIDTH - BALL_RADIUS and paddle2_y < ball_y < paddle2_y + PADDLE_HEIGHT:
ball_dx = -BALL_SPEED_X
if ball_y <= 0 or ball_y >= HEIGHT - BALL_RADIUS:
ball_dy *= -1
# Малювання об'єктів
draw_objects()
# Оновлення вікна
pygame.display.flip()
clock.tick(60)
# Завершення гри
pygame.quit()
import random
# Ініціалізація Pygame
pygame.init()
# Розміри вікна
WIDTH = 500
HEIGHT = 500
# Кольори
BLACK = (0, 0, 0)
WHITE = (255, 255, 255)
# Ініціалізація вікна гри
window = pygame.display.set_mode((WIDTH, HEIGHT))
pygame.display.set_caption("Гра пінг-понг")
clock = pygame.time.Clock()
# Розміри ракеток
PADDLE_WIDTH = 10
PADDLE_HEIGHT = 60
PADDLE_SPEED = 5
# Розміри м'яча
BALL_RADIUS = 5
BALL_SPEED_X = 3
BALL_SPEED_Y = 3
# Початкові координати ракеток
paddle1_x = 0
paddle1_y = HEIGHT // 2 - PADDLE_HEIGHT // 2
paddle2_x = WIDTH - PADDLE_WIDTH
paddle2_y = HEIGHT // 2 - PADDLE_HEIGHT // 2
# Початкові координати м'яча
ball_x = WIDTH // 2
ball_y = HEIGHT // 2
# Початкові напрямки руху м'яча
ball_dx = random.choice([-1, 1]) * BALL_SPEED_X
ball_dy = random.choice([-1, 1]) * BALL_SPEED_Y
# Функція для малювання ракеток і м'яча
def draw_objects():
window.fill(BLACK)
pygame.draw.rect(window, WHITE, (paddle1_x, paddle1_y, PADDLE_WIDTH, PADDLE_HEIGHT))
pygame.draw.rect(window, WHITE, (paddle2_x, paddle2_y, PADDLE_WIDTH, PADDLE_HEIGHT))
pygame.draw.circle(window, WHITE, (ball_x, ball_y), BALL_RADIUS)
# Головний цикл гри
running = True
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
# Рух м'яча
ball_x += ball_dx
ball_y += ball_dy
# Відбивання м'яча від ракеток
if ball_x <= PADDLE_WIDTH and paddle1_y < ball_y < paddle1_y + PADDLE_HEIGHT:
ball_dx = BALL_SPEED_X
if ball_x >= WIDTH - PADDLE_WIDTH - BALL_RADIUS and paddle2_y < ball_y < paddle2_y + PADDLE_HEIGHT:
ball_dx = -BALL_SPEED_X
if ball_y <= 0 or ball_y >= HEIGHT - BALL_RADIUS:
ball_dy *= -1
# Малювання об'єктів
draw_objects()
# Оновлення вікна
pygame.display.flip()
clock.tick(60)
# Завершення гри
pygame.quit()



Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.
Звісно, я допоможу! Ось основний код для простої гри у пінг-понг на Python з використанням бібліотеки Pygame. Впевніться, що ви встановили Pygame перед тим, як запускати цей код.
pythonimport pygame
import sys
# Ініціалізація Pygame
pygame.init()
# Розміри вікна
WIDTH, HEIGHT = 500, 500
# Колір
WHITE = (255, 255, 255)
BLACK = (0, 0, 0)
# Розміри ракеток і м'яча
PAD_WIDTH, PAD_HEIGHT = 15, 60
BALL_SIZE = 15
# Швидкість руху
PAD_SPEED = 5
BALL_SPEED_X = 5
BALL_SPEED_Y = 5
# Створення вікна гри
screen = pygame.display.set_mode((WIDTH, HEIGHT))
pygame.display.set_caption("Ping Pong")
# Початкові координати ракеток і м'яча
left_pad_pos = [0, HEIGHT // 2 - PAD_HEIGHT // 2]
right_pad_pos = [WIDTH - PAD_WIDTH, HEIGHT // 2 - PAD_HEIGHT // 2]
ball_pos = [WIDTH // 2 - BALL_SIZE // 2, HEIGHT // 2 - BALL_SIZE // 2]
# Початкові швидкості руху ракеток і м'яча
left_pad_speed = 0
right_pad_speed = 0
ball_speed = [BALL_SPEED_X, BALL_SPEED_Y]
# Головний цикл гри
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
sys.exit()
elif event.type == pygame.KEYDOWN:
if event.key == pygame.K_w:
left_pad_speed = -PAD_SPEED
elif event.key == pygame.K_s:
left_pad_speed = PAD_SPEED
elif event.key == pygame.K_UP:
right_pad_speed = -PAD_SPEED
elif event.key == pygame.K_DOWN:
right_pad_speed = PAD_SPEED
elif event.type == pygame.KEYUP:
if event.key == pygame.K_w or event.key == pygame.K_s:
left_pad_speed = 0
elif event.key == pygame.K_UP or event.key == pygame.K_DOWN:
right_pad_speed = 0
# Рух ракеток
left_pad_pos[1] += left_pad_speed
right_pad_pos[1] += right_pad_speed
# Обмеження ракеток за межами екрану
left_pad_pos[1] = max(0, min(HEIGHT - PAD_HEIGHT, left_pad_pos[1]))
right_pad_pos[1] = max(0, min(HEIGHT - PAD_HEIGHT, right_pad_pos[1]))
# Рух м'яча
ball_pos[0] += ball_speed[0]
ball_pos[1] += ball_speed[1]
# Відбивання від верхньої та нижньої стін
if ball_pos[1] <= 0 or ball_pos[1] >= HEIGHT - BALL_SIZE:
ball_speed[1] = -ball_speed[1]
# Відбивання від ракеток
if (
left_pad_pos[0] <= ball_pos[0] <= left_pad_pos[0] + PAD_WIDTH
and left_pad_pos[1] <= ball_pos[1] <= left_pad_pos[1] + PAD_HEIGHT
) or (
right_pad_pos[0] <= ball_pos[0] + BALL_SIZE <= right_pad_pos[0] + PAD_WIDTH
and right_pad_pos[1] <= ball_pos[1] <= right_pad_pos[1] + PAD_HEIGHT
):
ball_speed[0] = -ball_speed[0]
# Відображення екрану
screen.fill(BLACK)
pygame.draw.rect(screen, WHITE, (left_pad_pos[0], left_pad_pos[1], PAD_WIDTH, PAD_HEIGHT))
pygame.draw.rect(screen, WHITE, (right_pad_pos[0], right_pad_pos[1], PAD_WIDTH, PAD_HEIGHT))
pygame.draw.ellipse(screen, WHITE, (ball_pos[0], ball_pos[1], BALL_SIZE, BALL_SIZE))
pygame.display.flip()
# Затримка для обмеження кадрів на секунду
pygame.time.Clock().tick(60)
Цей код створює вікно гри, дві ракетки та м'яч. Ви можете керувати лівою ракеткою за допомогою клавіш W та S, а правою - за допомогою стрілок вгору та вниз. Бажаю успіху з вашою грою у пінг-понг!


Похожие вопросы
Топ вопросов за вчера в категории Информатика

Информатика 2132

Информатика 63

Информатика 14

Информатика 32

Информатика 19

Информатика 15

Информатика 175

Информатика 31

Информатика 48
Последние заданные вопросы в категории Информатика
Предметы
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili