Урок:

Комп'ютерна гра: моделювання взаємодії з користувачем

17.05.2023
0 0
Опис уроку (учням цей опис не показується):

Цілі:

  • навчальна: рекурсивні функції

  • розвивальна: розвивати логічне мислення; формувати вміння діяти за інструкцією, планувати свою діяльність, аналізувати i робити висновки;

  • виховна: виховувати інформаційну культуру учнів, уважність, акуратність, дисциплінованість.

Вміст уроку:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

Урок не містить жодного завдання. Додайте завдання.

Щоб додати завдання, оберіть категорію завдання на панелі запитань.

2

03015ok4-35d1-940x543.png

3

Гімнастика для очей

03015ols-c201-940x507.png

Відеоінструкція (1 хв)

4

Створити Pygame-проект "Eyes"

0403098j-add6-244x226.png

5

Створити ігровий проект "Snake"

04031gi7-ce0e-300x225.png

Технічний опис проекту

Поїдання їжі змушує змію рости. Коли змія з'їла їжу, нова порція їжі переміщується в інше випадкове положення.

Змія появиться з іншого боку екрану, коли відійде від краю.

Гра закінчується, коли змія врізається сама в себе.

6

Розробка проекту.

Етап 1. Моделювання ігрового поля, змії та порції їжі

Змія представлена послідовністю позицій з координатами X і Y.

Їжа представлена однією позицією з координатамиX і Y.

Коли змія рухається, останній елемент у послідовності (тобто її старе положення хвоста) видаляється, а елемент додається спереду (тобто його нове положення голови) у напрямку, куди рухається змія.

Змія наближається до їжі

04031gmo-908b-501x232.png

Змія поглинає порцію їжі

04031gnf-7006-499x234.png

Нове положення голови знаходиться в тому самому положенні, що й їжа: хвіст змії не видаляється (їжа перефарбовується у голову змії). Нова порція їжі переміщується у випадкове положення, не зайняте змією.

04031gon-a04a-502x228.png

Якщо нова позиція голови знаходиться в тому ж положенні, що й інші сегменти змії, тоді гра закінчена:

04031gp4-b434-308x231.png

7

Підказка

Для прискорення роботи програмний код, який поданий у вигляді зображення, можна конвертувати у текст, який легко скопіювати, вставити у програму та виправити відступи відповідно до зразка.

Онлайн сервіс для конвертування зображення у текст

8

Етап 2. Базовий код проєкту

# імпортувати модулі для створення гри та випадкового положення їжі
import pgzrun
import pygame
import random

#встановити розмір ігрового поля
grid
_x_count = 20
grid
_y_count = 15

#функція для оновлення часу руху, позиції їжі та змії (клітинок, з яких вона складається)
def update(dt):
__global timer
__global food_position
__global snake_alive

#візуалізація (малювання їжі та змії)
def draw():
__screen.fill((0, 0, 0))

#вставновити розмір вікна програми
WIDTH = 15 * 20
HEIGHT = 15 * 15

#запустити гру на виконання
pgzrun.go()

9

Етап 3. Розташування їжі

Після блоку "Встановити розмір ігрового поля" додати функцію, яка створює координати для розташування їжі:


04031k6p-6311-628x478.png

10

Етап 4. Встановити початкові значення змінних

Перед функцією update() додати програмний код, який буде встановлювати початкові координати положення їжі, змії та значення таймеру для опису руху змії

04031ka5-751c-713x524.png

11

Етап 5. Функція оновлення ігрового стану (опис "логіки" гри)

Оновити положення змії кожні 0.25 секунди. Перевірити: 1) чи є куди переміщатись; 2) чи наштовхнулась змія на їжу та з'їла і збільшила свій розмір; 3) якщо немає куди рухатись, то змія "помирає" і гра починається спочатку через 8 секунд.

Перед функцією update() додати програмний код, який буде описувати "логіку" гри:

04031w61-8e42-558x852.png

12

Етап 6. Інтерактивна взаємодія з людиною за допомогою клавіатури

Перед функцією update() додати програмний код, який буде описувати, як змінити напрям руху змії після натискання клавіш keys.RIGHT, keys.LEFT, keys.DOWN або keys.UP

04031l8c-64bb-785x386.png

13

Етап 7. Візуалізація положення їжі та змії

Код функції draw() командами, які малюють квадрат, що позначає їжу, та послідовність квадратиків, що позначають змію04031lru-a9db-715x605.png

14

