Autore Topic: Vita  (Letto 2418 volte)

Cbm

  • Utente
  • **
  • Post: 423
  • Gioco Preferito: Wonderboy
Vita
« il: 25 Agosto 2006, 01:04:39 »
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,
Codice: [Seleziona]
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:
« Ultima modifica: 21 Gennaio 2015, 22:32:21 da eregil »
C= - Dal 1985! Lunga vita e prosperità.

iAN CooG

  • Utente
  • **
  • Post: 1774
    • http://iancoog.altervista.org
  • Gioco Preferito: Turbo Assembler, ActionReplay Monitor, DiskDemon
Vita
« Risposta #1 il: 25 Agosto 2006, 05:18:50 »
 
Citazione da: "Cbm"
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.
 
Trovato l'errore di battitura, per correggere cambiare le 2 righe:
Codice: [Seleziona]
220 IFuu<>95325THENPRINT"errore nei data":END

1780 DATA189,2,7,201,81,208,1,200
C'era un 6 al posto del 7. Questo faceva si' che venisse letta una locazione sbagliata mentre elaborava la parte piu' bassa dello schermo.
Per rendersene conto disegnare questa figura, il cosiddetto "walker"
Codice: [Seleziona]
***
  *
 *
usando lo Shift-Q al posto degli asterischi, e poi dare sys49152
Con la versione bacata, appena raggiunge la parte inferiore dello schermo si autodistruggera', mentre con la versione corretta continuera' a vagare all'infinito.

Lascio a CBM il compito di riuppare eventualmente il prg corretto. :)
-=[]=--- iAN CooG/HVSC^C64Intros ---=[]=-
- http://hvsc.c64.org - http://intros.c64.org -

iAN CooG

  • Utente
  • **
  • Post: 1774
    • http://iancoog.altervista.org
  • Gioco Preferito: Turbo Assembler, ActionReplay Monitor, DiskDemon
Vita
« Risposta #2 il: 25 Agosto 2006, 10:40:54 »
Aggiungo il sorgente disassemblato e leggermente ridotto, con l'aggiunta di una uscita pulita premendo C= ; Runstop fa sempre da freeze screen.
« Ultima modifica: 21 Gennaio 2015, 22:33:39 da eregil »
-=[]=--- iAN CooG/HVSC^C64Intros ---=[]=-
- http://hvsc.c64.org - http://intros.c64.org -

Cbm

  • Utente
  • **
  • Post: 423
  • Gioco Preferito: Wonderboy
Vita
« Risposta #3 il: 25 Agosto 2006, 13:38:34 »
Citazione da: "iAN CooG/HF"
Lascio a CBM il compito di riuppare eventualmente il prg corretto. :)
Fatto!  :)  
C= - Dal 1985! Lunga vita e prosperità.