https://dota2.ru/forum/threads/simuljator-vzloma-terminala-iz-fallout-3-nv-4.1447628/
Некоторое время назад я писал про симулятор мини-игры взлома терминала из трёхмерных Фоллаутов.
В качестве одной из главных проблем была указана проблема отсутствия мотивации играть. Нет награды. Я не очень согласен - в Судоку тоже нет награды, кроме чувства победы. Но, с другой стороны, тоже согласен. Ведь судоку - игра абстрактная. А взлом терминала тематически привязан именно ко взлому терминала. Юный взломщик, да и вообще любой адекватный человек даже на подсознательном уровне ожидает, что после взлома терминала он сможет получить доступ к какой-то хранящейся в нём информации, будь то координаты клада, дневник шизофреничного аль-гуля или диссертация на тему биохимии возникновения микротрещин в волосах на голове человека.
Таким образом, передо мною стоит проблема написания "ОС" для этого терминала. Системы, которая позволит делать простейшие действия из Фоллаутов. Очевидно, что открывать двери или активировать роботов не имеет смысла по причине отсутствия окружающего мира (привет, Матрица), но создавать текстовые заметки и читать их - дело благое.
Как я вижу эту "ОС"?
- Она делится на "Конфигурации" или "Пользователей". При запуске терминала нужно выбрать пользователя. Если пользователь один (администратор) - грузится сразу он. При этом если нет пароля, то идёт сразу загрузка системы, а если есть - то требуется ввести пароль. В этом месте можно либо сразу писать пароль, либо... нажав секретную комбинацию клавиш (как ctrl-alt-del, только очевидно без реальных системных сочетаний винды, которые из игры я поймать не смогу) войти в "режим отладки", которым является мини-игра по взлому терминалов.
- Внутри содержится древовидная структура файлов. Каждый файл открывается программой, которая зависит от разрешения файла. (папка - это файл, который содержит в себе ссылки на файлы, и открывается "проводником").
- В большинстве случаев доступна командная строка, в которой можно вручную запустить любую программу с параметрами или без, что может понадобиться для создания нового файла или открытия программы, которая не создаёт файлы ("калькулятор", например). Соответственно, формат ввода примерно такой: "команда параметр1 параметр2 параметр3... параметрN".
А как? Серьёзно, у меня ровно нуль рабочих схем такого проекта, как я ни старался придумывать.
Две моих лучших попытки выглядели так:
- Вся система это список Object. Каждый объект - это экземпляр ICommand.ConcreteCommand. У них у всех есть три пересечения: поле для выводимого текста, поле для экранных координат и длины выводимого объекта, метод Execute(). Да, я знаю. Это совершенно, мастерски, шедеврально, Евгениально. Но есть одна крошечная проблемка. Я сам не понимаю, как из этого можно сделать то, что я описал выше.
- Буквально описанная выше эпидерсия. А именно, интерпретатор команд и процедуры-"программы", которые он запускает (проводник, блокнот). Всё круто. Но есть одна крошечная проблема. Я всё ещё не понимаю, рабочая ли это схема.
ИТОГО: я считаю приоритетной схему №2. Что думаете вы, и есть ли у вас свои идеи на этот счёт?