Увага: пам'ятайте, що гра автоматично перезапускається через 8 секунд. Якщо бажаєте збільшити цей час (щоб встигнути зробити скріншот), тоді змініть це значення наприкінці функції update().

Щоб розпочати гру - запустіть програму, клацніть мишкою по ігровому полю та натискайте на клавіатурі клавіші зі стрілками, щоб керувати напрямком руху змії.

Запустити програму на виконання. Під час гри спробувати створити змію як можна більшої довжини. Зробити та надіслати скріншот.

15

  1. Запишіть назви двох функцій, які є базовими для створення програмного коду комп'ютерної гри

  2. Запишіть назву функції, яка забезпечує інтерактивну взаємодію комп'ютерної гри та користувача

  3. Які змінні є глобальними (використовуються в різних функціях) для програми (підказка - вони позначені global)?

  4. Запишіть назви функцій, які не є базовими для створення комп'ютерної гри, але є важливими саме для гри Snake. Які завдання розв'язують ці функції?

  5. В якій функції встановлюють час через який оновлюється або відновлюється стан гри?

  6. Яку найбільшу за довжиною змію Вам вдалось створити у грі?

Рефлексія від 4 учнів

Сподобався:

0

Так: 4

Ні: 0

Зрозумілий:

0

Так: 4

Ні: 0

Потрібні роз'яснення:

0

Ні: 4

Так: 0

Рекомендуємо

Еволюція комп’ютерних пристроїв

Еволюція комп’ютерних пристроїв

292

Аватар профіля Костукевич Фелікс Віталійович
Інформатика
8 клас

33 грн

Тривимірне моделювання. Робота з об’єктами у редакторі тривимірної графіки

Тривимірне моделювання. Робота з об’єктами у редакторі тривимірної графіки

176

Аватар профіля Костукевич Фелікс Віталійович
Інформатика
9 клас

33 грн

Модифікатори. Булеві операції. Модифікатор Mirror (дзеркало). Згладжування

Модифікатори. Булеві операції. Модифікатор Mirror (дзеркало). Згладжування

138

Аватар профіля Костукевич Фелікс Віталійович
Інформатика
9 клас

33 грн

Мультимедіа: проєктування відеоконтенту

Мультимедіа: проєктування відеоконтенту

134

Аватар профіля Костукевич Фелікс Віталійович
Інформатика
8 клас

33 грн

Практична робота № 4. Створення бюлетеня з використанням шаблону та стилів оформлення

Практична робота № 4. Створення бюлетеня з використанням шаблону та стилів оформлення

239

Аватар профіля Костукевич Фелікс Віталійович
Інформатика
9 клас

33 грн

Художнє оформлення тексту. Ділова графіка. Створення векторного шрифтового плакату на задану тематику

Художнє оформлення тексту. Ділова графіка. Створення векторного шрифтового плакату на задану тематику

55

Аватар профіля Костукевич Фелікс Віталійович
Інформатика
11 клас

33 грн

Схожі уроки

Впорядкування, пошук і фільтрування даних.

Впорядкування, пошук і фільтрування даних.

1280

Аватар профіля Вожга Ірина Леонідівна
Інформатика
9 клас

Створення й уведення структури таблиць. Поняття таблиці, поля, запису. Створення таблиць, означення полів і ключів у середовищі СКБД. Властивості полів, типи даних.

Створення й уведення структури таблиць. Поняття таблиці, поля, запису. Створення таблиць, означення полів і ключів у середовищі СКБД. Властивості полів, типи даних.

1101

Аватар профіля Савка-Ржематорська Оксана Василівна
Інформатика
9 клас

Цикли з передумовою у вкладених циклах

Цикли з передумовою у вкладених циклах

1340

Аватар профіля Вожга Ірина Леонідівна
Інформатика
6 клас

Налаштування часових параметрів аудіо- та відеоряду.

Налаштування часових параметрів аудіо- та відеоряду.

492

Аватар профіля Солодовнікова Катерина Олексіївна
Інформатика
8 клас

Елемент керування «кнопка». Поняття об’єкту та його властивостей і методів (на прикладі елементів екранної форми). Властивості і методи елементів керування.

Елемент керування «кнопка». Поняття об’єкту та його властивостей і методів (на прикладі елементів екранної форми). Властивості і методи елементів керування.

649

Аватар профіля Пилипенко Олена Володимирівна
Інформатика
8 клас

Елемент керування кнопка

Елемент керування кнопка

277

Аватар профіля Пилипенко Олена Володимирівна
Інформатика
8 клас