JAMGame (Just Another Memory Game) è un piccolo videogioco di memoria, ispirato al classico gioco elettronico Simon, per computer Sinclair ZX81.
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 “:”.
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.
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
- JAMGame
- Pagina itch.io (download / gioca online)
- JAMGame sulla pagina itch.io del contest
- BASIC 10Liner Contest:
- Le mie altre candidature per il BASIC 10Liner contest 2022:
- Bastilude
- Fishie – Keep the sea plastic free!