ПОМОГИТЕ С ДЗ ПО Python
Домашнее задание №8
Курс: Python Middle
Тема: Знакомство с PyGame «Создание игры волк и
яйца»
Малая Компьютерная Академия
Python Middle
Задание:
Опираясь на код, написанный на занятии, добавьте в код возможность проиграть, когда количество очков игрока достигнет значений меньше
0 на экран выводится надпись «Вы проиграли» и
игра заканчивается.
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()