home *** CD-ROM | disk | FTP | other *** search
- { ************************ Program Dokola **************************** }
- { program se napíchne jako rutina na p⌐eru¿ení z klávesnice }
- { a toto p⌐eru¿ení hÿbe stále dokola objektem }
- { Kdo má v oblibê Reset a nemá Volkova, mûæe odstranit sloæené závorky }
- { na konci programu }
-
- {$A-,B-,D+,E+,F-,G+,I+,L+,N-,O-,S+,V+,X+}
- {$M 16384,30000,30000}
- uses Unhejb, Unobdel, Unfront, Crt, Dos;
- type Typ_Muj = object(Typ_Line)
- procedure Vm0;virtual;
- end;
-
- const Cesta : array[1..3]of Typ_Instrukce = ( Vm0, Jmpa0, endc );
-
- var Dokola : Typ_Muj; { ten se bude hÿbat stále dokola }
- Klapka : Typ_Hejb_Fronta_Intr; { fronta, která se napíchne na p⌐eru¿ení z klávesnice }
-
- procedure Typ_Muj.Vm0; { zvêt¿í hvêzdu }
- { procedura, pokud je volána, toçí objektem po⌐ád dokola }
- { algoritmus vcelku bez komentá⌐e }
- const Smer : (_L, _R, _U, _D) = _R;
- const Prvni : Byte = 1;
- begin
- Inc(Prvni);
- if (Prvni and 1) <> 0 then
- begin
- case Smer of
- _R : if Poloha.X+Rozmer.X < 79
- then R
- else Smer := _D;
- _D : if Poloha.Y+Rozmer.Y < Obrazovka.Y_Obr-1
- then D
- else Smer := _L;
- _L : if Poloha.X > 0
- then L
- else Smer := _U;
- _U : if Poloha.Y >0
- then U
- else Smer := _R;
- end;
- end;
- end;
-
-
- begin
- Dokola.Init;
- Dokola.Vytvor_string_Ram('DOKOLA',2,7,Obyc_Ram);
- Dokola.Zobraz;
-
- Klapka.Init($09, True);{ klapka je napojena na p⌐eru¿ení z klávesnice }
-
- Dokola.Hejbej(Cesta);
- Klapka.Zarad_Prvek(Dokola);
-
- Klapka.On;
-
- ReadLn;
-
- { Keep(0);}
-
- klapka.zrus;
- dokola.zrus;
- konec;
- end.
-