Welcome to HBH! If you had an account on hellboundhacker.org you will need to reset your password using the Lost Password system before you will be able to login.

program written in Turbo Pascal 7.0 - Other Code Bank


program written in Turbo Pascal 7.0
simple program - it is text-based, simple , short math game ( 8 levels ) probably won't work on modern Windows so use DOSBOX emulator instead ( abailable also on Linux ) ( Etap means Level in Polish )
                program kalkulator;

uses crt;

var
lancuch:string;
znak:char;
czy_jest_minus:boolean;
rekurencja_start:boolean;
liczba_startowa:integer;
licznik_dolarow:integer;
liczba_lancuch:string;
pozycja_startowa:integer;
liczba:real;
kod_bledu:integer;
wynik:real;
licznik,licznik2,kupa,i:integer;
uzyto:boolean;

begin

clrscr;

writeln('Welcome in program devil calculator 666');
writeln('It is a demo of the game. Only first 8 levels');
writeln('The rules of game are simple');
writeln('I hide a mathematical function under $ symbol');
writeln('You can test it: write $number for example $2');
writeln('You win when the result of function will be equal 666');
writeln;
writeln('3 notes:');
writeln('1. Program is not idiot proof - write properly the statement');
writeln('2. You can use minus before and after $ sign');
writeln('3  You can use $ sign several times - recursion works here');
writeln;writeln;writeln;
writeln('It is version 2.0 - corrected');
writeln('1. If u want exit the game just write exit and press enter');


writeln('Let us begin? - enter key');
readln;

clrscr;




writeln('Etap 1');

repeat

readln(lancuch);

if lancuch='exit' then break;

znak:=lancuch[1];
if znak='-' then czy_jest_minus:=true else if znak<>'-' then czy_jest_minus:=false;





if czy_jest_minus=true then
       begin
       if lancuch[2]='$' then rekurencja_start:=true else if lancuch[2]<>'$'
       then writeln('Blad skladni');
       end;

if czy_jest_minus=false then
       begin
       if lancuch[1]='$' then rekurencja_start:=true else if lancuch[1]<>'$'
       then writeln('Blad skladni');
       end;

(* liczymy ilosc dolarow *);

if czy_jest_minus=true then liczba_startowa:=2;
if czy_jest_minus=false then liczba_startowa:=1;

licznik_dolarow:=0;

   repeat
                    begin
                    licznik_dolarow:=licznik_dolarow+1;
                    liczba_startowa:=liczba_startowa+1;
                    end;
   until lancuch[liczba_startowa]<>'$';




(* probujemy wyluskac liczbe *)

pozycja_startowa:=licznik_dolarow+1;
if czy_jest_minus=true then pozycja_startowa:=pozycja_startowa+1;

liczba_lancuch:=Copy(lancuch,pozycja_startowa,length(lancuch)-pozycja_startowa+1);


VAL(liczba_lancuch,liczba,kod_bledu);

licznik:=1;


repeat

wynik:=liczba+4;
licznik:=licznik+1;
liczba:=wynik;

until licznik>licznik_dolarow;


if czy_jest_minus=true then wynik:=wynik*(-1);

writeln(wynik:10:3);

until wynik=666;


if lancuch<>'exit' then

begin


writeln('Congratulations! You have beaten the level !');

readln;


clrscr;

writeln('Etap 2');

repeat

readln(lancuch);
if lancuch='exit' then break;


znak:=lancuch[1];
if znak='-' then czy_jest_minus:=true else if znak<>'-' then czy_jest_minus:=false;





if czy_jest_minus=true then
       begin
       if lancuch[2]='$' then rekurencja_start:=true else if lancuch[2]<>'$'
       then writeln('Blad skladni');
       end;

if czy_jest_minus=false then
       begin
       if lancuch[1]='$' then rekurencja_start:=true else if lancuch[1]<>'$'
       then writeln('Blad skladni');
       end;

(* liczymy ilosc dolarow *);

if czy_jest_minus=true then liczba_startowa:=2;
if czy_jest_minus=false then liczba_startowa:=1;

licznik_dolarow:=0;

   repeat
                    begin
                    licznik_dolarow:=licznik_dolarow+1;
                    liczba_startowa:=liczba_startowa+1;
                    end;
   until lancuch[liczba_startowa]<>'$';




(* probujemy wyluskac liczbe *)

