Sneekie has no "snake object". The snake, the walls, the hearts and the arrows are just characters living in the screen's memory, and the game reads and writes that memory directly. Steer below and watch it happen: the screen on top and the raw memory beneath it are the same bytes. Every move is a few peeks and pokes — shown live on the right. Eat a heart and a club pops up somewhere; the four arrows patrol on their own.
Each cell is two bytes (character, then a brightness/color attribute), addressed by
offset = (row − 1) × 160 + (col − 1) × 2. This is a 22×15 corner of the real 80×25 screen — same formula, same 160-byte row stride.
The screen — what you see
Inspector
Hover a cell to read its bytes.
The memory — the byte in each cell
Steer
Arrow keys steer too.
Operations (this move)
That's the whole trick behind the 1988 code. See it in the source on the
explained page, or next to the JavaScript port on the migration page.
Zie de bytes bewegen
Sneekie heeft geen "slangobject". De slang, muren, harten en pijlen zijn gewoon tekens in het schermgeheugen, en de game leest en schrijft dat geheugen direct. Stuur hieronder en zie het gebeuren: het scherm bovenaan en het ruwe geheugen eronder zijn dezelfde bytes. Elke zet is een paar peeks en pokes — live rechts getoond. Eet een hart en ergens verschijnt een klaver; de vier pijlen patrouilleren zelfstandig.
Elke cel is twee bytes (teken, daarna helderheid/kleur-attribuut), geadresseerd met
offset = (rij − 1) × 160 + (kolom − 1) × 2. Dit is een hoek van 22×15 uit het echte 80×25-scherm — dezelfde formule, dezelfde 160-byte rijstap.
Het scherm — wat je ziet
Inspector
Beweeg over een cel om de bytes te lezen.
Het geheugen — de byte in elke cel
Sturen
Pijltjestoetsen sturen ook.
Operaties (deze zet)
Dat is de hele truc achter de code uit 1988. Bekijk hem in de bron op de
uitleg-pagina, of naast de JavaScript-port op de migratie-pagina.