dimanche 10 septembre 2023

DUEL POUR ZX 81

écran de présentation



D'après DUEL 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



Placés dos à dos, vous et l'autre cow-boy, vous vous éloignez l'un de l'autre de 10 pas, puis lentement vous vous retournez et approchez votre main de la crosse du révolver. Serez-vous le plus rapide ? Tirerez-vous le premier ?

Le micro-ordinateur inscrira les nombres de 1 à 10 sur l'écran pour simuler les 10 pas, laissera passer un temps relativement bref et affichera : IL DÉGAINE... Vous devrez alors appuyer sur n'importe quelle touche le plus vite possible. Si vous êtes assez rapide, votre vie sera sauve. N'appuyez pas sur une touche avant la visualisation du message : IL DÉGAINE..., vous seriez déclaré perdant.

Pour rendre le jeu plus difficile, vous pouvez donner 1 possibilité sur 3 de rater votre coup et d'afficher le message : "MAIS A COTÉ".

A la suite du listing complet pour le ZX 81, vous trouverez les modifications nécéssaires 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 - DUEL ---

' --- 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 et affichage des consignes --- 
  CLS
  PRINT "DUEL"
  PRINT ""
  PRINT "VOUS ETES DOS A DOS"
  PRINT "ELOIGNEZ-VOUS DE 10 PAS..."

  ' --- Animation virtuelle des 10 pas --- 
  FOR kpas AS INTEGER = 1 TO 10
    PRINT kpas ; ".. " ;
    SLEEP 400
  NEXT
  PRINT ""
  
  ' --- Attente aléatoire ---
  FOR kattente AS INTEGER = 0 TO ( INT ( RND * 9 ) + 4 )
    IF INKEY <> "" THEN
      PRINT "VOUS AVEZ DEGAINEE EN PREMIER."
      PRINT "VOUS AVEZ PERDU"
      GOTO BLS_Cycle
    END IF
    SLEEP 50
  NEXT 
  
  ' --- Teste du réflexe du joueur ---
  PRINT "IL DEGAINE..."
  FOR kattente AS INTEGER = 0 TO ( INT ( RND * 3 ) + 6 )
    IF INKEY <> "" THEN
      PRINT "MAIS VOUS AVEZ TIRE EN PREMIER."
      PRINT "IL EST MORT." 
      GOTO BLS_Cycle
    END IF
    SLEEP 50
  NEXT 
  PRINT "ET TIRE."
  PRINT "VOUS ETES MORT." 
  
  ' --- Recommencer ou quitter du jeu --- 
  BLS_Cycle:
    SLEEP 1000 , 1
    ksaisie = "R"
    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