pozycja_startowa:=licznik_dolarow+1;
if czy_jest_minus=true then pozycja_startowa:=pozycja_startowa+1;

liczba_lancuch:=Copy(lancuch,pozycja_startowa,length(lancuch)-pozycja_startowa+1);


VAL(liczba_lancuch,liczba,kod_bledu);

licznik:=1;


repeat

wynik:=liczba*100;
licznik:=licznik+1;
liczba:=wynik;

until licznik>licznik_dolarow;


if czy_jest_minus=true then wynik:=wynik*(-1);

writeln(wynik:10:3);

until wynik=666;

if lancuch<>'exit' then
begin


writeln('Congratulations! You have beaten the level !');

readln;


clrscr;

writeln('Etap 3');

repeat

readln(lancuch);
if lancuch='exit' then break;


znak:=lancuch[1];
if znak='-' then czy_jest_minus:=true else if znak<>'-' then czy_jest_minus:=false;





if czy_jest_minus=true then
       begin
       if lancuch[2]='$' then rekurencja_start:=true else if lancuch[2]<>'$'
       then writeln('Blad skladni');
       end;

if czy_jest_minus=false then
       begin
       if lancuch[1]='$' then rekurencja_start:=true else if lancuch[1]<>'$'
       then writeln('Blad skladni');
       end;

(* liczymy ilosc dolarow *);

if czy_jest_minus=true then liczba_startowa:=2;
if czy_jest_minus=false then liczba_startowa:=1;

licznik_dolarow:=0;

   repeat
                    begin
                    licznik_dolarow:=licznik_dolarow+1;
                    liczba_startowa:=liczba_startowa+1;
                    end;
   until lancuch[liczba_startowa]<>'$';




(* probujemy wyluskac liczbe *)

pozycja_startowa:=licznik_dolarow+1;
if czy_jest_minus=true then pozycja_startowa:=pozycja_startowa+1;

liczba_lancuch:=Copy(lancuch,pozycja_startowa,length(lancuch)-pozycja_startowa+1);


VAL(liczba_lancuch,liczba,kod_bledu);

licznik:=1;


repeat

wynik:=liczba*(-0.5);
licznik:=licznik+1;
liczba:=wynik;

until licznik>licznik_dolarow;


if czy_jest_minus=true then wynik:=wynik*(-1);

writeln(wynik:10:3);

until wynik=666;

if lancuch <> 'exit' then begin

writeln('Congratulations! You have beaten the level !');

readln;


clrscr;

writeln('Etap 4');

repeat

readln(lancuch);
if lancuch='exit' then break;


znak:=lancuch[1];
if znak='-' then czy_jest_minus:=true else if znak<>'-' then czy_jest_minus:=false;





if czy_jest_minus=true then
       begin
       if lancuch[2]='$' then rekurencja_start:=true else if lancuch[2]<>'$'
       then writeln('Blad skladni');
       end;

if czy_jest_minus=false then
       begin
       if lancuch[1]='$' then rekurencja_start:=true else if lancuch[1]<>'$'
       then writeln('Blad skladni');
       end;

(* liczymy ilosc dolarow *);

if czy_jest_minus=true then liczba_startowa:=2;
if czy_jest_minus=false then liczba_startowa:=1;

licznik_dolarow:=0;

   repeat
                    begin
                    licznik_dolarow:=licznik_dolarow+1;
                    liczba_startowa:=liczba_startowa+1;
                    end;
   until lancuch[liczba_startowa]<>'$';




(* probujemy wyluskac liczbe *)

pozycja_startowa:=licznik_dolarow+1;
if czy_jest_minus=true then pozycja_startowa:=pozycja_startowa+1;

liczba_lancuch:=Copy(lancuch,pozycja_startowa,length(lancuch)-pozycja_startowa+1);


VAL(liczba_lancuch,liczba,kod_bledu);

licznik:=1;


repeat

wynik:=liczba*2+6;
licznik:=licznik+1;
liczba:=wynik;

until licznik>licznik_dolarow;


if czy_jest_minus=true then wynik:=wynik*(-1);

writeln(wynik:10:3);

until wynik=666;

if lancuch<>'exit' then begin

writeln('Congratulations! You have beaten the level !');

readln;


clrscr;

writeln('Etap 5');
writeln('In this level you are not allowed to use 5 digit');


