Merci Scharf pour les référence du jeu initial sur PC-1211
Je me souvient avoir essayer à l'époque. Mais, sans l'affichage dynamique de la zone, ce jeu est moins amusant; Il fallait faire son petit montage avec un plateau de jeu est des pions dessiné ou emprunté à la mallette des jeu de société ou d'un jeu de dames.
J'ai recopié pour essayer sur mon PC-1211 le code de la revue que je donne ci-dessous car plus lisible que le scan du site abondware:
Code : Tout sélectionner
1:REM "AUTEUR ROBERT HOEYMAKERS"
2:REM "COPYRIGHT L^ORDINATEUR DE POCHE ET L^AUTEUR
10:PAUSE ">>>>L^AVION-ESPION<<<<"
15:BEEP 1:PAUSE "0 <= COORDONNEES <= 10"
20:CLEAR :T=5:Q=5
30:INPUT "DIFFICULTE (1 a 5) ? ";D:D=D+D/10
40:INPUT "ABSC. DE DEPART ";B:K=B
50:INPUT " ORD. DE DEPART ";C:L=C
55:IF (B<>0)*(C<>0)*(B<>10)*(C<>10) BEEP 2:PAUSE "DEPART HORS BORD ZONE":PAUSE "AU - UNE COORD.= 0 OU 10":GOTO 40
60:X=B-T:Y=C-Q
65:IF X=0 LET X=X+T
66:IF Y=0 LET Y=Y+Q
70:A=ATN (Y/X):R=Y*SIN A
80:IF R<0LET A=180+A
90:V=D*COS A:W=D*SIN A:T=T+V:Q=Q+W
95:IF R<1.2 LET T=INT T:Q=INT Q:USING
100:IF (B>=4)*(B<=6)*(C>=4)*(C>=6) LET G=G+1
110:IF (T=B)*(Q=C) GOTO "P"
120:IF (G>=2)*(K=B)*(L=C) GOTO "G"
130:BEEP 2:PRINT USING "###.#";"MISSILE :(";T;",";Q;")"
140:BEEP 2:PAUSE "OU ALLEZ-VOUS ?":INPUT "X=";B,"Y=";C:GOTO 60
150:"P":BEEP 2:"MISSILE :(";T;",";Q;")"
160:BEEP 10:PAUSE "BOUMMMMM !!!": PRINT "LE MISSILE VS A REJOINT"
165:INPUT "UNE AUTRE PARTIE ?";M$
170:E=165:GOTO "AUTRE"
180:"G":BEEP 10:PAUSE "BRAVO !!!":PAUSE "MISSION ACCOMPLIE !"
190:PRINT "VOUS SEREZ DECORE(E):"
200:INPUT "UNE AUTRE MISSION ?";M$:E=200
210:"AUTRE":IF M$="OUI" BEEP 1:PAUSE "OK! C^EST REPARTI...":GOTO 20
220:IF M$="NON" THEN 240
230:BEEP 1:PAUSE "Je NE COMPRENDS PAS...":GOTO 200
240:If E=200 BEEP 3:PAUSE "AU REVOIR ! VOUS AVEZ": PAUSE "BIEN MERITE DU REPOS ":CLEAR :END
250 IF E=165BEEP 3:PRINT " T E R M I N E ":CLEAR :END
Code : Tout sélectionner
Manque mise en mode DEGREE
Manque l'utilisation de E à la ligne 230
Pas de contrôle validité du déplacmeent de l'avion !?!
A: angle calcul direction missile
B: abscisse avion
C: ordonnée avion
D: difficulté/vitesse missile (1.1 ~ 1.5)
E: n° ligne question fin de partie
K: abscisse depart avion
L: ordonnée départ avion
M$:réponse joueur pour nouvelle partie
Q: abscisse missile
R: rayon déplacement missile
T: ordonnée missile
V: variation abscisse missile
W: variation ordonnée missile
X: écart en abdcisses (avion-missile)
Y: écart en ordonnées (avion-missile)
Ce listing est typique des listing de l'époque publié dans ce type de revue. Il y a quelque petite choses à redire. l'auteur indique qu'il y a des tests pour éviter de tricher, mais il est possible d'entrer des coordonnées non entières et aucun contrôle n'est fait sur la vitesse de l'avion !! C'est donc bien plus difficile de tricher sur une Numworks !
Sur la version PC-1211, la gestion de la fin de partie est longue et bien compliquée pour pas grand chose.
Attention, si vous omettez d'entrer les nouvelles coordonnées de l'avion et pressez directement sur ENTER, vous avez immédiatement perdu ! Je ne sais pas si c'est voulu par l'auteur du code, mais c'est bien maladroit. J'aurais préféré qu'une pression sur ENTER redonne les coordonnées du missile !
Mais bon, chacun peut pourra modifier sa version pour en améliorer la jouabilité. Pour ma part, j'ai retirer pas mal de BEEPs, je trouve qu'il y en a un peu trop partout !
Le vrai souci est que le PC-1211 est bien lent et que les parties s'éternisent, hors le code proposé ne prévoit rien pour reprendre une partie en cours après avoir par exemple fait autre chose ou éteint son pocket.
Sinon, le guidage du missile utilise effectivement la trigonométrie. Mais pas de fonction POL( ) , le calcul est fait à l'aide de la fonction arc tangente et d'une vérification de signe.
Code : Tout sélectionner
60:X=B-T:Y=C-Q
65:IF X=0 LET X=X+T
66:IF Y=0 LET Y=Y+Q
70:A=ATN (Y/X):R=Y*SIN A
80:IF R<0LET A=180+A
D'ailleurs l'auteur a omis de forcer le mode DEGREE dans son code et utilise la correction A=180+A. Bon, c'est pas le seul bugg.