Conform paginii Wikipedia pentru Pac-Man , cel mai mare scor posibil este 3333360 puncte. Se numește un joc perfect și a fost realizat deja de 3 persoane diferite.
Ce vreau să știu este: DE CE este exact 3333360 puncte? Trebuie să fie o limitare tehnică, dar acest număr nu are sens în opinia mea.
Știu că jocul are 255 de niveluri. 255 este 11111111
în binar și nivelul 256 (care pare să existe în mod mistic) aduce cifra de 8 biți la o revărsare, care se termină printr-o blocare a jocului.
Dar, 3333360 doar pare atât de aleatoriu.
Comentarii
Răspuns
Muzeul Pacman conține un articol despre obținerea a 3.333.360 Puncte. Și aici „un videoclip al unui tip care face nivelurile 255 și 256 , cu informații importante referitoare la nivelul 256.
Nivelul 1 până la 255
Puncte de mâncare : Există 240 de puncte obișnuite pe nivel, în valoare de 10 puncte fiecare, compensând 2400 de puncte pe nivel . În plus, consumul celor patru puncte energizante, în valoare de 50 de puncte fiecare, vă oferă încă 200 de puncte.
⇒ 255 × 2600 = 663000
Consumul de „fructe” : Există un obiect comestibil pe nivel care apare doar pentru un anumit cantitate de timp, de două ori pe nivel. În funcție de tipul de fructe, care, la rândul său, depinde de nivelul pe care îl jucați, obțineți o cantitate diferită de puncte. În total, primiți
⇒ 2 × (100 + 300 + 2 × 500 + 2 × 700 + 2 × 1000 + 2 × 2000 + 2 × 3000 + 243 × 5000) = 2459600
Eating Ghosts : Consumul unei fantome în aceeași perioadă de energizare vă oferă 200 de puncte și dublu pentru fiecare fantomă suplimentară pe care o mănânci (400, 800 și 1600 pentru fantomele 2-4, respectiv).Puteți face acest lucru de 4 ori pe nivel, dar numai până la nivelul 16 și la nivelul 18, deoarece fantomele nu clipesc la nivelul 17 și 19+ ⇒ 4 × 3000 × 17 = 204000
Adăugarea acestora numerele produc 3326600 , doar 6760 punctele sunt perfecte.
Nivelul 256
Acest număr impar poate fi obținut la nivelul 256 defect.
Puncte vizibile : După cum puteți vedea, lipsește puțin mai mult de jumătate din ecran, ceea ce înseamnă că puteți obține doar 112 puncte normale și 2 puncte energizante.
⇒ 1220
Fruct unic [div id = „b2255038a5”>
: scadent la glitc ecran ecran, puteți obține cheia („fructul”) o singură dată
⇒ 5000
Puncte cu probleme : Există 9 puncte normale în regiunea cu probleme care reapar de fiecare dată când mori. La 5 vieți suplimentare, le puteți obține de 6 ori
⇒ 6 × 90 = 540
Grand Total
(663000 + 1220 + 540 (puncte)) + (2459600 + 5000 (fruct)) + (204000 (fantome)) = 3333360
Comentarii
- Am început să tastez răspunsul, gândindu-mă că numerele se vor aduna bine și nu au reușit ‘ t. Am luat destul timp să aflu despre ciudățenia care reprezintă punctele de la nivelul 256.
- 256 este un număr destul de important.
- @Howdy_McGee Mai ales pe un procesor pe 8 biți …
- Problema nivelului 256 este intenționată – sau este ceva care este o problemă reală?
- @ RPi_Awesomeness ‘ este o problemă reală, care are de-a face cu numerele care se rostogolesc în binar. 256 este 100000000 în binar, dar numărul nu acceptă ‘ t mai mult de 8 cifre binare, decupând astfel 1, ceea ce îl face 00000000, care este 0. Pentru unele probleme care nu au legătură cu adevărat , acest lucru provoacă probleme, mai degrabă decât să te plaseze din nou la nivelul 0.
Răspuns
Scorul este limitat deoarece apare o problemă la nivelul 256 care suprascrie jumătate din ecran cu gunoi. Jocul câștigat nu va lăsa un jucător să avanseze de pe o tablă pe următoarea fără să mănânce 244 de puncte și energizante, dar eroarea suprascrie multe dintre puncte; acest lucru îl va lăsa pe jucător să nu poată mânca 244 de puncte și energizante și, astfel, să nu poată părăsi nivel. În cazul în care vă întrebați de ce apare eroarea, codul mașinii din Pac-Man pentru a desena fructele este similar cu codul 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);
Rețineți că, spre deosebire de multe mașini, Pac Man folosește un aspect destul de curios de memorie a ecranului, care plasează octeți consecutivi orizontal în partea superioară și inferioară a ecranului și vertical în mijloc. Acest lucru s-a făcut cel mai probabil pentru a face astfel încât atunci când se desenează porțiunea principală a ecranului, adresele de memorie să fie mărite cu o putere de două la fiecare opt linii de scanare (rețineți că „partea de sus” a monitorului se află în partea dreaptă a imagine). În esență, circuitele au convertit indicii de rând / coloană la adrese de memorie cu o mapare similară cu:
//Using column values in the range 30 to 1, wrapping after 63... address = (column & 32) ? (row << 5) | (column & 31) : ((28 | (column & 3)) << 5) | row);
, dar implementată în circuit, mai degrabă decât în cod. Acest lucru a permis ca adresele de ecran să fie calculate prin utilizarea unei perechi de contoare și a unui circuit pentru a selecta una din cele două permutări ale acelor „biți” ai contoarelor. comparație.
Comentarii
- @Kevin: Scorul declarat este maximul posibil în Pac Man deoarece bug-ul afișat mai sus (în codul C care este funcțional similar codului Z80 din joc) scrie junk inutile pe o mare parte a ecranului, suprascriind punctele pe care jucătorul ar trebui să le mănânce. Celălalt răspuns afirmă ce se întâmplă vizibil pentru a limita scorul, dar cele de mai sus indică (pentru cititori) de ce se întâmplă (și sugerează că limitarea la 256 de nivele probabil că nu a fost ‘ t deliberată, ci se întâmplă din cauza unei supravegheri).
- Ambele răspunsuri completează întrebarea extrem de bine.
100000000
în binar) este stocat în memorie care a fost alocată doar pentru a conține 8 biți. Primul este, prin urmare, scris în memorie care este atribuită altcuiva, ceea ce în mod esențial corupe întregul joc.