JAMGame: solo un altro gioco di memoria (ZX81)

JAMGame (Just Another Memory Game) è un piccolo videogioco di memoria, ispirato al classico gioco elettronico Simon, per computer Sinclair ZX81.

JAMGame: schermata di gioco.
JAMGame: terzo livello; la sequenza proposta dal computer termina con “4” e il giocatore ha appena inserito la sequenza “1234”.

JAMGame è il mio terzo gioco in gara per l’undicesima edizione del BASIC 10Liner Contest, categoria PUR-80. In base alle regole della competizione, è stato realizzato con 10 linee di programma in linguaggio BASIC, con ciascun linea lunga al massimo 80 caratteri.

La realizzazione di programmi completi in sole 10 righe di codice risulta particolarmente sfidante su computer come lo ZX81, il cui interprete BASIC consente l’utilizzo di una sola istruzione per linea. Nella maggior parte dei dialetti BASIC, al contrario, è possibile introdurre più istruzioni per linea, separandole con il carattere “:”.

Listato di JAMGame (ZX81 emulato con EightyOne)

Navigando alla pagina di JAMGame su itch.io, potrai sia giocare online (dispositivi mobili non supportati), sia scaricare un archivio contenente il gioco stesso e la relativa documentazione, inclusa la spiegazione del codice.

Descrizione del gioco

JAMGame è un gioco di memoria per giocatore singolo. In ciascun round, il computer mostra una sequenza di numeri pseudocasuali compresi nell’intervallo tra 1 e 4, dopodiché il giocatore deve riprodurre la sequenza premendo i tasti corrispondenti, seguiti da “Enter”.
Con l’avanzare del gioco, la lunghezza della sequenza aumenta. Se il giocatore digita la
sequenza sbagliata, il gioco termina e per fare un’altra partita, il programma deve essere nuovamente eseguito.
L’alternanza di due caratteri grafici aiuta a distinguere le singole cifre della sequenza da riprodurre. Quando la sequenza presentata dal computer è terminata, il carattere “░” viene visualizzato vicino all’ultima cifra.

JAMGame: video di una partita (registrato con l’emulatore ZEsarUX).

Listato

Il codice del programma è riportato di seguito. Per una spiegazione dettagliata, rimando alla pagina di JAMGame su itch.io, da cui è possibile scaricare un archivio .zip contenente il gioco e la relativa documentazione.

1 LET L=3
2 LET A$=""
3 FOR I=1 TO L
4 LET A$=A$+STR$(1+INT(RND*4))
5 PRINT AT 0,0;"LEVEL:";L-2,,A$(I);" ";CHR$(9+(I/2=INT(I/2))*(I<L)-1*(I=L))
6 NEXT I
7 INPUT B$
8 IF B$<>A$ THEN STOP
9 LET L=L+1
10 GOTO 2

Link e riferimenti

Read in English

Risultati del BASIC 10Liner Contest 2021

Si è appena conclusa la cerimonia di premiazione dell’edizione 2021 del BASIC 10Liner Contest. L’evento, iniziato in mattinata, si è svolto durante l’intero arco della giornata, mediante la pubblicazione di tweet con i risutati parziali sull’account BASIC10Liners.

BASIC 10Liner Contest: "volantino" del concorso
BASIC 10Liner Contest: “volantino” del concorso

Un comitato composto da 7 esperti ha giudicato i 146 programmi in concorso ed ha espresso, per ciascuno di essi, un punteggio compreso tra 1 (scarso) e 10 (eccellente).

I titoli con cui ho partecipato all’edizione 2021 del contest appartengono tutti alla categoria PUR-80 (66 giochi in gara) e sono:

Nonostante l’anno scorso avessi ottenuto risultati migliori, sono comunque soddisfatto di essere entrato nella TOP 10 con ROUTE81 (9a posizione, 7.25 punti), la cui realizzazione è stata particolarmente sfidante, in quanto il BASIC dello ZX81 permette solamente un’istruzione per linea, quindi riuscire a realizzare un gioco in 10 righe di codice per questo piccolo computer è comunque un risultato notevole.

Il tweet che annuncia la nona posizione per ROUTE81
Il tweet che annuncia la nona posizione per ROUTE81

10 Miglia si è classificato 17o, con 6.75 punti, mentre è andata peggio per The Typing of the Spec, 48o con 4.50 punti.

Il tweet che annuncia la diciassettesima posizione per ROUTE81
Il tweet che annuncia la diciassettesima posizione per ROUTE81
Il tweet che annuncia la quarantottesima posizione per The Typing of the Spec
Il tweet che annuncia la quarantottesima posizione per The Typing of the Spec

Per la cronaca, il primo classificato per la categoria PUR-80, con 8.36 punti, è Moon Landing per Oric Atmos. Segue A Day In The Life Of A Teleporter per Commodore 64 (8.30 punti), mentre il terzo è Chuck’s Challenge, sempre per Commodore 64 (8.16 punti).
Ovviamente, vorrei provare (e studiare) tutti i giochi in concorso, ma da fan di PI-Balled e Q*bert, sono particolarmente attratto da Hubert per Atari 800 XL, che con 7.33 punti si è piazzato ottavo.

Risultati del BASIC 10Liner Contest 2021 (da basic10liner.com)
Risultati del BASIC 10Liner Contest 2021 (da basic10liner.com)

Segnalo che i giochi in gara e la classifica finale per tutte le categorie sono disponibili sui canali ufficiali del contest: Twitter, itch.io e sito web basic10liner.com e che le mie realizzazioni sono disponibili anche sul mio profilo itch.io.

Ricordo infine che è ancora possibile votare per il premio speciale Public’s Award, esprimendo la propria preferenza con un 💗 sul tweet dedicato al gioco o programma preferito (qui i link per ROUTE81, 10 Miglia e The Typing of the Spec).

Già pensando a cosa proporre nella prossima edizione, ringrazio ancora Gunnar e gli organizzatori dell’evento, gli altri partecipanti e gli amici di Retro Programmers Inside e RetroProgramming Italia.

Read in English

ROUTE81: videogioco di azione/corse BASIC 10-liner (ZX81)

Logo di ROUTE81
Logo di ROUTE81

ROUTE81 è un videogioco di azione/corse automobilistiche, realizzato in 10 linee di programma BASIC per il computer Sinclair ZX81. Per il funzionamento, è richiesta un’espansione di memoria di almeno 4k.

ROUTE81: screenshot del gioco
ROUTE81: screenshot del gioco

ROUTE81 è il mio secondo gioco in gara per l’edizione 2021 del BASIC 10Liner Contest. La realizzazione è stata particolarmente sfidante, in quanto l’interprete BASIC dello ZX81 consente solamente un’istruzione per linea. Proprio per questa ragione, per non sforare il limite delle 10 righe di codice imposto dal regolamento, ho dovuto eliminare alcune funzionalità presenti in quasi tutti i giochi, come la gestione del punteggio. Credo tuttavia che il risultato raggiunto sia valido e che il gioco meriti almento una partita.

ROUTE81: listato BASIC del programma
ROUTE81: listato BASIC del programma

Puoi sia scaricare ROUTE81 dalla pagina di itch.io dedicata al progetto, che giocare online sul tuo browser web.

Link alla pagina itch.io di ROUTE81

L’archivio scaricabile contiene, oltre al file del gioco in formato .P, la documentazione completa, con tanto di codice sorgente spiegato linea per linea.

Sul mio canale YouTube, è inoltre disponibile un breve video, che mostra il gameplay e il codice sorgente del programma.

Infine, se hai apprezzato ROUTE81, ti invito ad esprimere la tua preferenza, mettendo un like sul tweet dedicato. Il tuo voto contribuirà all’assegnazione del premio speciale “Public’s Choice”.

Read in English

Risultati del BASIC 10Liner Contest 2020

L’edizione 2020 del BASIC 10Liner Contest, a cui ho partecipato con Evas10n e Sierpinski 10-Liner, si è da poco conclusa e i risultati sono stati recentemente pubblicati.
È tuttavia ancora possibile votare per la “Public’s Choice” su Twitter, esprimendo la propria preferenza con un ❤ sul tweet dedicato al gioco o programma preferito (qui i link per Evas10n e Sierpinski 10-Liner).

Sono particolarmente soddisfatto dei risultati ottenuti, in quanto Evas10n si è classificato al settimo posto su 87 nella categoria PUR-80, mentre Sierpinski 10-Liner ha ottenuto la seconda posizione su 12 nella categoria SCHAU!

Infine, tutti i 10 liner sono stati resi disponibili per il download!

Read in English

Il triangolo di Sierpiński con lo ZX81: aggiornamento

Triangolo di Sierpinski su ZX81 - versione migliorata
Triangolo di Sierpinski su ZX81 – versione migliorata

Recentemente, sono venuto a conoscenza del BASIC 10Liner Contest e ho immediatamente pensato che il mio programma per generare il frattale noto come Triangolo di Sierpinski sul Sinclair ZX81, con le opportune modifiche, avrebbe potuto essere incluso a buon diritto tra i partecipanti della categoria “SCHAU”. Infatti, questa categoria è dedicata a demo, strumenti e applicazioni realizzati in 10 righe di codice (con lunghezza massima di 256 caratteri), mentre le altre categorie sono specifiche per i giochi.

Così, ho colto l’opportunità di riscrivere il codice, in modo da:

  • ridurre la lunghezza del programma (massimo 10 righe),
  • migliorare la qualità dell’immagine generata.

Il listato risultante è mostrato di seguito: il programma è effettivamente lungo 9 linee; inoltre, la scelta dei punti (X=0, Y=0), (X=30, Y=40) e (X=0, Y=60) quali vertici del triangolo garantisce un’immagine perfettamente simmetrica.

Listato del programma
Implementazione del programma di generazione del Triangolo di Sierpinski con algoritmo chaos game in 10 (anzi, 9!) righe

Bonus: per un’autentica esperienza retrocomputeristica, qui puoi trovare la versione TELETEXT/TELEVIDEO del listato BASIC e dell’output del programma!

Puoi scaricare un archivio zip contenente il codice sorgente, la documentazione completa e i file pronti per l’utilizzo con gli emulatori, oppure semplicemente vedere il programma in azione con l’emulatore online di ZX81.
Al completamento del caricamento, dovrebbe apparire una schermata bianca, con in fondo il messaggio “0/0”. A questo punto, per eseguire il programma, occorre premere il tasto “R” (ora dovrebbe essere visibile la scritta “RUN”, seguita da un cursore nero) ed infine il tasto “ENTER”.

Enjoy the SCHAU! 😉

Read in English