samedi 16 septembre 2023

LES BLINDES ATTAQUENT POUR ZX 81

 
écran de présentation


D'après LES BLINDES ATTAQUENT 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


Nous sommes en 2582, les peuples de la Terre sont en guerre contre les robots. Sous vos ordres, une brigade de blindés a été envoyée en plein désert pour détruire la vieille forteresse en ruine où se cache la dernière base importante des forces robots. Il ne vous reste plus que 5 missiles à bord de votre tank : ne gaspillez plus vos munitions, ajustez au mieux la direction et la hausse de votre canon à chaque tir. L'ordinateur vous demande de lui communiquer l'angle de tir compris entre -90° (extrême gauche) et +90° (extrême droite) ainsi que la hausse du tir, de 0 (au sol) à 90 (au zénith), qui détermine la distance au point d'impact. Avez-vous les nerfs assez solides pour accomplir cette mission ?

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.

une adaptation classique en FreeBASIC


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 pour ---
' --- un listing en FreeBASIC pour ---
' --- RETROGICIEL - LES BLINDES ATTAQUENT ---

' --- Initialisation du mode écran ---
SCREEN 12

' --- Lancement du générateur de nombres aléatoires ---
RANDOMIZE

' --- Déclaration des variables --- 
DIM ksaisie AS STRING = ""

' --- Entrée de la boucle principale ---
DO
  ' --- Initialisation des variables --- 
  DIM kdirection AS INTEGER = 0
  DIM khausse AS DOUBLE = 0
  DIM kangle AS INTEGER = ( INT ( RND * 181 ) - 90 )
  DIM kdistance AS DOUBLE = RND
  ksaisie = ""
  
  ' --- Présentation --- 
  CLS
  PRINT "LES BLINDES ATTAQUENT"
  
  ' --- boucle des essais du joueur --- 
  FOR kessais AS INTEGER = 1 TO 5
    PRINT ""
    PRINT "MISSILE " ; kessais ; " SUR 5 ..."
    INPUT "ENTREZ LA DIRECTION (-90 A 90 ) ? " , kdirection
    INPUT "ENTREZ LA HAUSSE ( 0 A 90 ) ? " , khausse
    khausse = SIN ( 2 * ( khausse / 180 * 3.1416 ) )
    IF ABS ( kangle - kdirection ) < 2 AND ABS ( kdistance - khausse ) < .05 THEN
      ksaisie = "correcte"
      EXIT FOR
    ELSE
      PRINT "MISSILE ENVOYE " ; 
      IF ( kdirection < kangle ) THEN ksaisie = "GAUCHE," ELSE ksaisie = "DROITE,"
      PRINT "TROP A " ; ksaisie ; 
      IF ( khausse < kdistance ) THEN ksaisie = "PRET." ELSE ksaisie = "LOIN."
      PRINT " ET TROP " ; ksaisie
    END If
  NEXT
      
  ' --- Test et affchage du résultat des essais --- 
  PRINT ""
  IF ksaisie = "correcte" THEN
    PRINT "BOOOUUUMMM"
    PRINT "VOUS AVEZ FAIT MOUCHE"
  ELSE
    PRINT "MALHEUR - VOUS AVEZ ECHOUE"
    PRINT "ALLEZ CACHER VOTRE HONTE"
  END IF
  PRINT ""

  ' --- 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


Aucun commentaire:

Enregistrer un commentaire

ORDINATEURS

LISTES DES ORDINATEURS TRS 80 ZX 81