• создать игру змейка на phyton на сайте replit c обьяснением

Ответы 1

  • Ответ:

    import pygame

    import sys

    import random

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

    pygame.init()

    # Определение размеров экрана

    WIDTH, HEIGHT = 800, 600

    GRID_SIZE = 20

    # Определение цветов

    BLACK = (0, 0, 0)

    WHITE = (255, 255, 255)

    GREEN = (0, 255, 0)

    RED = (255, 0, 0)

    # Создание экрана

    screen = pygame.display.set_mode((WIDTH, HEIGHT))

    pygame.display.set_caption("Змейка")

    # Инициализация змейки

    snake = [(GRID_SIZE, GRID_SIZE)]

    snake_direction = (GRID_SIZE, 0)

    snake_speed = 15

    # Инициализация фрукта

    fruit = (random.randint(0, WIDTH - GRID_SIZE) // GRID_SIZE * GRID_SIZE,

            random.randint(0, HEIGHT - GRID_SIZE) // GRID_SIZE * GRID_SIZE)

    # Очки

    score = 0

    # Функция рисования змейки

    def draw_snake(snake):

       for segment in snake:

           pygame.draw.rect(screen, GREEN, (segment[0], segment[1], GRID_SIZE, GRID_SIZE))

    # Функция рисования фрукта

    def draw_fruit(fruit):

       pygame.draw.rect(screen, RED, (fruit[0], fruit[1], GRID_SIZE, GRID_SIZE))

    # Главный игровой цикл

    while True:

       for event in pygame.event.get():

           if event.type == pygame.QUIT:

               pygame.quit()

               sys.exit()

       keys = pygame.key.get_pressed()

       if keys[pygame.K_LEFT] and snake_direction != (GRID_SIZE, 0):

           snake_direction = (-GRID_SIZE, 0)

       if keys[pygame.K_RIGHT] and snake_direction != (-GRID_SIZE, 0):

           snake_direction = (GRID_SIZE, 0)

       if keys[pygame.K_UP] and snake_direction != (0, GRID_SIZE):

           snake_direction = (0, -GRID_SIZE)

       if keys[pygame.K_DOWN] and snake_direction != (0, -GRID_SIZE):

           snake_direction = (0, GRID_SIZE)

       # Перемещение змейки

       new_head = (snake[0][0] + snake_direction[0], snake[0][1] + snake_direction[1])

       snake.insert(0, new_head)

       # Проверка на столкновение с фруктом

       if snake[0] == fruit:

           score += 1

           fruit = (random.randint(0, WIDTH - GRID_SIZE) // GRID_SIZE * GRID_SIZE,

                    random.randint(0, HEIGHT - GRID_SIZE) // GRID_SIZE * GRID_SIZE)

       else:

           snake.pop()

       # Проверка на столкновение с границами

       if snake[0][0] < 0 or snake[0][0] >= WIDTH or snake[0][1] < 0 or snake[0][1] >= HEIGHT:

           pygame.quit()

           sys.exit()

       # Проверка на столкновение с самой собой

       if len(snake) > 1 and snake[0] in snake[1:]:

           pygame.quit()

           sys.exit()

       # Очистка экрана

       screen.fill(BLACK)

       # Рисование змейки и фрукта

       draw_snake(snake)

       draw_fruit(fruit)

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

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

       score_text = font.render(f"Счет: {score}", True, WHITE)

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

       # Обновление экрана

       pygame.display.update()

       # Задержка

       pygame.time.delay(1000 // snake_speed)

  • Добавить свой ответ

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years