repeat





repeat

readln(lancuch);
if lancuch='exit' then break;


uzyto:=false;

licznik:=1;

          repeat
          znak:=lancuch[licznik];
          if znak='5' then uzyto:=true;
          licznik:=licznik+1;
          until licznik>length(lancuch);


znak:=lancuch[1];
if znak='-' then czy_jest_minus:=true else if znak<>'-' then czy_jest_minus:=false;





if czy_jest_minus=true then
       begin
       if lancuch[2]='$' then rekurencja_start:=true else if lancuch[2]<>'$'
       then writeln('Blad skladni');
       end;

if czy_jest_minus=false then
       begin
       if lancuch[1]='$' then rekurencja_start:=true else if lancuch[1]<>'$'
       then writeln('Blad skladni');
       end;

(* liczymy ilosc dolarow *);

if czy_jest_minus=true then liczba_startowa:=2;
if czy_jest_minus=false then liczba_startowa:=1;

licznik_dolarow:=0;

   repeat
                    begin
                    licznik_dolarow:=licznik_dolarow+1;
                    liczba_startowa:=liczba_startowa+1;
                    end;
   until lancuch[liczba_startowa]<>'$';




(* probujemy wyluskac liczbe *)

pozycja_startowa:=licznik_dolarow+1;
if czy_jest_minus=true then pozycja_startowa:=pozycja_startowa+1;

liczba_lancuch:=Copy(lancuch,pozycja_startowa,length(lancuch)-pozycja_startowa+1);


VAL(liczba_lancuch,liczba,kod_bledu);

licznik:=1;


repeat

wynik:=liczba+11;
licznik:=licznik+1;
liczba:=wynik;

until licznik>licznik_dolarow;


if czy_jest_minus=true then wynik:=wynik*(-1);





if uzyto=true then writeln('You used forbidden digit !');

until uzyto=false;

writeln(wynik:10:3);

until wynik=666;


if lancuch <>'exit' then begin



writeln('Congratulations! You have beaten the level !');

readln;


clrscr;

writeln('Etap 6');
writeln('In this level you are not allowed to use 3 digit');


repeat





repeat

readln(lancuch);
if lancuch='exit' then break;



uzyto:=false;

licznik:=1;

          repeat
          znak:=lancuch[licznik];
          if znak='3' then uzyto:=true;
          licznik:=licznik+1;
          until licznik>length(lancuch);


znak:=lancuch[1];
if znak='-' then czy_jest_minus:=true else if znak<>'-' then czy_jest_minus:=false;





if czy_jest_minus=true then
       begin
       if lancuch[2]='$' then rekurencja_start:=true else if lancuch[2]<>'$'
       then writeln('Blad skladni');
       end;

if czy_jest_minus=false then
       begin
       if lancuch[1]='$' then rekurencja_start:=true else if lancuch[1]<>'$'
       then writeln('Blad skladni');
       end;

(* liczymy ilosc dolarow *);

if czy_jest_minus=true then liczba_startowa:=2;
if czy_jest_minus=false then liczba_startowa:=1;

licznik_dolarow:=0;

   repeat
                    begin
                    licznik_dolarow:=licznik_dolarow+1;
                    liczba_startowa:=liczba_startowa+1;
                    end;
   until lancuch[liczba_startowa]<>'$';




(* probujemy wyluskac liczbe *)

pozycja_startowa:=licznik_dolarow+1;
if czy_jest_minus=true then pozycja_startowa:=pozycja_startowa+1;

liczba_lancuch:=Copy(lancuch,pozycja_startowa,length(lancuch)-pozycja_startowa+1);


VAL(liczba_lancuch,liczba,kod_bledu);

licznik:=1;


repeat

wynik:=liczba*(-2);
licznik:=licznik+1;
liczba:=wynik;

until licznik>licznik_dolarow;


if czy_jest_minus=true then wynik:=wynik*(-1);





if uzyto=true then writeln('You used forbidden digit !');

until uzyto=false;

writeln(wynik:10:3);

until wynik=666;


if lancuch <> 'exit' then begin

writeln('Congratulations! You have beaten the level !');

readln;



clrscr;

writeln('Etap 7');
writeln('In this level you are not allowed to use 3 digit');


repeat





repeat

readln(lancuch);
if lancuch='exit' then break;


uzyto:=false;

