![]() |
| écran de présentation |
dans "des programmes pour votre micro - Battle games"
publié en 1982 écrit en Sinclair BASIC pour ZX 81
![]() |
| caractéristiques de la version originale |
' --- Origine Nerd propose ---
' --- un listing en FreeBASIC pour ---
![]() |
| écran de présentation |
dans "des programmes pour votre micro - Battle games"
publié en 1982 écrit en Sinclair BASIC pour ZX 81
![]() |
| caractéristiques de la version originale |
' --- Origine Nerd propose ---
' --- un listing en FreeBASIC pour ---
![]() |
| écran de présentation |
dans "des programmes pour votre micro - Battle games"
publié en 1982 écrit en Sinclair BASIC pour ZX 81
![]() |
| caractéristiques de la version originale |
![]() |
| une adaptation classique en FreeBASIC |
' --- Origine Nerd propose ---
' --- un listing en FreeBASIC pour ---
' --- RETROGICIEL - A BORD D'UN BOMBARDIER SUPERSONIQUE ---
' --- Initialisation du mode écran ---
SCREEN 12
' --- Lancement du générateur de nombres aléatoires ---
RANDOMIZE
' --- Déclaration des variables ---
DIM kscore AS INTEGER = 0
DIM kcible AS INTEGER = 0
DIM kpause AS INTEGER = 0
DIM kchoix AS STRING = ""
DIM ksaisie AS STRING = ""
DIM TBL_Zones ( 5 ) AS INTEGER = { 0 , 0 , 0 , 0 , 0 , 0 }
' --- Entrée de la boucle principale ---
DO
' --- Boucle du jeu - 10 passages ---
FOR kbombe AS INTEGER = 1 TO 10
' --- Présentation et affichage des consignes ---
CLS
PRINT "BOMBARDIER SUPERSONIQUE"
PRINT ""
' --- Initialisation des graphiques ---
kcible = 1
FOR kzone AS INtEGER = 1 TO 5
TBL_Zones ( kzone ) = INT ( RND * 10 ) + 1
IF TBL_Zones ( kzone ) > TBL_Zones ( kcible ) THEN kcible = kzone
PRINT kzone ; " : " ; STRING ( TBL_Zones ( kzone ) , "*" )
NEXT
' --- Pause pour le choix du joueur ---
PRINT "VOTRE CHOIX ? "
SLEEP ( 3000 - ( 250 * kbombe ) , 1 )
kchoix = INKEY
IF CINT ( kchoix ) = kcible THEN kscore = kscore + 1
NEXT
' --- Affichage du score ---
PRINT "VOUS AVEZ PLACE " ; kscore ; " BOMBES SUR LA BONNE CIBLE."
IF kscore = 10 THEN PRINT "VOUS ETES UN HERO"
IF kscore < 10 THEN PRINT "RESULTATS MEDIOCRE"
SLEEP ( 1000 , 1 )
' --- Recommencer ou quitter du jeu ---
PRINT "R pour recommencer ou Q pour Quitter"
ksaisie = INPUT ( 1 )
LOOP UNTIL ( ksaisie = "q" OR ksaisie = "Q" )
' --- Programme : JFB ---
' --- Septembre 2023 ---
' --- Fin ---
![]() |
| une adaptation modernisée en Python |
![]() |
écran de présentation |
dans "des programmes pour votre micro - Battle games"
publié en 1982 écrit en Sinclair BASIC pour ZX 81
![]() |
| une adaptation classique en FreeBASIC |
' --- Origine Nerd propose ---
' --- un listing en FreeBASIC pour ---
' --- RETROGICIEL - LE COMBAT AERIEN ---
' --- Initialisation du mode écran ---
SCREEN 12
' --- Lancement du générateur de nombres aléatoires ---
RANDOMIZE
' --- Déclaration des variables ---
DIM kdistance AS INTEgER = 0
DIM kvitesse AS INTEgER = 0
DIM ksaisie AS STRING = ""
' --- Entrée de la boucle principale ---
DO
' --- Initialisation des variables ---
kvitesse = INT ( RND * 11 ) - 5
kdistance = -INT ( RND * 3 ) + 1
' --- Boucle du déroulement jeu ---
DO
' --- Affichage du titre, de la position et de la vitesse ---
CLS
PRINT "COMBAT AERIEN"
PRINT ""
IF kdistance < 0 THEN PRINT "VOUS ETES DERRIERE LUI " ; kdistance
IF kdistance > 0 THEN PRINT "VOUS ETES DEVANT LUI " ; kdistance
IF kdistance = 0 THEN PRINT "VOUS ETES EN POSITION DE TIR"
IF kvitesse > 0 THEN PRINT "VOTRE VITESSE EST TROP ELEVEE " ; kvitesse
IF kvitesse < 0 THEN PRINT "VOTRE VITESSE EST TROP FAIBLE " ; kvitesse
IF kvitesse = 0 THEN PRINT "VOTRE VITESSE EST CONVENABLE"
' --- Teste la touche appuyée ---
ksaisie = INKEY
IF UCASE ( ksaisie ) = "A" AND kvitesse < 5 THEN kvitesse = kvitesse + 1
IF UCASE ( ksaisie ) = "R" AND kvitesse > -5 THEN kvitesse = kvitesse - 1
IF UCASE ( ksaisie ) = "F" AND kdistance = 0 THEN ksaisie = "TIR"
IF UCASE ( ksaisie ) = "F" AND ABS ( kdistance ) > 1 THEN PRINT "VOUS L'AVEZ JUSTE EFFLEURE"
' --- Vide le tampon du clavier ---
DO : LOOP UNTIL ( INKEY = "" )
' --- Pausse inconditionnelle ---
SLEEP ( 500 , 1 )
' --- Actualisation et controle de la distance ---
kdistance = kdistance + kvitesse
IF ABS ( kdistance ) > 20 THEN ksaisie = "LOIN"
LOOP UNTIL ( ksaisie = "TIR" OR ksaisie = "LOIN" )
' --- Analyse de la fin de pertie ---
IF ksaisie = "LOIN" THEN PRINT "VOUS L'AVEZ PERDU DE VUE"
IF ksaisie = "TIR" THEN IF RND > .7 THEN PRINT "VOUS ETES TOUCHE" ELSE PRINT "VOUS L'AVEZ ABATTU !"
SLEEP ( 500 , 1 )
' --- Recommencer ou quitter du jeu ---
PRINT "R pour recommencer ou Q pour Quitter"
ksaisie = INPUT ( 1 )
LOOP UNTIL ( ksaisie = "q" OR ksaisie = "Q" )
' --- Programme : JFB ---
' --- Septembre 2023 ---
' --- Fin ---
![]() |
| une adaptation modernisée en Python |
dans "des programmes pour votre micro - Battle games"
publié en 1982 écrit en Sinclair BASIC pour ZX 81
![]() |
| caractéristiques de la version originale |
![]() |
| une adaptation classique en FreeBASIC |
' --- Origine Nerd propose ---
' --- un listing en FreeBASIC pour ---
LISTES DES ORDINATEURS TRS 80 ZX 81