🎯 Цели занятия
- Повторить идею разбиения программы на функции
- Сделать отдельные функции для стен, крыши, двери, окон
- Собрать дом в
build_house()и запустить из чата - Понять, как передавать «угол дома» через параметры или общие переменные
📋 План занятия
| Этап | Время | Что делаем |
|---|---|---|
| Повторение | 10 мин | def и вызовы |
| Архитектура дома | 15 мин | 4 функции + главная |
| Координаты | 15 мин | player.position(), fill |
| Практика | 45 мин | Строим дом |
| Итоги | 5 мин | Рефлексия |
| Итого | 90 мин | — |
1 Повторение: зачем функции в стройке
Дом — сложный объект. Если написать всё в одной функции на 80 строк, ошибку найти трудно. Удобнее:
build_walls()— каркас и стены (напримерblocks.fillсHOLLOW);build_roof()— «шапка» из другого блока;build_door()— проём 1×2 (воздух или другой блок);build_windows()— 1–2 блока стекла в стенах;build_house()— вызывает всё по порядку.
🧱 Стены
HOLLOW 7×5×7 или свой размер
🏠 Крыша
fill поверх стен, другой блок
🚪 Дверь
replace / place AIR или DOOR
🪟 Окна
GLASS в стене
2 Скелет проекта
Угол дома можно вычислить один раз в build_house() и передать числами X, Y, Z в каждую функцию — или сохранить в переменные, которые видны всем функциям (осторожно с global, на занятии проще передавать параметры).
def build_walls(x, y, z):
# blocks.fill(..., world(x,y,z), ..., FillOperation.HOLLOW)
pass
def build_roof(x, y, z):
pass
def build_door(x, y, z):
pass
def build_windows(x, y, z):
pass
def build_house():
p = player.position()
x = p.get_value(Axis.X) + 5
y = p.get_value(Axis.Y)
z = p.get_value(Axis.Z) + 5
build_walls(x, y, z)
build_roof(x, y, z)
build_door(x, y, z)
build_windows(x, y, z)
player.say("Дом готов!")
player.on_chat("dom", build_house)
blocks.fill и координаты — здесь акцент на модульности, а не на ИИ.
Если застрял на fill или HOLLOW — короткий вопрос.
🛠️ Практика: дом из функций
Минимальный размер: 6×4×6 (можно больше). Команда чата — на твой выбор (dom, house…).
Полый прямоугольник. Блок стен — на выбор (OAK_PLANKS, COBBLESTONE…).
Слой крыши на верхней грани дома (y + высота).
Проём 1×2 на передней стене — AIR или блок двери.
Минимум 2 окна из GLASS.
Считай угол, вызови 4 функции по порядку.
Свой мир, команда в чате, дом рядом с игроком.
Покажи преподавателю: какая функция за что отвечает.