0 REM ****** CITE DES ROBOTS ****** 1 REM ** J&S 21 - 1983 ** 2 REM ** CREE PAR MICHEL BRASSINE ** 3 REM ** ** 4 REM ** V1: D.RIOUAL - 23/04/2026 ** 5 REM ** ** 6 REM ******************************* 10 REM ----INITIALISATION--- 15 DIM A(5),B(5),D(5),F(5),G(5) 20 GOSUB 2000:GR 30 ERG = 50: REM ERG = ENERGIE 40 ONERR GOTO 460 50 P% = 80:Z = 3:T = 0 60 REM ----DESSIN VILLE----- 70 FOR J = 4 TO 34 80 FOR I = 4 TO 34 90 X = INT ( RND (1) * 100) 100 IF X < P% THEN COLOR= 0: PLOT I,J:P% = P% - 1: GOTO 120 110 COLOR= 6: PLOT I,J 120 IF P% < 52 THEN P% = 97 130 NEXT I: NEXT J 140 REM ----POSITION DEPART--- 150 X = 6:Y = 10 160 V = 25:W = 25 170 A(1) = 6:B(1) = 29 180 A(2) = 25:B(2) = 20 190 A(3) = 27:B(3) = 7 200 A(4) = 13:B(4) = 15 210 A(5) = 15:B(5) = 8 220 GOTO 630 230 REM --- PROGRAMME --- 240 T = T + 1: IF T = Z THEN 570 250 HGR 260 FOR I = 1 TO 5 270 D(I) = 0:F(I) = 0:G(I) = 0:RR = 0: NEXT I 280 REM CONSTRUCTION DECOR HGR 290 FOR I = 1 TO 3 300 IF SCRN( X + I,Y - 1) = 6 THEN G(I) = 1 310 IF SCRN( X + I,Y + 1) = 6 THEN D(I) = 1 320 IF SCRN( X + I,Y + 1) = 6 THEN D(I) = 1 330 IF SCRN( X + I,Y - 1) = 6 THEN G(I) = 1 340 IF SCRN( X + I,Y) = 6 THEN F(I) = 1 350 NEXT I: HCOLOR= 6 360 IF F(1) = 1 THEN HPLOT 0,0 TO 130,0 TO 130,130 TO 0,130 TO 0,0 370 IF F(2) = 1 THEN HPLOT 30,30 TO 100,30 TO 100,100 TO 30,100 TO 30,30 380 IF F(3) = 1 THEN HPLOT 50,50 TO 80,50 TO 80,80 TO 50,80 TO 50,50 390 HPLOT 60,70 TO 70,60: HPLOT 60,60 TO 70,70 400 IF G(1) = 1 THEN HPLOT 0,0 TO 30,30 TO 30,100 TO 0,130 TO 0,0 410 IF G(2) = 1 THEN HPLOT 30,30 TO 50,50 TO 50,80 TO 30,100 TO 30,30 420 IF G(3) = 1 THEN HPLOT 50,50 TO 60,60 TO 60,70 TO 50,80 TO 50,50 430 IF D(1) = 1 THEN HPLOT 130,0 TO 130,130 TO 100,100 TO 100,30 TO 130,0 440 IF D(2) = 1 THEN HPLOT 80,50 TO 100,30 TO 100,100 TO 80,80 TO 80,50 450 IF D(3) = 1 THEN HPLOT 70,60 TO 80,50 TO 80,80 TO 70,70 TO 70,60 460 PRINT "DIRECTION : ": GET DI$ 465 IF DI$ = "X" THEN PRINT "VOUS ABANDONNEZ !":END 470 IF DI$ = "N" THEN Y = Y - 1 480 IF SCRN( X,Y) = 6 THEN Y = Y + 1: PRINT "MUR !": GOTO 460 490 IF DI$ = "E" THEN X = X + 1 500 IF SCRN( X,Y) = 6 THEN X = X - 1: PRINT "MUR !": GOTO 460 510 IF DI$ = "S" THEN Y = Y + 1 520 IF SCRN( X,Y) = 6 THEN Y = Y - 1: PRINT "MUR !": GOTO 460 530 IF DI$ = "O" THEN X = X - 1 540 IF SCRN( X,Y) = 6 THEN X = X + 1: PRINT "MUR !": GOTO 460 550 IF ERG < 15 THEN Z = 15 555 IF X = V AND Y = W THEN P$ = "P": GOTO 610: REM CIBLE ATTEINTE 560 IF T < Z THEN 240 570 REM ----- AFFICHAGE ---- 580 T = 0 590 PRINT "(P)LAN ?":GET P$ 600 PRINT "ENERGIE =";ERG 610 IF P$ = "P" THEN POKE - 16298,0: GOTO 630: REM POKE=>PASSAGE EN HAUTE RESOLUTION 620 GOTO 650 630 COLOR= 1: PLOT V,W: COLOR= 9: PLOT X,Y: COLOR= 12:ERG = ERG - 1: FOR I = 1 TO 5: PLOT A(I),B(I): NEXT I 640 IF X = V AND Y = W THEN SC = SC + 100: ERG = ERG + 1 : PRINT "RENCONTRE ! SCORE = ";SC: COLOR= 1:V = INT ( RND (1) * 15) + 15:W = INT ( RND (1) * 15) + 10: PLOT V,W 645 GOSUB 3000 650 COLOR= 0: PLOT X,Y: FOR I = 1 TO 5: PLOT A(I),B(I): NEXT I 660 HGR 670 REM --ARRIVENT LES ROBOTS-- 680 T = 0 690 FOR I = 1 TO 5 700 IF A(I) = > X + 1 THEN A(I) = A(I) - 1 710 IF SCRN( A(I),B(I)) = 6 THEN A(I) = A(I) + 1:T = 1: GOTO 790 720 IF B(I) < = Y THEN B(I) = B(I) + 1 730 IF SCRN( A(I),B(I)) = 6 THEN A(I) = A(I) - 1:T = T + 1: GOTO 790 740 IF A(I) < = X - 1 THEN A(I) = A(I) + 1 750 IF SCRN( A(I),B(I)) = 6 THEN A(I) = A(I) + 1:T = 3: GOTO 790 760 IF B(I) = > Y THEN B(I) = B(I) - 1 770 IF SCRN( A(I),B(I)) = 6 THEN B(I) = B(I) - 1 780 REM ---TEST VALID DEPT-- 790 IF T(I) = 1 THEN 720 800 IF T(I) = 2 THEN 740 810 IF T(I) = 3 THEN 760 820 COLOR= 12: PLOT A(I),B(I) 830 NEXT I 840 REM ---ATTAQUE ROBOTS--- 850 FOR I = 1 TO 5 860 IF ABS (X - A(I)) = 0 AND ABS (Y - B(I)) = 0 THEN 970 870 IF ABS (X - A(I)) = 0 THEN 940 880 IF ABS (Y - B(I)) = 0 THEN 920 890 NEXT I 900 GOTO 260 910 FOR I = 1 TO 5 920 IF ABS (X - A(I)) < 3 THEN ERG = ERG - 2:Z = Z + 1: PRINT "*** TOUCHE ***": GOTO 960 930 GOTO 960 940 IF ABS (Y - B(I)) < 3 THEN ERG = ERG - 2:Z = Z + 1: PRINT "<<< TOUCHE >>>": GOTO 960 950 NEXT I 960 GOTO 260 970 PRINT "DESOLE, VOTRE VEHICULE EST DETRUIT..." 980 PRINT "SCORE = ";SC 990 INPUT "VOULEZ-VOUS REJOUER ?";R$ 1000 IF R$ = "O" THEN CLEAR : GOTO 10 1010 GR : END 1999 REM ---- INTRO ---- 2000 TEXT:HOME 2010 HTAB 10:VTAB 7:INVERSE:PRINT " ":NORMAL 2011 HTAB 10:VTAB 8:INVERSE:PRINT " LA CITE DES ROBOTS ":NORMAL 2012 HTAB 10:VTAB 9:INVERSE:PRINT " ":NORMAL 2020 HTAB 3:VTAB 18:PRINT "DE MICHEL BRASSINE - J&S NUMERO 23" 2030 VTAB 23:GOSUB 3000 2040 RETURN 3000 PRINT TAB(8);"<< PRESSEZ UNE TOUCHE >>":GET A$ 3010 HOME 3020 RETURN