vendredi 22 septembre 2023

EVADEZ VOUS POUR ZX 81

écran de présentation


D'après EVADEZ-VOUS 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. Les robots vous ont capturé, désarmé et enfermé. Votre cas semble désespéré, mais tout à coup, vous vous rappelez de l'existence de la montre-sonar toujours à votre poignet. Une fréquence bien précise peut neutraliser vos gardes en les faisant entrer en résonance ; mais attention, une fréquence trop base peut faire vibrer les murs qui s'écrouleraient sur vous ; trop haute, elle se traduirait par un mal de tête insupportable.

Saurez-vous échapper à l'horreur des prisons des robots ? Pour connaitre la gemme des fréquences utilisables, consultez attentivement le programme.

Pouvez-vous rendre le jeu plus difficile en réduisant, de 5, la marge d'erreur autour de la fréquence à découvrir ou bien en augmentant l'amplitude des fréquences au-dela de 100 ?

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

' --- un listing en FreeBASIC pour ---

' --- RETROGICIEL - EVADEZ-VOUS ---

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

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

' --- Déclaration des variables --- 
DIM kfrequence AS INTEGER = 0
DIM kbas AS INTEGER = 0
DIM khaut AS INTEGER = 0
DIM kchoix AS INTEGER = 0
DIM ksaisie AS STRING = ""

' --- Entrée de la boucle principale ---
DO
  ' --- Initialisation des variables ---
  kbas = 0
  khaut = 0
  kchoix = 0
  kfrequence = INT ( RND * 100 ) + 1

  ' --- Affichage du titre --- 
  CLS
  PRINT "EVADEZ-VOUS"
  PRINT ""
  
  ' --- Boucle pour cinq essais --- 
  FOR kessais AS INTEGER = 1 TO 5
    
    ' --- Le joueur entre une fréquence ---
    INPUT "VOTRE FREQUENCE ? " , kchoix
    
    ' --- Analyse de la fréquence choisie par le joueur ---
    IF ABS ( kfrequence - kchoix ) < 5 THEN
      GOTO BLS_Evasion
    ELSEIF ( kfrequence - kchoix ) > 40 THEN
      kbas = kbas + 1
      IF kbas = 2 THEN GOTO BLS_Enseveli ELSE PRINT "TROP BASSE... ATTENTION !"
    ELSEIF ( kchoix - kfrequence ) > 40 THEN
      khaut = khaut + 1
      IF khaut = 2 THEN GOTO BLS_Evanoui ELSE PRINT "TROP ELEVEE... AIEEEE"
    ELSE
      PRINT "SANS EFFET"
    END IF

  NEXT
  
  ' --- Le joueur n'a pas trouvée la bonne fréquence --- 
  PRINT "TROP TARD."
  PRINT "LA FREQUENCE ETAIT" ; kfrequence
  GOTO BLS_Boucle
  
  ' --- Le joueur a donné 2 fréquences beaucoups trop basses --- 
  BLS_Enseveli:
    PRINT "LES MURS S'ECROUENT"
    GOTO BLS_Boucle
    
  ' --- Le joueur a donné 2 fréquences beaucoups trop hautes --- 
  BLS_Evanoui:
    PRINT "VOUS VOUS EVANOUISSEZ" 
    GOTO BLS_Boucle
    
  ' --- Le joueur a donné une bonne estimaton de la fréquence --- 
  BLS_Evasion:
    PRINT "EVASION REUSSIE"
    GOTO BLS_Boucle  
    
  ' --- Recommencer ou quitter du jeu --- 
  BLS_Boucle:
    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