Welcome to HBH! If you have tried to register and didn't get a verification email, please using the following link to resend the verification email.

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