licznik:=1;

          repeat
          znak:=lancuch[licznik];
          if znak='3' then uzyto:=true;
          licznik:=licznik+1;
          until licznik>length(lancuch);


znak:=lancuch[1];
if znak='-' then czy_jest_minus:=true else if znak<>'-' then czy_jest_minus:=false;





if czy_jest_minus=true then
       begin
       if lancuch[2]='$' then rekurencja_start:=true else if lancuch[2]<>'$'
       then writeln('Blad skladni');
       end;

if czy_jest_minus=false then
       begin
       if lancuch[1]='$' then rekurencja_start:=true else if lancuch[1]<>'$'
       then writeln('Blad skladni');
       end;

(* liczymy ilosc dolarow *);

if czy_jest_minus=true then liczba_startowa:=2;
if czy_jest_minus=false then liczba_startowa:=1;

licznik_dolarow:=0;

   repeat
                    begin
                    licznik_dolarow:=licznik_dolarow+1;
                    liczba_startowa:=liczba_startowa+1;
                    end;
   until lancuch[liczba_startowa]<>'$';




(* probujemy wyluskac liczbe *)

pozycja_startowa:=licznik_dolarow+1;
if czy_jest_minus=true then pozycja_startowa:=pozycja_startowa+1;

liczba_lancuch:=Copy(lancuch,pozycja_startowa,length(lancuch)-pozycja_startowa+1);


VAL(liczba_lancuch,liczba,kod_bledu);

licznik:=1;


repeat

wynik:=liczba*2+6;
licznik:=licznik+1;
liczba:=wynik;

until licznik>licznik_dolarow;


if czy_jest_minus=true then wynik:=wynik*(-1);





if uzyto=true then writeln('You used forbidden digit !');

until uzyto=false;

writeln(wynik:10:3);

until wynik=666;

if lancuch <> 'exit' then begin

writeln('Congratulations! You have beaten the level !');

readln;


clrscr;

writeln('Etap 8');
writeln('It is not algebraic function. Check it yourself !');








repeat

readln(lancuch);
if lancuch='exit' then break;


uzyto:=false;

licznik:=1;

          repeat
          znak:=lancuch[licznik];
          if znak='3' then uzyto:=true;
          licznik:=licznik+1;
          until licznik>length(lancuch);


znak:=lancuch[1];
if znak='-' then czy_jest_minus:=true else if znak<>'-' then czy_jest_minus:=false;





if czy_jest_minus=true then
       begin
       if lancuch[2]='$' then rekurencja_start:=true else if lancuch[2]<>'$'
       then writeln('Blad skladni');
       end;

if czy_jest_minus=false then
       begin
       if lancuch[1]='$' then rekurencja_start:=true else if lancuch[1]<>'$'
       then writeln('Blad skladni');
       end;

(* liczymy ilosc dolarow *);

if czy_jest_minus=true then liczba_startowa:=2;
if czy_jest_minus=false then liczba_startowa:=1;

licznik_dolarow:=0;

   repeat
                    begin
                    licznik_dolarow:=licznik_dolarow+1;
                    liczba_startowa:=liczba_startowa+1;
                    end;
   until lancuch[liczba_startowa]<>'$';




(* probujemy wyluskac liczbe *)

pozycja_startowa:=licznik_dolarow+1;
if czy_jest_minus=true then pozycja_startowa:=pozycja_startowa+1;

liczba_lancuch:=Copy(lancuch,pozycja_startowa,length(lancuch)-pozycja_startowa+1);


VAL(liczba_lancuch,liczba,kod_bledu);

licznik:=1;
licznik2:=length(liczba_lancuch);


kupa:=1;

repeat


                 wynik:=liczba;
                 for i:=1 to licznik2 do
                       begin
                         wynik:=wynik-3*kupa;
                         kupa:=kupa*10;
                       end;







licznik:=licznik+1;
liczba:=wynik;

until licznik>licznik_dolarow;


if czy_jest_minus=true then wynik:=wynik*(-1);






writeln(wynik:10:3);

until wynik=666;

if lancuch <>'exit' then begin



writeln('Congratulations! You have beaten the level !');
writeln;
writeln('The end of the game');
writeln('Press enter key');


readln;



end;
end;
end;
end;
end;
end;
end;
end;
end.
            
Comments
Sorry but there are no comments to display