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

Python. Создать игру «Собери урожай». Правила игры: дано несколько различных овощей и корзина. Овощи падают с верхней части экрана вниз. Корзина находится внизу экрана и может перемещаться вправо и влево с стрелок или любых других клавиш клавиатуры. Пользователь должен собрать как можно больше овощей в корзину. За каждый собранный овощ начисляется показываются на экране. Если корзина коснулась овоща, то считается, что данный овощ собран. Если корзина не коснулась овоща, то овощ исчезает при достижении низа экрана. Написать игру, используя любой модуль (tkinter, play, pygame) для создания графических пользовательских интерфейсов на python.

Показать ответ
Ответ:
Anna19013
Anna19013
30.05.2023 15:56

Объяснение:

import pygame

import random

# Инициализация Pygame

pygame.init()

# Размеры окна

SCREEN_WIDTH = 800

SCREEN_HEIGHT = 600

# Цвета

WHITE = (255, 255, 255)

# Скорость падения овощей

VEGETABLE_SPEED = 3

# Создание окна игры

screen = pygame.display.set_mode((SCREEN_WIDTH, SCREEN_HEIGHT))

pygame.display.set_caption("Собери урожай")

# Загрузка изображений

basket_img = pygame.image.load("basket.png")

vegetable_imgs = [

   pygame.image.load("carrot.png"),

   pygame.image.load("tomato.png"),

   pygame.image.load("cucumber.png"),

   pygame.image.load("pepper.png")

]

# Размеры и позиция корзины

basket_width = 80

basket_height = 80

basket_x = (SCREEN_WIDTH - basket_width) // 2

basket_y = SCREEN_HEIGHT - basket_height

# Класс овоща

class Vegetable:

   def __init__(self, img):

       self.img = img

       self.width = 50

       self.height = 50

       self.x = random.randint(0, SCREEN_WIDTH - self.width)

       self.y = -self.height

   def update(self):

       self.y += VEGETABLE_SPEED

   def draw(self):

       screen.blit(self.img, (self.x, self.y))

# Создание списка овощей

vegetables = []

for _ in range(10):

   vegetable_img = random.choice(vegetable_imgs)

   vegetable = Vegetable(vegetable_img)

   vegetables.append(vegetable)

# Игровой цикл

running = True

score = 0

clock = pygame.time.Clock()

while running:

   for event in pygame.event.get():

       if event.type == pygame.QUIT:

           running = False

   # Обработка нажатий клавиш

   keys = pygame.key.get_pressed()

   if keys[pygame.K_LEFT]:

       basket_x -= 5

   if keys[pygame.K_RIGHT]:

       basket_x += 5

   # Ограничение позиции корзины в пределах экрана

   if basket_x < 0:

       basket_x = 0

   if basket_x > SCREEN_WIDTH - basket_width:

       basket_x = SCREEN_WIDTH - basket_width

   # Обновление позиции и отображение овощей

   for vegetable in vegetables:

       vegetable.update()

       vegetable.draw()

       # Проверка столкновения корзины и овоща

       if vegetable.y + vegetable.height >= basket_y and \

          vegetable.x >= basket_x and \

          vegetable.x + vegetable.width <= basket_x + basket_width:

           vegetables.remove(vegetable)

           score += 1

       # Проверка достижения овощем нижней части экрана

       if vegetable.y >= SCREEN_HEIGHT:

           vegetables.remove(vegetable)

   # Отображение корзины

   screen.blit(basket_img, (basket_x, basket_y))

   # Отображение счета

   font = pygame.font.Font(None, 36)

   score_text = font.render("Score: " + str(score), True, WHITE)

   screen.blit(score_text, (10, 10))

   pygame.display.flip()

   screen.fill((0, 0, 0))

   clock.tick(60)

pygame.quit()

В этом примере мы используем Pygame для создания графического интерфейса игры. Вам также потребуется создать изображения овощей ("carrot.png", "tomato.png", "cucumber.png", "pepper.png") и изображение корзины ("basket.png") и сохранить их в одной папке с файлом скрипта. Овощи падают с верхней части экрана вниз, и пользователь должен перемещать корзину вправо и влево, чтобы собрать овощи. За каждый собранный овощ начисляется одно очко, и счет отображается на экране.

0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота