Special Program, gli anni ottanta e le cassette dell'edicola... ai tempi di python

Special Program - La rivista degli anni ottanta per Commodore 64 e ZX Spectrum

La verità è che con il caldo agostano non avevo proprio voglia di lavorare, così ho scritto del codice in python per ricordare gli anni ottanta e gli home computer dell’epoca, fra cui i “miei” Commodore 64 e MSX Philips VG-8020 (lo so, ero un ragazzino fortunato :-D)

In particolare il codice in Python prova a mimare l’introduzione che si trovava in tante di quelle riviste con audiocassetta che venivano vendute in edicola. Si, quelle belle cassette che mica avevano giochi pirati con i nomi cambiati per evitare cause legali… nooooo! :-D

Beh, il programma è questo qua:

# get_terminal_size() mi permette di
# capire quanto grande è il terminale
# in base a colonne x righe, e di
# conseguenza mi dice quanti caratteri
# posso stampare in una riga di testo
from os import get_terminal_size

# sleep() mi permette di sospendere
# l'esecuzione del programma per un
# tempo prestabilito
from time import sleep

# Prepariamo le righe da stampare
# e mettiamole in una lista

msg = [
    "Ciao a tutti!",
    "In questo numero di Special Program troverete:",
    "",
    "1) CAMMELLI", "2) ARTURO IL CONIGLIO", "3) ZONE PAZZE",
    "4) TANTI ALTRI GIOCHI PIRATONI CON NOME FARLOCCO",
    "",
    "Per caricare i giochi ricordati",
    "di premere il pulsante PLAY sul",
    "tuo registratore a cassette!",
    "",
    "Appuntamento al mese prossimo in edicola!!!"
]

# Per ogni riga della lista...

for numero, linea in enumerate(msg, start=1):
    
    # Per ogni lettera della riga...
    
    for lettere in range(len(linea) + 1):
    
        # Pulisce la linea

        print("." * (get_terminal_size().columns - 8) +
              " {}\r".format(str(numero).zfill(2)),
              end="")
        
        # Stampa la linea fino alla
        # lettera indicata
        
        print(linea[0:lettere] + "\r", end="")
        
        # Attendi un decimo di secondo
        sleep(0.1)
    
    # Ha finito di stampare una linea.
    # Attende sei decimi di secondo prima
    # di continuare.
    
    sleep(0.6)
    
    # Ora va a capo di una riga
    
    print()

Cosa fa esattamente? Visualizza l’elenco dei giochi su cassetta in maniera abbastanza simile a come lo avrebbe fatto un programma dell’epoca per Commodore 64 o ZX Spectrum.

Potete provare il codice collegandovi qui: https://replit.com/@fmaida/Special-Program

Francesco Maida @cesco

© 2019-21 Francesco Maida