Logicielsmoto.com

Nous sommes le 29 Mar 2024, 00:51

Heures au format UTC + 1 heure




Poster un nouveau sujet Répondre au sujet  [ 6 messages ] 
Auteur Message
MessagePosté: 18 Oct 2022, 16:48 
Hors ligne

Inscription: 21 Fév 2020, 11:38
Messages: 366
Bonjour la compagnie.

Gridruner est un célèbre clone de Centipède, développé par le célèbre Jeff Minter dans le monde Atari/Commdore/. Il est sorti en 1982, sur Atari 8 bits, C64 (version démentielle), ZX Spectrum et, plus récemment (2017) sur TRS80 Coco=Dragon 32. Il aura 40 ans cette années donc.

Voici quelques vidéos de versions de ce jeu.
phpBB [video]

phpBB [video]

phpBB [video]

phpBB [video]

phpBB [video]

Et Matrix : Gridrunner 2 sur BBC Micro
phpBB [video]


Il est tout à fait possible de produire une version pour tous les Thomson TO/MO, ce jeu fonctionnant bcp en mode caractères. La version Thomson pourra ressembler à la version C64 et utiliser le nouveau synthétiseur musical.

Pour ce qui est des caractères dégradés de la version C64, on peut l'effectuer sur les Thomson en Mode TO-7-70, par exemple, avec ce petit programme BASIC (ne fonctionne qu'en 128/512)

Code:
10 SCREEN 7,0,0:cls:LOCATE,,0:CONSOLE,,6: DEFINT i-j
11 COULEUR(0) = 8:COULEUR(1) = 8:COULEUR(2) = 0:COULEUR(3) = 3:COULEUR(4) = 4:COULEUR(5) = 4:COULEUR(6) = 4:COULEUR(7) = 8:
20 J=0:FOR I=0 TO 7 : LINE (0,J)-(319,J),COULEUR(I):LINE (0,J+1)-(319,J+1),COULEUR(I):J=J+2:NEXT':LINE (0,5)-(319,5),4
30 CONSOLE,,1:ATTRB 1,1:LOCATE0,1,0:print "GRIDRUNNER"
40 ATTRB 0,0


