samedi 16 septembre 2023

LE SIEGE DU CHATEAU FORT POUR ZX 81

 

écran de présentation



D'après LE SIEGE DU CHATEAU 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 bataille furieuse et sanglante oppose le roi et son plus mortel ennemi, le Baron félon. Vous êtes un des meilleurs archers royaux et, caché derrière des buissons qui entourent le chateau ennemi, vous décochez vos flèches dès l'apparition des assiégés aux créneaux.

Votre ordinateur affiche une rangée de huit points et la lettre O. Vous devez très rapidement presser la bonne touche, de 1 à 9, selon la position de O, avant que la lettre ne disparaisse. Combien d'hommes du Baron allez-vous réussir à éliminer ? 

Seriez-vous capable de changer le programme pour avoir 2 cibles : S, un des soldats du Baron, comptant pour 1 point et C, un des chevalier félons, comptant pour 5 points ?

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 pour FreeBASIC pour ---
' --- RETROGICIEL - LE SIEGE DU CHATEAU FORT ---

' --- 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
  ' --- Présentation du titre du jeu --- 
  CLS
  PRINT "LE SIEGE DU CHATEAU FORT"
  PRINT ""
  SLEEP ( 2000 )

  ' --- Boucle des dix tentatives ---
  DIM kscore AS INTEGER = 0
  FOR kfleche AS INTEGER = 1 to 10
  
    ' --- Création de la ligne des crénaux avec un garde ---
    DIM kcrenaux AS STRING = ""
    DIM kgarde AS INTEGER = ( RND * 8 ) + 1
    FOR kposition AS INTEGER = 1 TO 9
      IF kposition = kgarde THEN kcrenaux = kcrenaux + "O" ELSE kcrenaux = kcrenaux + "."
    NEXT
    PRINT kcrenaux ; 
    
    ' --- Analyse du tir du joueur ---
    SLEEP ( 1500 )
    ksaisie = INKEY
    IF VAL ( ksaisie ) = kgarde THEN 
      PRINT " >>> TOUCHE EN " + ksaisie 
      kscore = kscore + 1
    ELSE 
      PRINT " >>> RATE EN " + ksaisie 
    END IF
  NEXT

  ' --- Fin de partie ---
  PRINT "VOUS AVEZ REUSSIS " + STR ( kscore ) + " COUPS SUR 10" + CHR ( 13 )

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