Dze je subor www.TrSek.com/cover/werbhofen/python2.pas
{ 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.

Copyrigth by Zdeno Sekerak 2007, http://www.trsek.com