Hra had ako ju poznate z mobilnych telefonov
Delphi & Pascal (česká wiki)
Category: KMP (Club of young programmers)
Author: Werbhofen
Program: Python2.pas, Kniznica.pas, Data.pas
File exe: Python2.exe
Author: Werbhofen
Program: Python2.pas, Kniznica.pas, Data.pas
File exe: Python2.exe
Hra had ako ju poznate z mobilnych telefonov.
{ PYTHON.PAS } { } { Author: WERBHOFEN } { Datum: 12.10.2009 http://www.trsek.com } PROGRAM Python; (* 10.9.2009 *) USES Crt,Kniznica; CONST FarbaOkraj=2; FarbaHad=6; FarbaPozadie=0; FarbaText=14; MaxDlzkaHada=30; (* dlzka hada pri ktorej hra definitivne konci - vyhrou *) PocetKociek=7; (* kolko kociek treba zobrat pri prvej hre *) X1=1; X2=60; (* okraje hracej plochy *) Y1=1; Y2=25; NovyZivot=1000; (* Kolko bodov treba nazbierat aby sa pridal 1 zivot navyse *) oneskorenie:byte=100; KoniecProgramu:boolean=false; zvuky:boolean=true; TYPE THad=array[1..MaxDlzkaHada]of TInt2D; VAR i,StarySmer,level,BodyPreNovyZivot:integer; smer,DlzkaHada,life:byte; g:char; prehra,KoniecHry,KoniecKola:boolean; score,HighScore:integer; f:file; had:THad; Bod:TInt2D; {$I Data.pas} BEGIN randomize; DelicKmitoctu; if ParamStr(1)='0' then zvuky:=false; (* druhy parameter zapina/vypina zvuky *) assign(f,'score.dat'); (* nacita hi-score z externeho suboru *) {$I-} reset(f); {$I+} if IOResult<>0 then HighScore:=0 (* subor neexistuje/dajaka chyba *) else begin (* vsjo jasno *) BlockRead(f,HighScore,1); close(f); end; repeat UvodnaObrazovka; level:=1; life:=3; score:=0; BodyPreNovyZivot:=0; DlzkaHada:=3; kraj; KoniecHry:=false; (* spustenie novej hry *) while (not KoniecProgramu) and (not KoniecHry) do begin smer:=2; (* zaciatocny smer pohybu *) i:=0; repeat (* zaciatocne suradnice hada *) had[DlzkaHada-i].x:=30-i; had[DlzkaHada-i].y:=12; i:=i+1; until i=DlzkaHada; kraj; NovyBod; g:=#0; DlzkaHada:=3; (* zaciatocna dlzka hada *) KoniecKola:=false; prehra:=false; repeat NoveKolo; until KoniecHry or KoniecKola or KoniecProgramu; end; until KoniecProgramu; ReWrite(f); (* zapise novu hodnotu hi-score do externeho suboru *) BlockWrite(f,HighScore,1); Close(f); END.