lundi 18 septembre 2023

LES ENVAHISSEURS POUR ZX 81

 

écran de présentation


D'après LES ENVAHISSEURS de D. ISAAMAN et J. TYLER.

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 multitude de robots envahisseurs s'apprête à vous attaquer. Heureusement, votre panoplie d'armes est très étendue, car vous aurez besoin d'un outil de guerre spécifique pour détruire chaque catégorie de robots.

Chaque robot sera présenté à l'écran par un symbole. Appuyez rapidement sur la touche correspondante et vérifiez combien d'envahisseurs vous avez réussi à éliminer. Attention : dans certains cas, vous devez également utiliser la touche SHIFT.

Certains robots sont les plus dangereux : U (Horrible), V (Sans-merci), W (Scorpion) et X (tête-en-fer). Vous est-il possible de modifier le programme pour que la destruction d'un "super-robot" vous rapporte 100 points au lieu de 10 ?

A la suite du listing complet pour le ZX 81, vous trouverez les modifications nécessaires pour l'utiliser sur les machines suivantes : VIC, PET, BBC, ACORM, TRS 80, APPLE et ZX SPECTRUM.




contient une présentation et une adaptation en Python
un listing pour FreeBASIC et Python optimisées pour LINUX
une version exécutable pour Linux et pour Windows

' --- Origine Nerd propose ---
' --- un listing pour FreeBASIC pour ---
' --- RETROGICIEL - LES ENVAHISSEURS ---

' --- 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 kcolonne AS INTEGER = 0
DIM kligne AS INTEGER = 0
DIM krobot AS STRING = ""
DIM ksaisie AS STRING = ""

' --- Entrée de la boucle principale ---
DO
  ' --- Initialisation d'une partie --- 
  CLS
  LOCATE 1 , 32
  PRINT "LES ENVAHISSEURS"
  SLEEP ( 3000 )
  kscore = 0
  
  ' --- Boucle des 25 envahisseurs ---
  FOR kenvahisseur AS INTEGER = 1 TO 25
    
    ' --- Initialisation du type et de la position ---
    kcolonne = INT ( ( RND * 30 ) ) + 25
    kligne = INT ( ( RND * 9 ) ) + 5
    krobot = CHR ( 65 + INT ( ( RND * 26 ) ) )
    ksaisie = ""
    
    ' --- Affichage de l'envahisseur ---
    LOCATE kligne , kcolonne
    PRINT krobot
    SLEEP ( 1650 )
    
    ' --- Analyse le choix de lettre du joueur ---
    ksaisie = INKEY 
    IF UCASE ( ksaisie ) = krobot THEN 
      LOCATE 18 , 34
      PRINT "UN DE MOINS" 
      kscore = kscore + 1
    ELSE 
      LOCATE 18 , 37
      PRINT "MANQUE"
    END IF
    
    ' --- Effacement de l'envahisseur ---
    LOCATE kligne , kcolonne
    PRINT " "

    ' --- Pause entre deux d'envahisseurs ---
    SLEEP ( 500 , 1 )
    
    ' --- Effacement de l'analyse du tir ---
    LOCATE 18 , 30
    PRINT STRING ( 20 , " " )

  NEXT

  ' --- Affichage du score obtenu ---
  LOCATE 18 , 28
  PRINT "VOUS TOTALISEZ " + STR ( kscore ) + " POINTS."
  SLEEP ( 1500 )
  
  ' --- Recommencer ou quitter du jeu ---
  LOCATE 20 , 21
  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



Aucun commentaire:

Enregistrer un commentaire

ORDINATEURS

LISTES DES ORDINATEURS TRS 80 ZX 81