samedi 7 octobre 2023
MISSILES ANTIAERIENS POUR TRS 80
![]() |
| écran de présentation |
dans "des programmes pour votre micro - Battle games"
publié en 1982 écrit en Sinclair BASIC pour TRS 80
![]() |
| caractéristiques de la version originale |
![]() |
| une adaptation classique en FreeBASIC |
' --- Origine Nerd propose ---
' --- un listing en FreeBASIC pour ---
' --- RETROGICIEL - MISSILES ANTIAERIENS ---
' --- Initialisation du mode écran ---
SCREEN 12
' --- Lancement du générateur de nombres aléatoires ---
RANDOMIZE
' --- Déclaration des variables ---
DIM kmissile ( 2 ) AS INTEGER
DIM kbase AS INTEGER = 0
DIM kabscisse AS INTEGER = 0
DIM kordonnee AS INTEGER = 0
DIM kvitesse AS INTEGER = 0
DIM kpartie AS STRING = ""
DIM ksaisie AS STRING = ""
' --- Affichage de l'avion espion ---
SUB FNC_Avion ( Qabscisse AS INTEGER , Qordonnee AS INTEGER , Qcouleur AS INTEGER )
LINE ( Qabscisse , Qordonnee ) - ( Qabscisse , Qordonnee + 8 ) , Qcouleur
LINE - ( Qabscisse + 25 , Qordonnee + 8 ) , Qcouleur
LINE - ( Qabscisse + 20 , Qordonnee + 4 ) , Qcouleur
LINE - ( Qabscisse + 7 , Qordonnee + 4 ) , Qcouleur
LINE - ( Qabscisse + 4 , Qordonnee ) , Qcouleur
LINE - ( Qabscisse , Qordonnee ) , Qcouleur
END SUB
' --- Entrée de la boucle principale ---
DO
' --- Initialisation des variables ---
kbase = 0
kmissile ( 2 ) = 430
kordonnee = 0
kordonnee = INT ( RND * 70 ) + 30
kvitesse = INT ( RND * 5 ) + 1
kpartie = "RATE"
' --- Affichage des consignes ---
CLS
LOCATE 0 , 15
PRINT "MISSILES ANTIAERIENS : APPUYEZ SUR F POUR TIRER"
' --- Affichage des portes missiles ---
LINE ( 50 , 440 ) - ( 90 , 460 ) , 15 , BF
LINE ( 69 , 430 ) - ( 71 , 440 ) , 15 , BF
LINE ( 300 , 440 ) - ( 340 , 460 ) , 15 , BF
LINE ( 319 , 430 ) - ( 321 , 440 ) , 15 , BF
LINE ( 550 , 440 ) - ( 590 , 460 ) , 15 , BF
LINE ( 569 , 430 ) - ( 571 , 440 ) , 15 , BF
' --- Boucle du jeu ---
DO
' --- Déplacement du missile tiré ---
IF kbase <> 0 and kmissile ( 2 ) <> 430 THEN
LINE ( kmissile ( 1 ) , kmissile ( 2 ) ) - ( kmissile ( 1 ) + 2 , kmissile ( 2 ) + 10 ) , 0 , BF
kmissile ( 2 ) = kmissile ( 2 ) - 5
if kmissile ( 2 ) < 10 THEN kmissile ( 2 ) = 430
LINE ( kmissile ( 1 ) , kmissile ( 2 ) ) - ( kmissile ( 1 ) + 2 , kmissile ( 2 ) + 10 ) , 15 , BF
END IF
' --- Test si le missile à touché l'avion ---
IF kordonnee > kmissile ( 2 ) AND kordonnee < kmissile ( 2 ) + 10 THEN
IF kmissile ( 1 ) > kabscisse AND kmissile ( 1 ) < kabscisse + 25 THEN
kpartie = "TOUCHE"
kbase = 3
kmissile ( 2 ) = 430
END IF
END IF
' --- Déplacement de l'avion espion ---
FNC_Avion ( kabscisse , kordonnee , 0 )
IF kabscisse < 620 THEN kabscisse = kabscisse + kvitesse ELSE kabscisse = 0
FNC_Avion ( kabscisse , kordonnee , 15 )
sleep ( 10 , 1 )
' --- Nouveau tir du joueur ---
IF kmissile ( 2 ) = 430 THEN
ksaisie = INKEY
IF UCASE ( ksaisie ) = "F" THEN
kbase = kbase + 1
IF kbase = 1 THEN kmissile ( 1 ) = 69
IF kbase = 2 THEN kmissile ( 1 ) = 319
IF kbase = 3 THEN kmissile ( 1 ) = 569
kmissile ( 2 ) = 420
END IF
END IF
LOOP UNTIL ( kbase = 3 AND kmissile ( 2 ) = 430 )
FNC_Avion ( kabscisse , kordonnee , 0 )
LOCATE 6 , 30
PRINT kpartie
' --- Recommencer ou quitter du jeu ---
LOCATE 8 , 15
PRINT "R pour recommencer ou Q pour Quitter"
ksaisie = INPUT ( 1 )
LOOP UNTIL ( ksaisie = "q" OR ksaisie = "Q" )
' --- Programme : JFB ---
' --- Octobre 2023 ---
' --- Fin ---
![]() |
| une adaptation modernisée en Python |
ORDINATEURS
LISTES DES ORDINATEURS TRS 80 ZX 81
-
écran de présentation D'après MISSILES ANTIAERIENS de D. ISAAMAN et J. TYLER . dans "des programmes pour votre micro - Battle...
-
écran de présentation D'après A BORD D'UN BOMBARDIER SUPERSONIQUE de D. ISAAMAN et J. TYLER . dans "des programmes pour vo...




