Samuel Devulder a écrit:
Pas d'extramon sur TO7/MO5
Faut tout faire à la main en ASM sans aide du moniteur sur ces machines là. C'est pas pour rien que les soft "éducatifs" sont si moches. Le basic est très limité.
Le basic n'est pas si limité dque cela, j'ai fait une version Basic 1.0 du tout premier rush
Code:
10 SCREEN 7,0,0:cls:LOCATE0,0,0:INITSCORE$="0000000"
11 COULEUR(0) = 8:COULEUR(1) = 8:COULEUR(2) = 0:COULEUR(3) = 4:COULEUR(4) = 4:COULEUR(5) = 4:COULEUR(6) = 4:COULEUR(7) = 8
12 FOR I=0 TO 7 : LINE (0,i)-(319,I),COULEUR(I):NEXT
13 COULEUR(0) = 9:COULEUR(1) = 9: COULEUR(3) = 13:COULEUR(4) = 13:COULEUR(5) = 13:COULEUR(6) = 13:COULEUR(7) = 9
14 FOR I=0 TO 7 : LINE (32,i)-(79,I),COULEUR(I):LINE (304,i)-(319,I),COULEUR(I): NEXT
15 COULEUR(0) = 5:COULEUR(1) = 6:COULEUR(3) = 6:COULEUR(4) = 6:COULEUR(5) = 6:COULEUR(6) = 6:COULEUR(7) = 6
16 FOR I=0 TO 7 : LINE (216,i)-(271,I),COULEUR(I): NEXT
17 INITSCORE=0:SCORE=INITSCORE:SCORE$=STR$(SCORE):SCORE$=MID$(SCORE$,2):SCORE$=MID$(INITSCORE$,1,7-LEN(SCORE$))+SCORE$
20 CONSOLE,,1:LOCATE0,0,0:print "GRIDRUNNER": LOCATE 15,0,0 : ? SCORE$:LOCATE 27,0,0:? SCORE$
30 CONSOLE,,0:color5:FOR I=19 TO 178 STEP 8 : LINE (8,I)-(311,I):NEXT
31 FOR I=11 TO 314 STEP 8 : LINE (I,16)-(I,175):NEXT
32 A$=INPUT$(1)
50 'INCREMENTE SCORE
51 SCORE=SCORE+1 : GOSUB 120: IF SCORE < 1000 THEN 51
52 A$=INPUT$(1)
90 END
120 'AFFICHE SCORE
121 SCORE$=STR$(SCORE):SCORE$=MID$(SCORE$,2):SCORE$=MID$(INITSCORE$,1,7-LEN(SCORE$))+SCORE$
122 CONSOLE,,1: LOCATE 15,0,0 : ? SCORE$:CONSOLE,,0
123 RETURN
Ya quelques limitations/ Basic 512 (dont voici la version)
Code:
10 SCREEN 7,0,0:cls:LOCATE,,0:CONSOLE,,6:INITSCORE$="0000000"
11 COULEUR(0) = 8:COULEUR(1) = 8:COULEUR(2) = 0:COULEUR(3) = 4:COULEUR(4) = 4:COULEUR(5) = 4:COULEUR(6) = 4:COULEUR(7) = 8
12 FOR I=0 TO 7 : LINE (0,i)-(319,I),COULEUR(I):NEXT
13 COULEUR(0) = 9:COULEUR(1) = 9: COULEUR(3) = 13:COULEUR(4) = 13:COULEUR(5) = 13:COULEUR(6) = 13:COULEUR(7) = 9
14 FOR I=0 TO 7 : LINE (32,i)-(79,I),COULEUR(I):LINE (304,i)-(319,I),COULEUR(I): NEXT
15 COULEUR(0) = 5:COULEUR(1) = 6:COULEUR(3) = 6:COULEUR(4) = 6:COULEUR(5) = 6:COULEUR(6) = 6:COULEUR(7) = 6
16 FOR I=0 TO 7 : LINE (216,i)-(271,I),COULEUR(I): NEXT
17 INITSCORE=0:SCORE=INITSCORE:SCORE$=STR$(SCORE):SCORE$=MID$(SCORE$,2):SCORE$=MID$(INITSCORE$,1,7-LEN(SCORE$))+SCORE$
20 CONSOLE,,1:LOCATE0,0,0:print "GRIDRUNNER": LOCATE 15,0,0 : ? SCORE$:LOCATE 27,0,0:? SCORE$
30 CONSOLE,,0:color5:FOR I=19 TO 178 STEP 8 : LINE (8,I)-(311,I):NEXT
31 FOR I=11 TO 314 STEP 8 : LINE (I,16)-(I,175):NEXT
32 A$=INPUT$(1)
40 X=2:LOCATE 0,X:? "X"
41 ON INTERVAL=1 GOSUB 100 :INTERVAL ON
42 IF X <>21 THEN 42 ELSE INTERVAL OFF
45 LOCATE 0,21:?" ":X=1:LOCATE X,22:? "X"
46 ON INTERVAL=1 GOSUB 110 :INTERVAL ON
47 IF X <>38 THEN 47 ELSE INTERVAL OFF
48 A$=INPUT$(1)
50 'INCREMENTE SCORE
51 SCORE=SCORE+1 : GOSUB 120: IF SCORE < 1000 THEN 51
52 A$=INPUT$(1)
90 END
100 ' DEPLACEMENT VERTICAL
101 LOCATE 0,X:?" ":X=X+1: LOCATE 0,X:? "X"
102 : RETURN
110 'DEPLACEMENT HORIZONTAL
111 LOCATE X,22:?" ":X=X+1: LOCATE X,22:? "X"
112 RETURN
120 'AFFICHE SCORE
121 SCORE$=STR$(SCORE):SCORE$=MID$(SCORE$,2):SCORE$=MID$(INITSCORE$,1,7-LEN(SCORE$))+SCORE$
122 CONSOLE,,1: LOCATE 15,0,0 : ? SCORE$:CONSOLE,,0
123 RETURN
Mais ça va quoi! J'ai pu tracer les lignes qui sont visibles sans le mode caché mais ça passe (testé avec TO8/MO6 (Basc 512) et MO5 (Basic 1.0). La version Basic 1.0 n'a paas de INTERVAL, du coup, l'animation du "X" ne peut pas apparaitre. Par contre, un PRINT dans la zone de dégradé ça marche impec sous MO5.
Par contre, je remarque que le tracé de ligne verticales est bcp plus rapide en Basic 512.
Voici une vidéo de la version Basic 512