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