home *** CD-ROM | disk | FTP | other *** search
/ PC Interdit / pc-interdit.iso / graph / etoiles.pas < prev    next >
Pascal/Delphi Source File  |  1994-10-05  |  1KB  |  42 lines

  1. Program Defil_etoiles;
  2.  
  3. Uses Crt;
  4. Var Etoiles:Array[0..500] of Record
  5.                               x,y,Plan:Integer;
  6.                             End;
  7.   nb_et:Word;
  8.  
  9. Procedure PutPixel(x,y,col:word);assembler;
  10. {dessine le point (x,y) en couleur col (Mode 13h)}
  11. asm
  12.   mov ax,0a000h          {charge le segment}
  13.   mov es,ax
  14.   mov ax,320             {offset = Y*320 + X}
  15.   mul y
  16.   add ax,x
  17.   mov di,ax              {charge l'offset }
  18.   mov al,byte ptr col    {charge la couleur}
  19.   mov es:[di],al         {et place le point}
  20. End;
  21.  
  22. Begin
  23.   Randomize;                  {initialise le générateur de nombres aléatoires}
  24.   asm mov ax,13h; int 10h End;    {déclenche le mode 13h }
  25.   Repeat                          {exécution une fois par dessin d'écran}
  26.     For nb_et:=0 to 500 do Begin  {nouvelle position pour chaque étoile}
  27.       With Etoiles[nb_et] do Begin
  28.         PutPixel(x,y,0);          {efface l'ancien pixel}
  29.         Dec(x,Plan shr 5 + 1);    {effectue le déplacement}
  30.         if x <= 0 Then Begin      {sortie à gauche  ?}
  31.           x:=319;                 {alors réinitialisation }
  32.           y:=Random(200);
  33.           Plan:=Random(256);
  34.         End;
  35.         PutPixel(x,y,Plan shr 4 + 16);  {dessine le nouveau pixel}
  36.       End;
  37.     End;
  38.   Until KeyPressed;             {continue jusqu'à ce qu'on frappe une touche}
  39.   TextMode(3);
  40. End.
  41.  
  42.