Sul numero
16 di CCC (pag.68 e ss) era stato presentato questo giochino basato su un articolo scientifico di "Le Scienze". Ho ricopiato il listato e creato il .prg che allego.
Ho pensato di evitare la pubblicazione del listato stesso, in quanto lungo e per la maggior parte composto da una lista di data; avrebbe occupato inutilmente spazio prezioso sul server, d'altronde in questo caso specifico il listato lo si può leggere o sulle scansioni stesse o tramite il prg stesso. Alla riga 220 il valore presente originariamente era 95325, ma è stato corretto a 95324 per risolvere l'errore nella lettura dei data che puntualmente si manifestava. In teoria la soluzione adottata è empirica, ma così il gioco sembra funzionare correttamente.
E' invece molto interessante la riga 230,
230 PRINT"155fori=1to1500:next:goto240":PRINT"run240":PRINT"{up*5}":END
, la quale dopo il primo RUN immette da sola una nuova riga (la 155), ciò per evitare che il computer rilegga di nuovo la routine che carica la parte in LM. Infatti, dando il LIST dopo il caricamento dei DATA, si nota l'apparizione della nuova riga. Una specie di Basic automodificante insomma.
Comunque il significato di questo è spiegato nell'articolo.
Ringrazio iAN Coog che mi ha aiutato non poco nella verifica del listato e aggiungo che nella riga 230, come lo stesso iAN mi ha fatto notare, la parte della riga seguente (
fori=1to1500:next:), introduce un ciclo che sembra inutile, e si può eliminare tranquillamente.
Ah, battendo RUN 3333 è possibile vedere il numero totale delle generazioni "cellulari" che si sono avvicendate.
In coda il .prg pronto per girare: