На самом деле возможно построить с нуля, но зависит от того, что вы ищете.Я предполагаю, что вы хотите создать простой лабиринт, как в старомодных 8-битных играх, таких как boulder dash.
Сначала определитесь с размером вашего лабиринта: например, 5 х 5 блоков.Если вы хотите создать лабиринт, представьте, что рисуете его на сетке на бумаге.Блоки либо "пустые", либо заполнены. Наш лабиринт может быть представлен числами.Пустые блоки представлены 0, а заполненные блоки - 1.
. Вы можете визуализировать эту матрицу следующим образом, если все блоки пусты:
0,0,0,0,0,
0,0,0,0,0,
0,0,0,0,0,
0,0,0,0,0,
0,0,0,0,0
Добавление пограничной стены при сохранениивнутренняя пустота будет выглядеть следующим образом:
1,1,1,1,1,
1,0,0,0,1,
1,0,0,0,1,
1,0,0,0,1,
1,1,1,1,1
Использование переменной «list» для хранения этой информации будет наилучшим образом соответствовать возможностям MIT Scratch.
В этом случае вам необходимо понятьчто каждый блок в нашем лабиринте представлен позицией в приведенной выше матрице.Вы можете нарисовать числа на листе бумаги в форме и размере вашей сетки / матрицы в качестве справки, чтобы запомнить положение каждого блока, если это облегчает его.
Нам также нужно посмотреть, как наш лабиринтбудет относиться к размеру сцены.Ширина и высота в пикселях стандартного скретч-проекта составляет 480x360.
Лабиринт 5 x 5 разделен на блоки шириной 480/5 = 96 и высотой 360/5 = 72.Другими словами, размер блока должен составлять 96x72 пикселя на основе полноэкранного лабиринта.
Следующим шагом является создание спрайта, представляющего визуализацию блоков лабиринта.Я бы оставил первый «костюм» нашего блочного спрайта пустым и создал бы полностью заполненный блок, представляющий стены лабиринта.
После этого нам нужно программно создать наш лабиринт.Я сделал пример, вы можете исследовать случайное рисование блоков лабиринта: https://scratch.mit.edu/projects/278731659/
(Вы можете изменить значение строк и столбцов, чтобы увеличить его масштаб, но помните ограничение на количество клоновблочный спрайт может иметь 300)
Это только начало и ни в коем случае не полное решение.Я просто надеюсь, что это поможет вам мыслить в правильном направлении.
Вы можете сделать это более продвинутым, добавив функцию для исследования и исправления нашей случайно нарисованной сетки, чтобы сгенерировать пройденный путь из положения x в положение y.Например, правило, которое вы можете запрограммировать: каждая пустая позиция в сетке должна иметь как минимум две другие пустые позиции в пространствах выше, ниже, слева и справа от нее.