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

创建于:2024年9月28日

使用 O1 Preview 回答 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.

Примечание:

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

分享这个问答