Комментарии 32
в программах с применением
ncurses
можно переставлять в окне командной строки курсор, а также ставить на экране отдельные символы там, где угодно.
Можно подумать, без сторонней библиотеки нельзя в произвольном месте произвольный символ вывести.
Скорее всего, выросло поколение никогда не видевшее TurboVision.
ооо, вспомнил, gotoxy()
Можно же просто
printf("\033[%i;%iH%c", y, x, symbol);
Подозреваю, что под ДОСом (во времена TurboVision), для того, чтобы это заработало, необходим был драйвер ansi.sys, о назначении и даже существовании которого многие даже не догадывались.
На Win11 что-то не работает.
TurboVision было отдельной библиотекой, к и ncurses. Выше же говорится, что символы можно лепить где попало и без сторонних библиотек.
Turbo Vision это окошки, кнопки и прочий UI в текстовом режиме. Для отображения символов в Turbo Pascal был встроенный модуль Crt. Или можно было самому писать в память по адресу B800:0000.
В современном Free Pascal для Linux, Windows и macOS также доступен Crt.
тетрис, реализованный на разных языках: https://github.com/kt97679/tetris с минимумом внешних зависимостей
Я согласен с автором, тетрис - вещь величайшая. Однако, на сегодня появились довольно интересные и совсем нетребовательные игры, которые вполне могли бы появиться не то что во времена тетриса, а ещё в 80-х. Например 2048. На экран каноничного BRICK GAME его не всунешь, но представив вместо цифр некие фигуры вполне можно было бы подобное создать. Также, огромное количество TOWER DEFENSE всех мастей и расцветок. Их можно было бы даже собрать на довольно простой логике ещё в советском союзе, просто этой игры ещё не существовало. Я б поиграл!
Блин, аж захотелось какие-нибудь гоночки прям в консоли в ASCII графике. Кто-то знает?
Гоночки я в своё время на МК-61 делал. Мигающими при работе программы символами. Для управления использовался переключатель градусы/грады/радианы, через cos(100)
Есть вот такие https://github.com/UpGado/ascii_racer
Все сделал по инструкции:
$ ./main
unable to initialize SDL_mixer
Предлагаю идею: тетрис на плагинах. Этакий WTF-Tris. По сути, от тетриса -- только стакан с регулируемыми габаритами и отображение статистики. Ну, можно ещё какие-нибудь режимы типа "stack-up". Остальное (включая фигурки) определяется конкретным плагином. Примеры плагинов:
-- Tetris: обычный тетрис/пентис
-- Wordtris: в кубиках отображаются буквы; удаляются не полные линии, а любые цепочки -- вертикальные, горизонтальные, диагональные, -- образующие слова
-- Huetris: кубики градиентные; удаляются цепочки, составляющие градиент (по типу игр "I love hue" на андроид) или имеющие одинаковые цвета
-- Numtris: в кубиках отображаются циры; удаляются цепочки последовательных цифр или одинаковых цифр (или по другим правилам)
-- Hardcoretris: для "больных ублюдков" :); комбинация совместимых плагинов, т.е. градиентные слова или цифры и т.п.
То есть буквально тетрис-хуетрис. (1 и 3 пункты)
Потом надо ещё добавить:
Плагин на лутбоксы для этого тетриса.
Плагин на баттлепасс.
Плагин на премиум аккаунты.
Плагин на платные скины для фигур.
Плагин для получения уровня, прокачки аккаунта и дерева талантов (например, талант, позволяющий выбрать следующую фигуру раз в 10 ходов и т. д.)
Плагин для коллекций (всякие собираемые фигурки плюшевых мишек и прочее)
Плагин для главной сюжетной линии, подаваемой через записки, голосовые записи и собираемые воспоминания, доступные для просмотра и прослушивания в дневнике.
Плагин для видеоматериалов о создании игры.
Плагин для просмотра концепт-артов.
Плагин для "Новая игра+".
Плагин для "Новая игра++".
Плагин, добавляющий квесты сюжетной линии.
Плагин, добавляющий в тетрис второстепенные квесты.
Плагин, добавляющий ежедневные квесты.
Плагин, добавляющий колесо фортуны, которое можно бесплатно крутить раз в день.
Плагин на энергию, которая тратится на выкладывание каждой фигуры.
эх, как же так
картинка в статье и в репозитории отличается((
А с каких пор на ncurses можно GUI слепить? Или я что-то пропустил?
На Free Pascal было бы попроще.
Как заново реализовать тетрис