Il reste juste à redéfinir la police pour quelle ressemble à celle de la version C64...
Dans la version Thomson, je ne sais pas comment faire ceci en Basic 1.0 (puisque Console,,6 n'existe pas dans ce Basic), il faudra sans doute écrire des routines spéciales en Assembleur pour cela.

En parlant des Thomson MO5/TO7, y-a-t-il des routines extra moniteur dans leur ROM ? C'est juste pour écrire le code traçant la grille.

Sinon, est ce que ce jeu intéreserait certains ? Même s'il s'agit d'un clone de Centipède et qu'il en existe déjà un sur Thomson (Titus = Worm Madness)


Haut
 Profil  
Répondre en citant le message  
MessagePosté: 18 Oct 2022, 19:42 
Hors ligne

Inscription: 21 Aoû 2006, 09:06
Messages: 1802
Localisation: Brest
Pas d'extramon sur TO7/MO5 :cry:

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é.

_________________
Good morning, that's a nice Tnetennba


Haut
 Profil  
Répondre en citant le message  
MessagePosté: 18 Oct 2022, 22:36 
Hors ligne

Inscription: 21 Fév 2020, 11:38
Messages: 366
Samuel Devulder a écrit:
Pas d'extramon sur TO7/MO5 :cry:

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
phpBB [video]


Haut
 Profil  
Répondre en citant le message  
MessagePosté: 19 Oct 2022, 08:14 
Hors ligne
M. DCMOTO

Inscription: 06 Juin 2004, 08:23
Messages: 681
Localisation: Provence (France)
Pourquoi utiliser des réels simple précision, alors que des entiers seraient suffisants ? L'utilisation de réels rend toutes les opérations beaucoup plus longues et gaspille inutilement la mémoire.
L'utilisation de noms de variables longs facilite la compréhension du programme, mais d'un autre côté elle diminue les performances. De même pour les espaces dans les instructions.


Haut
 Profil  
Répondre en citant le message  
MessagePosté: 19 Oct 2022, 09:58 
Hors ligne

Inscription: 21 Fév 2020, 11:38
Messages: 366
Daniel Coulom a écrit:
Pourquoi utiliser des réels simple précision, alors que des entiers seraient suffisants ? L'utilisation de réels rend toutes les opérations beaucoup plus longues et gaspille inutilement la mémoire.
L'utilisation de noms de variables longs facilite la compréhension du programme, mais d'un autre côté elle diminue les performances. De même pour les espaces dans les instructions.


Bonjour Daniel

Comme il est expliqué ici, c'est juste un tout premier ruch pour voir le visu. Les variables I et J sont déjà des entiers dans le code. Et comme tu le vois sur l'écran, les scores sont à 7 chiffres alors que les entiers "Basic" ne sont qu'à 5 (et encore, limiré à 32767).

Bien sûr que j'utiliserai des entiers pour les scores (ça sera en assembleur alors pas vraiment le choix), je ne sais pas encore quelle tecnique j'utiliserai en assembleur pour ce faire, mais ce qu'avais suggéré Sam avec Pac-Man me semblme pas mal, si couplé à l'nstruction BCD. De toutes façon ça sera un octet par chiffre. Le BCD me paraoit pas mal pour ce faire.


Haut
 Profil  
Répondre en citant le message  
MessagePosté: 19 Oct 2022, 14:27 
Hors ligne

Inscription: 21 Fév 2020, 11:38
Messages: 366
Bonjour

Code:

10 CLEAR 5000,,128:SCREEN 7,0,0:cls:LOCATE,,0:DEFINT I-J: DEFINT S:CONSOLE,,6:INITSCORE$="0000000" 'SUPPRIMER CONSOLE DANS BASIC 1.0
11 LASER$="" : FOR I=0 TO 9 : LASER$=LASER$+"/"+CHR$(10)+CHR$(8)+"\"+CHR$(10)+CHR$(8):NEXT
12 DEFGR$(0)=16,16,16,255,16,16,16,16 'ENTRECROISEMENT DE CASES
13 FINLASER$="" : FOR I=0 TO 18  : FINLASER$=FINLASER$+GR$(0)+CHR$(10)+CHR$(8):NEXT
20 RESTORE 500 : FOR I=0 TO 7 : READ COULEUR : LINE (0,i)-(319,I),COULEUR:NEXT
21 RESTORE 501 : FOR I=0 TO 7 : READ COULEUR : LINE (32,i)-(79,I),COULEUR:LINE (304,I)-(319,I),COULEUR: NEXT
22 RESTORE 502 : FOR I=0 TO 7 : READ COULEUR : LINE (216,I)-(271,I),COULEUR: NEXT
23 INITSCORE=0:SCORE=INITSCORE:SCORE$=STR$(SCORE):SCORE$=MID$(SCORE$,2):SCORE$=MID$(INITSCORE$,1,7-LEN(SCORE$))+SCORE$
30 CONSOLE,,1:LOCATE0,0,0:print "GRIDRUNNER": LOCATE 15,0,0 : ? SCORE$:LOCATE 27,0,0:? SCORE$
31 CONSOLE,,0:color5:FOR I=19 TO 178 STEP 8 : LINE (8,I)-(311,I):NEXT
32 FOR I=11 TO 314 STEP 8 : LINE (I,16)-(I,175):NEXT
33 A$=INPUT$(1)

90 '**** ZONE HORS BASIC 1.0 *************
40 I=0: J=0 :LOCATE 0,I+2:? "Y":LOCATE J+1,22:? "X":
41 ON INTERVAL=1 GOSUB 100 :INTERVAL ON
42 LOCATE 0,21:?" ":X=1:LOCATE X,22:? "X"
43 A$=INKEY$ : IF A$="" THEN 43
48 INTERVAL OFF
49 '***** FIN ZONE HORS BASIC 1.0 *********
50 'INCREMENTE SCORE
51 SCORE=SCORE+1 : GOSUB 120: IF SCORE < 1000 THEN 51
52 A$=INPUT$(1)
90 END
100 ' DEPLACEMENTS

101 LOCATE 0,I+2:?" ":I=(I+1) MOD 20: LOCATE 0,I+2:? "Y"
102 LOCATE J+1,22:?" ":J=(J+1) MOD 38: LOCATE J+1,22:? "X"
103 IF J=6 THEN COLOR 7:LOCATE 7,2:  print using "&"; LASER$;: COLOR 5
104 IF J=8 THEN LOCATE 7,2: print using "&"; FINLASER$;
105 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
500 'COULEURS GPL 1
501 DATA 8,8,8,4,4,4,8
502 DATA 9,9,9,13,13,13,13,9
503 DATA 5,5,5,6,6,6,6,6


Le print USING "&" permet d'éviter les sauts de lignes en cas de chaine trop longue. Excellente option!


Haut
 Profil  
Répondre en citant le message  
Afficher les messages postés depuis:  Trier par  
Poster un nouveau sujet Répondre au sujet  [ 6 messages ] 

Heures au format UTC + 1 heure


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 28 invités


Vous ne pouvez pas poster de nouveaux sujets
Vous ne pouvez pas répondre aux sujets
Vous ne pouvez pas éditer vos messages
Vous ne pouvez pas supprimer vos messages
Vous ne pouvez pas joindre des fichiers

Rechercher:
Aller à:  
cron
Développé par phpBB® Forum Software © phpBB Group
Traduction par phpBB-fr.com