Нате!
Решил начать допиливать свою игру.
пока обучаюсь питону, решил допиливать на паскале abc
а вот и исходный код
Code: Select all
program Hack_OS_prealpha06;
uses CRT;
uses Utils;
var
t: integer; //time - время
m, f, e: integer; // e - параметр для времени выхода
k, user, usr: string; // k - команды от пользователя, user - считывание логина/пароля с клавиатуры, usr - считывание логина/пароля с файла
log: text;// log - файл логина/пароля
//Раздел: процедуры
procedure help(var k: string);//Помощь
begin
writeln(' ');
writeln('Команды, которые помогут тебе соориентироваться:');
writeln('clearscr - если вы дезориентированы в гуще строк, наберите эту команду');
writeln('profile - общая информация о тебе');
writeln('web - интернет, где можно найти как удачу, так и беду');
writeln('help - путеводитель');
writeln('hacktool - с помощью этой штуки можно взломать всё, что угодно - от компьютера офисного работника до сервера NetKings! Внимание! Знание E-Script обязательно!');
writeln('task - если вы устали сидеть просто так, займитесь делами!');
writeln('Удачи!');
writeln(' ');
write('>user: ');
end;
procedure clearscr(var k: string);//Стереть экран
begin
ClrScr;
write('>user: ');
end;
procedure web(var k: string);//Просмотр интернета
begin
writeln('');
writeln('ezine - электронный магазин, где можно заказать от ультратонкого ноутбука до топового компьютера!');
writeln('stocks - электронные акции некоторых компаний. Если вам нужно больше денег или же уверенность, что они останутся целыми, этот вариант для вас.');
writeln('re - рынок - место, где за небольшие деньги можно купить уценёнку, а за запчасти, найденые на работе или прогулке, редкое железо, которого больше нигде не достать.');
writeln('azino777 - азартное казино, где можно как выиграть, так и проиграть!');
writeln('arena - простенькие соревнования между хакерами. Вход только для людей, укротивших командную строку!');
writeln('torbwr - Даркнет - поистине уникальный ресурс! Будьте осторожны!');
writeln('');
write('>user: ');
end;
procedure profile(var k: string);//Просмотр профиля
begin
writeln('');
writeln('Ник ');
writeln('Уровень: xxxxx');
writeln('Опыт: xxxx of xxxx');
Writeln('Деньги: xxxx');
Writeln('E-Coin: xxxx');
Writeln('Action: xxxx');
Writeln('Мотивация: xxxx');
writeln('----------------');
Writeln('Скилы');
writeln('');
writeln('Практика: хххх');
writeln('Теория: АА+ВВ');
writeln('Хитрость: xxxxx');
writeln('Мудрость: xxxxx');
writeln('Выносливость: 100%');
writeln('----------------');
writeln('Занятие');
writeln('');
writeln('Дела: работаешь, осталось х минут');
writeln('Ты собираешься атаковать ххххх');
writeln('До сна осталось хх часов хх минут');
writeln('');
write('>user: ');
end;///
procedure hack(var k: string);//Утилита для взлома
begin
writeln('');
writeln('>hos: loading iaicracker.exf');
writeln('>hos: load complete');
Delay(500);
writeln('>crck: target search...');
Delay(f);
writeln('');
writeln('Aegis servers (3)');
writeln('Phantoms servers (4)');
writeln('NHS servers (5)');
writeln('Встать на защиту своего сервера (6)');
writeln('Интернет (6)');
writeln('');
writeln('Введите цифру, соответствующую пункту, который вы выбрали');
write('>user: ');
readln(k);
end;
procedure task(var k: string);//Просмотр раздела "Работа"
begin
writeln('');
writeln('Дела, дела, дела... Чем собираетесь заниматься сегодня?');
writeln('sleep - даже самый заядлый хакер и геймер должен спать, иначе будет плохо - красными глазами тут не обойтись.');
writeln('work - работа бывает разной - от приключений эникейщика до протухания офисного планктона. Во всяком случае, и там, и там неплохо платят.');
writeln('run - каждый человек должен так или иначе поддерживать себя в тонусе. Можно немного подкачать мышцы, сходить за хлебом, и, если повезёт, кого-нибудь взломать.');
writeln('eat - давно ли вы кушали? Ну не врите, я уже вижу, как у вас текут слюнки! Прошу к столу!');
writeln('');
writeln('Итак, чем же мы займёмся сегодня?');
writeln('Для выхода из меню напишите exit.');
write('>user: ');
writeln('');
readln(k);
if k = 'work' then
begin
t := 300;
writeln('Уже работаешь!');
while t > 0 do
begin
ClrScr;
writeln('Уже работаешь!');
t := t - 1;
sleep(1000);
m := t div 60;
writeln('осталось ', m, 'минут (ы)');
Delay(1000);
end;
if t = 0 then
begin
writeln('Вы закончили работу');
t := 300
end;
end
else
begin
exit
end;
end;
procedure ex(var k: string);// Выход из игры
begin
write('Shutdown of Hack OS in progress ');
e := 5;
while e > 0 do
begin
write('.');
Delay(750);
e := e - 1;
end;
Delay(500);
halt;
end;
procedure screcho(var k: string);// вывод пользовательского текста, пока не доведена до ума
begin
writeln('');
writeln(k);
write('>user: ');
end;
begin
//эмблема
Randomize;
f := Random(10000);
textColor(Lightgreen);
writeln('electron games, 2020');
writeln('BIOS Inspire 2.0');
Delay(500);
writeln('---------------------------------------------------------------------');
writeln('Create virtual PC environment...');
Delay(750);
writeln('CPU prepared for work.');
Delay(750);
writeln('RAM prepared for work.');
Delay(750);
writeln('GPU prepared for work.');
Delay(750);
writeln('Storage prepared for work.');
Delay(750);
writeln('All devices preparing, startup code o99.');
Delay(1500);
ClrScr;
writeln('Hack OS booting...');
loop 50 do
begin
write('|');
Delay(100);
end;
Delay(1000);
ClrScr;
writeln('Welcome to HackOS 0.1.4!');
writeln('');
//проверка входа
if not (FileExists('c:/hos/log.txt')) then //если файла с логином паролём нет
begin
writeln('Вы в первый раз вошли в систему! Введите логин и пароль, разделённые пробелом.');
writeln('Внимание! Запишите свой логин/пароль и спрячьте их в безопасное место!');
write('>user: ');
CreateDir('C:/hos');
assign(log, 'c:/hos/log.txt'); //Путь к файлу
read(user);
rewrite(log);
writeln(log, user);
writeln('Спасибо за регистрацию в системе!');
writeln('Для получения справки введите help');
close(log);
writeln('');
end
else //Если пользователь уже зарегистрировался
begin;
writeln('Введите логин и пароль, разделённые пробелом.');
write('>user: ');
read(usr);
assign(log, 'c:/hos/log.txt'); //Путь к файлу
reset(log); //Открыть файл для чтения
read(log, user);
if user = usr then // если введены правильные логин/пароль
begin
writeln('Вы успешно вошли в систему!');
close(log);
writeln('');
end
else // если введён неправильный логин/пароль
begin
writeln('Значения не совпадают! Перезапустите Hack OS и введите логин и пароль заново.');
Delay(1000);
close(log);
write('Automatic shutdown of Hack OS in progress ');
e := 5;
while e > 0 do
begin
write('.');
Delay(750);
e := e - 1;
end;
Delay(500);
exit// завершение програмы
end
end;
// считывание команд с клавиатуры
ClrScr;
while 2 > 1 do
begin
if k = 'help' then
help(k)
else if k = 'profile' then
profile(k)
else if k = 'web' then
web(k)
else if k = 'exit' then
ex(k)
else if k = 'clearscr' then
clearscr(k)
else if k = 'hacktool' then
hack(k)
else if k = 'task' then
task(k)
else
write('>user: ');
readln(k);
end;
end.
Есть надоедливый баг с двумя >user: в начале
пытаюсь его пофиксить
но если я что-то меняю в коде, так или иначе связанное с ним, всё падает.
Обычные будни программиста