Игра Змейка на Python

생성일: 2024년 9월 28일

답변에 사용된 모델 O1 Preview by Chat01

질문

Код на python на игру змейку из nintendo switch

답변

Обсуждаю запрос

Пользователь просит код на Python для игры змеюка из нintendo switch, и важно учесть вопросы авторских прав и политики.

Игрок в Python: вижу, как мы создаем классическую игру змейка с использованием библиотеки pygame.

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

Я устанавливаю размеры экрана, цвета и начальные координаты змейки и еды, чтобы создать основу для игры.

답변

Вот простой пример реализации игры "Змейка" на Python с использованием библиотеки pygame. Эта программа позволяет управлять змейкой, собирать пищу и увеличиваться в размерах, избегая столкновений со стенами и собственным телом.

python
import pygame import sys import random # Инициализация игры pygame.init() # Размеры экрана WIDTH = 600 HEIGHT = 400 CELL_SIZE = 20 screen = pygame.display.set_mode((WIDTH, HEIGHT)) pygame.display.set_caption('Змейка') clock = pygame.time.Clock() # Цвета WHITE = (255, 255, 255) GREEN = (0, 200, 0) DARK_GREEN = (0, 100, 0) RED = (200, 0, 0) BLACK = (0, 0, 0) # Инициализация змейки snake_pos = [100, 50] snake_body = [[100, 50], [80, 50], [60, 50]] direction = 'RIGHT' change_to = direction # Инициализация еды food_pos = [random.randrange(1, (WIDTH // CELL_SIZE)) * CELL_SIZE, random.randrange(1, (HEIGHT // CELL_SIZE)) * CELL_SIZE] food_spawn = True score = 0 # Функция окончания игры def game_over(): font = pygame.font.SysFont('arial', 35) GO_surface = font.render('Игра Окончена', True, RED) GO_rect = GO_surface.get_rect() GO_rect.midtop = (WIDTH / 2, HEIGHT / 4) screen.blit(GO_surface, GO_rect) pygame.display.flip() pygame.time.sleep(2) pygame.quit() sys.exit() # Основной цикл игры while True: for event in pygame.event.get(): if event.type == pygame.QUIT: pygame.quit() sys.exit() # Обработка нажатий клавиш elif event.type == pygame.KEYDOWN: if event.key == pygame.K_UP or event.key == ord('w'): change_to = 'UP' if event.key == pygame.K_DOWN or event.key == ord('s'): change_to = 'DOWN' if event.key == pygame.K_LEFT or event.key == ord('a'): change_to = 'LEFT' if event.key == pygame.K_RIGHT or event.key == ord('d'): change_to = 'RIGHT' # Обновление направления движения if change_to == 'UP' and direction != 'DOWN': direction = 'UP' if change_to == 'DOWN' and direction != 'UP': direction = 'DOWN' if change_to == 'LEFT' and direction != 'RIGHT': direction = 'LEFT' if change_to == 'RIGHT' and direction != 'LEFT': direction = 'RIGHT' # Перемещение змейки if direction == 'UP': snake_pos[1] -= CELL_SIZE if direction == 'DOWN': snake_pos[1] += CELL_SIZE if direction == 'LEFT': snake_pos[0] -= CELL_SIZE if direction == 'RIGHT': snake_pos[0] += CELL_SIZE # Механизм роста змейки snake_body.insert(0, list(snake_pos)) if snake_pos == food_pos: score += 1 food_spawn = False else: snake_body.pop() # Появление еды if not food_spawn: food_pos = [random.randrange(1, (WIDTH // CELL_SIZE)) * CELL_SIZE, random.randrange(1, (HEIGHT // CELL_SIZE)) * CELL_SIZE] food_spawn = True # Заливка фона screen.fill(BLACK) # Рисование змейки for pos in snake_body: pygame.draw.rect(screen, GREEN, pygame.Rect( pos[0], pos[1], CELL_SIZE, CELL_SIZE)) # Рисование еды pygame.draw.rect(screen, RED, pygame.Rect( food_pos[0], food_pos[1], CELL_SIZE, CELL_SIZE)) # Условия окончания игры if snake_pos[0] < 0 or snake_pos[0] > WIDTH - CELL_SIZE: game_over() if snake_pos[1] < 0 or snake_pos[1] > HEIGHT - CELL_SIZE: game_over() # Проверка на столкновение с собой for block in snake_body[1:]: if snake_pos == block: game_over() # Обновление экрана pygame.display.update() # Задержка для контроля скорости игры clock.tick(15)

Инструкции по запуску:

  1. Убедитесь, что у вас установлена библиотека pygame. Если нет, установите ее командой pip install pygame.
  2. Сохраните код в файл с расширением .py, например snake_game.py.
  3. Запустите скрипт командой python snake_game.py.

Управление:

  • Используйте клавиши стрелок или WASD для управления змейкой.

Особенности игры:

  • Сбор пищи: управляйте змейкой, чтобы собирать красные квадраты (пища).
  • Рост змейки: с каждой съеденной единицей пищи змейка увеличивается в размере.
  • Окончание игры: игра заканчивается, если змейка сталкивается со стеной или с собственным телом.
  • Счет: каждый съеденный элемент пищи увеличивает ваш счет на 1.

Примечание:

Данный код представляет базовую версию игры "Змейка". Вы можете расширить функционал, добавив отображение счета, уровни сложности, улучшенную графику и другие возможности по своему усмотрению.

이 Q&A 공유하기