Небольшая песочница в терминале на Си с использованием ncurses (если программу скомпилировать под Windows, что не рекомендуется делать, то будет использоваться библиотека PDCurses).
Блоки:
Пустота – пустота#Песок – сыпется (ого!).Вода – льётся (не может быть!), правда, немного медленно и дёргано@Камень – летает и не горит$Дерево - летает и горит+Пепел - сыпется, такая же, как и песок^!Огонь – сжигает дерево, с некоторым шансом превращает его в золу, превращает воду в пар&Бомбочка – взрывается, уничтожая, сжигая и отбрасывая всё вокруг себя'Пар – Летает туда-сюда, стремясь вверх
В левом-верхнем углу находится один блок, показывающий тип блока, который сейчас выбран. Правее него находится размер кисти, а после него имя выбранного блока. На поле находится подсвечиваемый курсор, которым можно двигать и ставить на его месте выбранные блоки.
Управление в главном окне:
- ЛКМ и клавиша
Пробел– поставить блок на месте курсора - Нажатие на колёсико – удалить блок на месте курсора
- Вращение колёсика – увеличить/уменьшить размер кисти
- Клавиша
Q– выйти - Клавиша
C– очистка всего поля - Клавиша
P– пауза - Клавиша
H– скрыть/показать курсор - Клавиша
+– увеличить размер кисти - Клавиша
-– уменьшить размер кисти - Клавиша
Tab– открыть/закрыть меню выбора типа ячеек, при открытии меню вся игра ставится на паузу - Клавиши цифр – заменить выбранный (тот, что показывается в левом-верхнем углу) блок на блок с определённым номером
- Клавиши стрелок – передвижение курсора на одну клетку
Управление в меню выбора ячейки:
- Клавиша
Q– закрыть окно и выйти - Клавиши стрклок влево и вправо – перемещать курсор выбора типа блока вправо или влево
- ЛКМ – Выбор типа блока, на имя которого было нажато
Вот такой командой компилируете:
gcc main.c -o sandbox -lncurses -pthread
В команде запуска песочницы модно указать следующие параметры:
--help,-h– Выводит сообщение справки--no-colors,-n– Отключает цвета в выводе--square,-s– Делает клетки квадратными, то есть в два символа--simple-fire,-f– Включает упрощённое рисование огня--simple-steam,-t– Включает упрощённое рисование пара--hover,-H– Делает так, чтобы курсор всегда следил за мышкой, а не только при нажатии--auto-hide,-a– Включает автоматическое скрывание курсора, если не происходит накакого движения и действия с курсором--tps <number>,-T <number>– Устанавливает значение TPS (по умолчанию 30)--water <number>,-w <number>– Устанавливает для воды количество итераций за тик (по умолчанию 50)
Например, если вам не нравится то, как отображается пар (вам хочется, чтобы он был в одну клетку), хотите сделать ячейки квадратными и TPS равным 60, то вы должны запустить такую команду:
./sandbox --square --simple-steam --tps 60
или такую:
./sandbox -st -T 60