Python. Создать игру «Собери монеты». Правила игры: на экране случайно через некоторые промежутки времени появляются монеты разным достоинством (например, 1 рубль, 2 рубля, 3 рубля). Через некоторые случайные промежутки времени эти монеты исчезают с экрана. Пользователь собирает монеты с клика мышью по монете. От монеты достоинством в 1 рубль пользователь получает От монеты достоинством в 2 рубля пользователь получает От монеты достоинством в 3 рубля пользователь получает Количество пользователя должно отображаться на экране. Написать игру, используя любой модуль (tkinter, play, pygame) для создания графических пользовательских интерфейсов на python.
import random
# Инициализация Pygame
pygame.init()
# Определение цветов
WHITE = (255, 255, 255)
# Определение размеров экрана
SCREEN_WIDTH = 800
SCREEN_HEIGHT = 600
# Создание окна
screen = pygame.display.set_mode((SCREEN_WIDTH, SCREEN_HEIGHT))
pygame.display.set_caption("Собери монеты")
# Загрузка изображений монет разного достоинства
coin_images = {
1: pygame.image.load("coin1.png"),
2: pygame.image.load("coin2.png"),
3: pygame.image.load("coin3.png")
}
# Определение начальных значений
score = 0
clock = pygame.time.Clock()
font = pygame.font.Font(None, 36)
# Функция для отображения счета
def display_score():
score_text = font.render("Счет: " + str(score), True, WHITE)
screen.blit(score_text, (10, 10))
# Главный цикл игры
running = True
coins = []
while running:
screen.fill((0, 0, 0))
# Обработка событий
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
elif event.type == pygame.MOUSEBUTTONDOWN:
# Проверка попадания по монете
for coin in coins:
if coin.rect.collidepoint(pygame.mouse.get_pos()):
score += coin.value
coins.remove(coin)
# Генерация новой монеты
if random.randint(0, 100) < 5:
value = random.choice([1, 2, 3])
coin_image = coin_images[value]
coin_rect = coin_image.get_rect()
coin_rect.x = random.randint(0, SCREEN_WIDTH - coin_rect.width)
coin_rect.y = random.randint(0, SCREEN_HEIGHT - coin_rect.height)
coins.append(pygame.sprite.Sprite(value, coin_image, coin_rect))
# Отображение монет и обновление их положения
for coin in coins:
screen.blit(coin.image, coin.rect)
coin.update()
# Отображение счета
display_score()
# Обновление экрана
pygame.display.flip()
clock.tick(60)
# Завершение игры
pygame.quit()