Top.Mail.Ru
Ответы
Аватар пользователя
3 месяца назад
от

ПОМОГИТЕ С ДЗ ПО Python

Домашнее задание №8
Курс: Python Middle
Тема: Знакомство с PyGame «Создание игры волк и
яйца»
Малая Компьютерная Академия
Python Middle
Задание:
Опираясь на код, написанный на занятии, добавьте в код возможность проиграть, когда количество очков игрока достигнет значений меньше
0 на экран выводится надпись «Вы проиграли» и
игра заканчивается.

Только авторизированные пользователи могут оставлять свои ответы
Дата
Популярность
Аватар пользователя
Мудрец
3мес

import pygame
import sys

# Инициализация PyGame
pygame.init()

# Настройки экрана
screen_width = 800
screen_height = 600
screen = pygame.display.set_mode((screen_width, screen_height))
pygame.display.set_caption("Волк и яйца")

# Цвета
WHITE = (255, 255, 255)
BLACK = (0, 0, 0)
RED = (255, 0, 0)

# Шрифт
font = pygame.font.Font(None, 74)

# Игровые переменные
wolf_width = 100
wolf_height = 100
wolf_x = (screen_width - wolf_width) // 2
wolf_y = screen_height - wolf_height
wolf_speed = 10

egg_width = 50
egg_height = 50
egg_x = 0
egg_y = 0
egg_speed = 5

score = 0

# Функция для отрисовки текста
def draw_text(text, font, color, surface, x, y):
text_obj = font.render(text, True, color)
text_rect = text_obj.get_rect(center=(x, y))
surface.blit(text_obj, text_rect)

# Основной игровой цикл
running = True
game_over = False

while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False

if not game_over:
# Движение волка
keys = pygame.key.get_pressed()
if keys[pygame.K_LEFT] and wolf_x > 0:
wolf_x -= wolf_speed
if keys[pygame.K_RIGHT] and wolf_x < screen_width - wolf_width:
wolf_x += wolf_speed

# Движение яйца
egg_y += egg_speed
if egg_y > screen_height:
egg_y = 0
egg_x = pygame.time.get_ticks() % (screen_width - egg_width)
score -= 1 # Уменьшаем очки, если яйцо упало

# Проверка столкновения
if (wolf_x < egg_x + egg_width and
wolf_x + wolf_width > egg_x and
wolf_y < egg_y + egg_height and
wolf_y + wolf_height > egg_y):
score += 1 # Увеличиваем очки, если яйцо поймано
egg_y = 0
egg_x = pygame.time.get_ticks() % (screen_width - egg_width)

# Проверка на проигрыш
if score < 0:
game_over = True

# Отрисовка
screen.fill(WHITE)
pygame.draw.rect(screen, BLACK, (wolf_x, wolf_y, wolf_width, wolf_height))
pygame.draw.ellipse(screen, RED, (egg_x, egg_y, egg_width, egg_height))
draw_text(f"Очки: {score}", font, BLACK, screen, 100, 50)

else:
# Вывод сообщения о проигрыше
draw_text("Вы проиграли", font, RED, screen, screen_width // 2, screen_height // 2)

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

pygame.quit()
sys.exit()