mercredi 20 septembre 2023

L'ARME SECRETE POUR ZX 81

 
écran de présentation


D'après L'ARME SECRETE 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. Grâce à votre nouvelle arme secrète, vous allez être en mesure de détruire le Magasin des Pièces de Rechange des robots, enterré dans les étendues désertiques de l'Est. Cette nouvelle arme peut traverser la roche sans bruit, désagrégeant tout sur son passage. Mais le Magasin est si intelligemment dissimulé que vous ne pouvez guère diriger votre arme qu'à l'aveuglette en espérant arriver le plus près possible de l'objectif.

Définissez la difficulté du jeu (4 étant le plus petit nombre autorisé) et communiquez les coordonnées (X et Y) probables de l'objectif. Vous entrez séparément X et Y.

Pourriez-vous modifier la comptabilisation du score pour que vous obteniez 1 point à chaque fois que vous échouez de peu et de 10 points en cas de réussite complète ?

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 - L'ARME SECRETE ---

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

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

' --- Déclaration des variables --- 
DIM kdifficulte AS INTEGER = 0
DIM kabscisse AS INTEGER = 0
DIM kordonnee AS INTEGER = 0
DIM khorizontal AS INTEGER = 0
DIM kvertical AS INTEGER = 0
DIM kdistance AS DOUBLE = 0.0
DIM ksaisie AS STRING = ""

' --- Entrée de la boucle principale ---
DO
  ' --- Affichage du titre --- 
  CLS
  PRINT "L'ARME SECRETE"
  PRINT ""
  
  ' --- Choix de la dificulté --- 
  BLS_Niveau:
    INPUT "DIFFICULTE CHOISIE (4 A 9) ? " , kdifficulte
    IF kdifficulte < 4 OR kdifficulte > 9 THEN GOTO BLS_Niveau

  ' --- Initialisation des variable --- 
  kabscisse = INT ( RND * kdifficulte ) + 1
  kordonnee = INT ( RND * kdifficulte ) + 1
  ksaisie = "0"


  ' --- Boucle des 5 essais du joueur --- 
  FOR kessais AS INTEGER = 1 TO 5
  
    ' --- Saisie des coordonnées par le joueur ---
    PRINT "COORDONNEES X ET Y DU TIR" ; kessais ; " SUR 5."
    INPUT "ENTREZ LA VALEUR DE X ... " ; khorizontal
    INPUT "ENTREZ LA VALEUR DE Y ... " ; kvertical
    
    ' --- Calcul de la distance entre l'impac et le magasin ---
    kdistance = SQR ( ( ( kabscisse - khorizontal ) ^ 2 ) + ( ( kordonnee - kvertical ) ^ 2 ) )
    
    ' --- Analyse du tir du joeur ---
    IF kdistance = 0 THEN
      ksaisie = STR ( kessais )
      EXIT FOR
    ELSEIF kdistance <= 3 THEN
      PRINT "PAS LOIN"
    ELSE 
      PRINT "MAUVAISE LOCALISATION"
    END IF

  NEXT

  ' --- Affichage du résultat de la partie ---
  PRINT ""
  IF ksaisie = "0" THEN 
    PRINT "LES ROBOTS VOUS ONT REPERE. VOUS ETES M ... AGGHHH"
  ELSE 
    PRINT "VOUS L'AVEZ DETRUIT EN " ; ksaisie ; " COUPS"
  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