Змійка (Гра на Python)

Про матеріал
Мета: Використовуючи додаткові модулі, зокрема pygame, розробити поетапно гру "Змійка". Взявши за основу код програми, учні можуть самостійно вдосконалити алгоритм гри, наприклад, урізнювати тип їжі, що можна змійці їсти, а що ні - при цьому це впливає на швидкість руху, довжину, товщину тощо.
Зміст слайдів
Номер слайду 1

Змійка(Гра на Python)

Номер слайду 2

import pygame, sys, time, random. Підключення модулів та бібліотек

Номер слайду 3

Розмір ігрового поля та рівня гриdifficulty = 10# Розмір вікнаframe_size_x = 720frame_size_y = 480 Рівень складності гри (від 10 до 120)

Номер слайду 4

# Перевірка на помилкиcheck_errors = pygame.init()# pygame.init() example output -> (6, 0)# друге число в кортежі дає кількість помилокif check_errors[1] > 0: print(f'[!] Had {check_errors[1]} помилка ініціалізації гри, вихід...') sys.exit(-1)else: print('[+] Гра успішно ініціалізована')Ініціалізація гри

Номер слайду 5

# Iніціалізація вікна гриpygame.display.set_caption(‘Змійка')game_window = pygame.display.set_mode((frame_size_x, frame_size_y))# Кoльори (R, G, B)black = pygame. Color(0, 0, 0)white = pygame. Color(255, 255, 255)red = pygame. Color(255, 0, 0)green = pygame. Color(0, 255, 0)blue = pygame. Color(0, 0, 255)Ініціалізація гри (провження)

Номер слайду 6

# FPS (кадрів за секунду) контролерfps_controller = pygame.time. Clock()# Змінніsnake_pos = [100, 50]snake_body = [[100, 50], [100-10, 50], [100-(2*10), 50]]food_pos = [random.randrange(1, (frame_size_x//10)) * 10, random.randrange(1, (frame_size_y//10)) * 10]food_spawn = Truedirection = 'RIGHT'change_to = directionscore = 0 Змінні програми. Рахунок гри

Номер слайду 7

Функція закінчення гри

Номер слайду 8

Функція обчислення рахунку гри

Номер слайду 9

Основна програма

Номер слайду 10

# Змія не може рухатися в протилежному напрямку 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'Напрямок руху

Номер слайду 11

# Рух змії if direction == 'UP': snake_pos[1] -= 10 if direction == 'DOWN': snake_pos[1] += 10 if direction == 'LEFT': snake_pos[0] -= 10 if direction == 'RIGHT': snake_pos[0] += 10 Переміщення змії

Номер слайду 12

# Механізм росту тіла змії snake_body.insert(0, list(snake_pos)) if snake_pos[0] == food_pos[0] and snake_pos[1] == food_pos[1]: score += 1 food_spawn = False else: snake_body.pop()Довжина змії

Номер слайду 13

# Їжа на екрані if not food_spawn: food_pos = [random.randrange(1, (frame_size_x//10)) * 10, random.randrange(1, (frame_size_y//10)) * 10] food_spawn = TrueЇжа для змії

Номер слайду 14

# GFX game_window.fill(black) for pos in snake_body: # Тіло змії # .draw.rect(play_surface, color, xy-coordinate) # xy-coordinate -> . Rect(x, y, size_x, size_y) pygame.draw.rect(game_window, green, pygame. Rect(pos[0], pos[1], 10, 10)) # Їжа pygame.draw.rect(game_window, white, pygame. Rect(food_pos[0], food_pos[1], 10, 10))Малювання змії та їжі

Номер слайду 15

# Кінець гри # Вихід за межі if snake_pos[0] < 0 or snake_pos[0] > frame_size_x-10: game_over() if snake_pos[1] < 0 or snake_pos[1] > frame_size_y-10: game_over() # Toркання тіла змії for block in snake_body[1:]: if snake_pos[0] == block[0] and snake_pos[1] == block[1]: game_over()Кінець гри

Номер слайду 16

show_score(1, white, 'consolas', 20) # Оновлення екрана гри pygame.display.update() # Рівень гри fps_controller.tick(difficulty)Режим гри. Кінець коду

Номер слайду 17

Загальний код

Номер слайду 18

Номер слайду 19

Номер слайду 20

Номер слайду 21

Номер слайду 22

Кінець

pptx
До підручника
Інформатика 8 клас (Казанцева О.П., Стеценко І.В.)
Додано
11 травня
Переглядів
240
Оцінка розробки
Відгуки відсутні
Безкоштовний сертифікат
про публікацію авторської розробки
Щоб отримати, додайте розробку

Додати розробку