home *** CD-ROM | disk | FTP | other *** search
/ Prima Shareware 3 / DuCom_Prima-Shareware-3_cd1.bin / PROGRAMO / PASCAL / HEJB / EXAM / DOKOLA.PAS < prev    next >
Encoding:
Pascal/Delphi Source File  |  1994-04-21  |  1.8 KB  |  66 lines

  1. { ************************ Program Dokola **************************** }
  2. { program se napíchne jako rutina na p⌐eru¿ení z klávesnice            }
  3. { a toto p⌐eru¿ení hÿbe stále dokola objektem                          }
  4. { Kdo má v oblibê Reset a nemá Volkova, mûæe odstranit sloæené závorky }
  5. { na konci programu                                                    }
  6.  
  7. {$A-,B-,D+,E+,F-,G+,I+,L+,N-,O-,S+,V+,X+}
  8. {$M 16384,30000,30000}
  9. uses Unhejb, Unobdel, Unfront, Crt, Dos;
  10. type Typ_Muj = object(Typ_Line)
  11.                  procedure Vm0;virtual;
  12.                end;
  13.  
  14. const Cesta : array[1..3]of Typ_Instrukce = ( Vm0, Jmpa0, endc );
  15.  
  16. var Dokola   : Typ_Muj;        { ten se bude hÿbat stále dokola }
  17.     Klapka   : Typ_Hejb_Fronta_Intr; { fronta, která se napíchne na p⌐eru¿ení z klávesnice }
  18.  
  19. procedure Typ_Muj.Vm0; { zvêt¿í hvêzdu }
  20. { procedura, pokud je volána, toçí objektem po⌐ád dokola }
  21. { algoritmus vcelku bez komentá⌐e }
  22. const Smer  : (_L, _R, _U, _D) = _R;
  23. const Prvni : Byte = 1;
  24. begin
  25.   Inc(Prvni);
  26.   if (Prvni and 1) <> 0 then
  27.     begin
  28.       case Smer of
  29.         _R : if Poloha.X+Rozmer.X < 79
  30.                then R
  31.                else Smer := _D;
  32.         _D : if Poloha.Y+Rozmer.Y < Obrazovka.Y_Obr-1
  33.                then D
  34.                else Smer := _L;
  35.         _L : if Poloha.X > 0
  36.                then L
  37.                else Smer := _U;
  38.         _U : if Poloha.Y >0
  39.                then U
  40.                else Smer := _R;
  41.       end;
  42.     end;
  43. end;
  44.  
  45.  
  46. begin
  47.   Dokola.Init;
  48.   Dokola.Vytvor_string_Ram('DOKOLA',2,7,Obyc_Ram);
  49.   Dokola.Zobraz;
  50.  
  51.   Klapka.Init($09, True);{ klapka je napojena na p⌐eru¿ení z klávesnice }
  52.  
  53.   Dokola.Hejbej(Cesta);
  54.   Klapka.Zarad_Prvek(Dokola);
  55.  
  56.   Klapka.On;
  57.  
  58.   ReadLn;
  59.  
  60. {  Keep(0);}
  61.  
  62.   klapka.zrus;
  63.   dokola.zrus;
  64.   konec;
  65. end.
  66.