Secondo la pagina di Wikipedia per Pac-Man , il punteggio più alto possibile è 3333360 punti. Si chiama “gioco perfetto” ed è stato già realizzato da 3 persone diverse.
Quello che voglio sapere è: PERCHÉ sono esattamente 3333360 punti? Deve essere una limitazione tecnica, ma questo numero non ha senso secondo me.
So che il gioco ha 255 livelli. 255 è 11111111
in binario e al livello 256 (che sembra esistere misticamente) porta la cifra a 8 bit a un overflow, che termina con un crash del gioco.
Ma, 3333360 solo sembra così casuale.
Commenti
Risposta
Il Museo Pacman ha un articolo su come ottenere 3.333.360 Punti. E qui “sa video di un ragazzo che fa il livello 255 e 256 , con informazioni importanti sul livello 256.
Livello 1 fino al 255
Mangiare punti : ci sono 240 punti regolari per livello, del valore di 10 punti ciascuno, con un totale di 2400 punti per livello . Inoltre, mangiando i quattro punti energizzanti, del valore di 50 punti ciascuno, ottieni altri 200 punti.
⇒ 255 × 2600 = 663000
Mangiare “frutta” : cè un oggetto commestibile per livello che appare solo per un determinato quantità di tempo, due volte per livello. A seconda del tipo di frutta, che a sua volta dipende dal livello a cui stai giocando, ottieni un diverso numero di punti. In totale, ottieni
⇒ 2 × (100 + 300 + 2 × 500 + 2 × 700 + 2 × 1000 + 2 × 2000 + 2 × 3000 + 243 × 5000) = 2459600
Mangiare fantasmi : mangiare un fantasma nello stesso periodo di stimolazione ti dà 200 punti, e il doppio per ogni fantasma in più che mangi (400, 800 e 1600 rispettivamente dal 2 ° al 4 ° fantasma).Puoi farlo 4 volte per livello, ma solo fino al livello 16 e al livello 18, poiché i fantasmi non lampeggiano nei livelli 17 e 19+ ⇒ 4 × 3000 × 17 = 204000
Aggiunta di questi numeri restituisce 3326600 , solo 6760 punti a corto di perfetto.
Livello 256
Questo numero dispari può essere ottenuto nel livello 256 non funzionante.
Punti visibili : come puoi vedere, manca poco più della metà dello schermo, il che significa che puoi ottenere solo 112 punti normali e 2 punti energizzanti.
⇒ 1220
Singolo frutto : Scadenza al glitc hed screen, puoi ottenere la chiave (il “frutto”) una sola volta
⇒ 5000
Punti glitch : ci sono 9 punti normali nella regione glitch che riappaiono ogni volta che muori. Con 5 vite extra, puoi ottenerle 6 volte
⇒ 6 × 90 = 540
Grand Totale
(663000 + 1220 + 540 (punti)) + (2459600 + 5000 (frutto)) + (204000 (fantasmi)) = 3333360
Commenti
- Ho iniziato a digitare la risposta, pensando che i numeri si sarebbero sommati bene e non lhanno fatto ‘ t. Ci è voluto un po di tempo per scoprire la stranezza rappresentata dai punti nel livello 256.
- 256 è un numero abbastanza importante.
- @Howdy_McGee Soprattutto su un processore a 8 bit …
- Il problema tecnico del 256 ° livello è apposta o è qualcosa che è un vero problema tecnico?
- @ RPi_Awesomeness ‘ è un vero problema tecnico, che ha a che fare con i numeri che si spostano in binario. 256 è 100000000 in binario, ma il numero ‘ t supporta più di 8 cifre binarie, quindi tagliando l1, rendendolo 00000000, che è 0. Per alcuni problemi non proprio correlati , questo causa il glitch, piuttosto che riportarti di nuovo al livello 0.
Risposta
Il punteggio è limitato perché si verifica un problema tecnico al livello 256 che sovrascrive metà dello schermo con spazzatura. Il gioco non consentirà a un giocatore di avanzare da una scacchiera allaltra senza mangiare 244 punti ed energizzanti, ma il glitch sovrascrive molti dei punti; questo lascerà il giocatore incapace di mangiare 244 punti ed energizzanti, e quindi incapace di lasciare Livello. Nel caso ti stia chiedendo perché si verifica il problema tecnico, il codice macchina in Pac-Man per disegnare i frutti è simile al codice C:
unsigned char temp1, temp2; unsigned char *ptr; temp1 = level; if (temp1 > 15) temp1 = 15; temp2 = temp1; if (temp2 > 7) temp2 = 7; ptr = LOWER_RIGHT_ADDRESS; do { *ptr++ = shapes[temp1--]; } while(--temp);
Notare che a differenza di molte macchine, Pac Man utilizza un layout di memoria dello schermo piuttosto curioso che posiziona byte consecutivi orizzontalmente nella parte superiore e inferiore dello schermo e verticalmente al centro. Questo è stato molto probabilmente fatto per fare in modo che quando si disegna la parte principale dello schermo, gli indirizzi di memoria venissero incrementati di una potenza di due ogni otto linee di scansione (si noti che la “parte superiore” del monitor si trova sul lato destro del immagine). In sostanza, i circuiti hanno convertito gli indici di riga / colonna in indirizzi di memoria con una mappatura simile a:
//Using column values in the range 30 to 1, wrapping after 63... address = (column & 32) ? (row << 5) | (column & 31) : ((28 | (column & 3)) << 5) | row);
ma implementata nei circuiti piuttosto che nel codice. Ciò consentiva di calcolare gli indirizzi dello schermo utilizzando una coppia di contatori e un circuito per selezionare una delle due permutazioni di quei bit dei contatori. Lhardware richiesto per avere un indirizzo di memoria aumentato di 36 per ogni riga anziché di 32 sarebbe stato più complicato da confronto.
Commenti
- @Kevin: Il punteggio dichiarato è il massimo possibile in Pac Man perché il bug mostrato sopra (nel codice C che è funzionalmente simile al codice Z80 nel gioco stesso) scrive spazzatura inutile su gran parte dello schermo, sovrascrivendo i punti che il giocatore dovrebbe mangiare. Laltra risposta indica cosa succede visibilmente per limitare il punteggio, ma quanto sopra indica (per tecnicamente lettori) perché accade (e suggerisce che la limitazione a 256 livelli probabilmente non era ‘ intenzionale ma si verifica invece a causa di una svista).
- Entrambe le risposte completano la domanda estremamente bene.
100000000
in binario) viene archiviato in una memoria che è stata allocata solo per contenere 8 bit. Il primo viene quindi scritto nella memoria assegnata a qualcosaltro, il che essenzialmente corrompe lintero gioco.