Вопрос:
Напиши код змейки на Python
Ответ ассистента
Конечно, вот простой код змейки на Python с использованием библиотеки Pygame. Этот код создаёт окно, рисует змейку и яблоко, и позволяет управлять змейкой с помощью стрелок.
```python import pygame import random
Инициализация Pygamepygame.init()
Размеры окнаwidth, height = 600, 480 screen = pygame.display.set_mode((width, height)) pygame.display.set_caption("Змейка")
Цветаblack = (0, 0, 0) white = (255, 255, 255) red = (255, 0, 0) green = (0, 255, 0)
Размеры змейки и яблокаblock_size = 20
Скорость змейкиsnake_speed = 15
Шрифтfont_style = pygame.font.SysFont(None, 30)
def message(msg, color): mesg = font_style.render(msg, True, color) screen.blit(mesg, [width/6, height/3])
Функция для рисования змейкиdef our_snake(block_size, snake_list): for x in snake_list: pygame.draw.rect(screen, green, [x[0], x[1], block_size, block_size])
Основная функция игрыdef gameLoop(): game_over = False game_close = False
# Начальные координаты змейки x1 = width / 2 y1 = height / 2 # Изменение координат x1_change = 0 y1_change = 0 # Длина змейки snake_list = [] snake_length = 1 # Координаты яблока foodx = round(random.randrange(0, width - block_size) / block_size) * block_size foody = round(random.randrange(0, height - block_size) / block_size) * block_size clock = pygame.time.Clock() while not game_over: while game_close == True: screen.fill(black) message("Вы проиграли! Нажмите Q-выйти или C-играть снова", red) pygame.display.update() for event in pygame.event.get(): if event.type == pygame.KEYDOWN: if event.key == pygame.K_q: game_over = True game_close = False if event.key == pygame.K_c: gameLoop() for event in pygame.event.get(): if event.type == pygame.QUIT: game_over = True if event.type == pygame.KEYDOWN: if event.key == pygame.K_LEFT: x1_change = -block_size y1_change = 0 elif event.key == pygame.K_RIGHT: x1_change = block_size y1_change = 0 elif event.key == pygame.K_UP: y1_change = -block_size x1_change = 0 elif event.key == pygame.K_DOWN: y1_change = block_size x1_change = 0 if x1 >= width or x1 < 0 or y1 >= height or y1 < 0: game_close = True x1 += x1_change y1 += y1_change screen.fill(black) pygame.draw.rect(screen, red, [foodx, foody, block_size, block_size]) snake_head = [] snake_head.append(x1) snake_head.append(y1) snake_list.append(snake_head) if len(snake_list) > snake_length: del snake_list[0] for x in snake_list[:-1]: if x == snake_head: game_close = True our_snake(block_size, snake_list) pygame.display.update() if x1 == foodx and y1 == foody: foodx = round(random.randrange(0, width - block_size) / block_size) * block_size foody = round(random.randrange(0, height - block_size) / block_size) * block_size snake_length += 1 clock.tick(snake_speed) pygame.quit() quit() Запуск игрыgameLoop() ```
Как это работает:
- Инициализация Pygame: pygame.init() - подготавливает Pygame к работе.
- Окно: Создается окно с заданными размерами.
- Цвета: Определяются основные цвета.
- Размеры: Устанавливается размер блока для змейки и яблока.
- Скорость: Определяется скорость движения змейки.
- Функция message(): Выводит сообщение на экран.
- Функция our_snake(): Рисует змейку, используя список координат.
- Основной цикл игры:
- Задаются начальные координаты змейки и яблока.
- Змейка движется, изменяя координаты в зависимости от нажатых клавиш.
- Если змейка сталкивается со стеной или сама с собой, игра заканчивается.
- Когда змейка съедает яблоко, её длина увеличивается, и появляется новое яблоко в случайном месте.
- Управление: Змейкой можно управлять с помощью клавиш стрелок.
Чтобы запустить эту игру, убедись, что у тебя установлен Pygame:
bash pip install pygame
Сохрани код в файл, например, snake.py, и запусти его:
bash python snake.py
Надеюсь, тебе понравится!
Другие решения
Что ещё задавали пользователи
-
Вспомни свойства сложения и объясни, почему верны следующие равенства. Продолжи по образцу.
Показать ответ -
Текст учебного пособия по анатомии на латинском языке.
Показать ответ -
Choose the correct preposition. 1. The British often contrast their manners to those of people living in the Continent. 2. Let's meet by the Jennings' later in the afternoon. They live by the lake, we'll make all the pictures you need.
Показать ответ -
In which of these sentences the blank should be filled with until?
Показать ответ -
Рассмотри книгу, найди и запиши данные о ней.
Показать ответ -
Fill in the blanks with the appropriate preposition.
Показать ответ -
Существует мнение, что жить исключительно на доходы от собственности на землю или капитал аморально. Согласны ли Вы с этой точкой зрения? Используя обществоведческие знания, приведите два аргумента (объяснения) в защиту своей позиции.
Показать ответ -
Put in the prepositions in (the), on (the), at (the) if necessary
Показать ответ -
Put in the prepositions in (the), on (the), at (the) if necessary. 1. I'm going to visit my parents on Easter. 2. I've got an appointment in this evening.
Показать ответ -
Заполните пропуски артиклями, где это необходимо.
Показать ответ