home *** CD-ROM | disk | FTP | other *** search
/ DP Tool Club 26 / CD_ASCQ_26_1295.iso / voxrom / textes / repwin08 / annexes / squirrel / qb4 / demo.bas
BASIC Source File  |  1995-10-01  |  2KB  |  85 lines

  1. DECLARE FUNCTION Radian! (degre%)
  2. DEFINT A-Z
  3.  
  4. DIM px(1 TO 100), py(1 TO 100), ipx(1 TO 100), ipy(1 TO 100) AS INTEGER
  5.  
  6. SCREEN 12                   '** Initialiser le 640x480x16
  7. RANDOMIZE TIMER             '** Réinitialiser le générateur aléatoire
  8.  
  9. FOR i = 1 TO 100            '** Définir la position des points
  10.   ipx(i) = 1
  11.   ipy(i) = -1
  12.   px(i) = RND * 640
  13.   py(i) = RND * 480
  14. NEXT
  15.  
  16. DO                          '** Définir les pas de la ligne
  17.   idx = RND * 11 - 5
  18.   idy = RND * 11 - 5
  19.   ifx = RND * 11 - 5
  20.   ify = RND * 11 - 5
  21. LOOP WHILE (idx = 0) OR (idy = 0) OR (ifx = 0) OR (ify = 0)
  22.  
  23. dx = RND * 640              '** Définir la position de la ligne
  24. dy = RND * 480
  25. fx = RND * 640
  26. fy = RND * 480
  27.  
  28.  
  29. '** Je suis nul pour la zic.. Désolé pour vous.. c'est... happy birthday
  30. '** rien trouvé de mieux.. je l'ai repiquée de je sais pu où
  31. PLAY "MB l13O2 c.c.l4dcfe.. p18 l13c.c.l4dcgf.. p18 l13c.c.l4>c<afed l10 a+a+ l4afgf"
  32.  
  33. DO
  34.  
  35.   '** Calculs de la ligne
  36.  
  37.   odx = dx                  '** Garder les anciennes valeurs...
  38.   ody = dy
  39.   ofx = fx
  40.   ofy = fy
  41.  
  42.   dx = dx + idx             '** Calculer début
  43.   dy = dy + idy
  44.   IF dx <= 0 THEN dx = 0: idx = -idx + 1
  45.   IF dy <= 0 THEN dy = 0: idy = -idy + 1
  46.   IF dx >= 639 THEN dx = 639: idx = -idx + 1
  47.   IF dy >= 479 THEN dy = 479: idy = -idy + 1
  48.  
  49.   fx = fx + ifx             '** Calculer fin
  50.   fy = fy + ify
  51.   IF fx <= 0 THEN fx = 0: ifx = -ifx + 1
  52.   IF fy <= 0 THEN fy = 0: ify = -ify + 1
  53.   IF fx >= 639 THEN fx = 639: ifx = -ifx + 1
  54.   IF fy >= 479 THEN fy = 479: ify = -ify + 1
  55.  
  56.   LINE (odx, ody)-(ofx, ofy), 0
  57.   LINE (dx, dy)-(fx, fy), 12
  58.  
  59.   '** Calculs des points
  60.  
  61.   FOR i = 1 TO 100
  62.  
  63.     PSET (px(i), py(i)), 0  '** Efface le point
  64.  
  65.     px(i) = px(i) + ipx(i)
  66.     py(i) = py(i) + ipy(i)
  67.     IF (px(i) < 0) OR (px(i) > 639) THEN ipx(i) = -ipx(i)
  68.     IF (py(i) < 0) OR (py(i) > 479) THEN ipy(i) = -ipy(i)
  69.  
  70.     PSET (px(i), py(i)), 14 '** Affiche
  71.  
  72.   NEXT
  73.  
  74.  
  75. LOOP UNTIL INKEY$ <> ""
  76.  
  77. SCREEN 0
  78.  
  79. FUNCTION Radian! (degre)
  80.  
  81.   Radian! = degre * (3.1415926535# / 180)
  82.  
  83. END FUNCTION
  84.  
  85.