Szoftver: ZX81 klasszikusok

5 csillagos Cikk értékelése: 5,00 (4 szavazatból)

Néha érdemes kicsit visszatekintenünk, hogy honnan is indultunk. Mondhat bárki bármit, leírhatatlan volt az az élmény, amikor először tölthettem be programot kazettáról a frissen zsákmányolt 1K-s ZX81-embe. Hasonló érzés volt még előtte a számítástechnika szakkörök keretében az első BASIC programok megírása kockás papíron, amelyet előbb-utóbb a gimi egyetlen ABC-80-ába is beütlegelhettünk. Már nem egyszer hallottam azt a kijelentést, hogy "ha először ZX81-et láttam volna, biztos nem érint meg a számítástechnika". Nyilvánvaló sületlenség lenne ezt állítanunk, persze az sem teljesen mindegy, hogy az evolúciós láncba épp hol sikerült bekapcsolódnunk, ugyanakkor meg merem kockáztatni azt a kijelentést, hogy ezek a korai láncszemek sem elhagyhatóak, hogy tudjuk értékelni a kétségtelenül élvezhetőbb lépcsőfokokat.

Az viszont biztos, hogy ezen ZX81 programok legtöbbjének esetében mindenképp szükség volt egy köztes absztarkciós szintre, ami nélkül így utólag valóban kevésbé élvezhetőnek tűnhetnek ezek az opuszok.

Ebben a sorozatban szeretnénk áttekinteni a fontosabb állomásokat és nevezetesebb programokat. Gyanítom tartogathat meglepetést is ez a kis sorozat, de ha mást nem is, hát egy kis nosztalgiázásra remek lesz.


1K Chess (1982 - ARTIC Computing)

ZX81 klasszikusok említésekor elsőnek az 1K Chess ugrik be talán mindenkinek, ami mellett nem mehetünk el szótlanul.

David Horne angol programozó 1982-ben készítette ezt a remek sakk programot az 1K-ás ZX81-re, és ez nem városi legenda. Ő megtette, ami akkoriban lehetetlennek tűnt. A játék tartalmazza a legtöbb sakk szabályt, némi mesterséges intelligenciát (azaz tud lépni magától) és felhasználói felületet. A kód mindösszesen 672 bájt, ami a létező legrövidebb sakk program implementáció a világon.

Grafikát nem tartalmaz, betűk reprezentálják az egyes figurákat a táblán. A program csak fehérrel képes nyitni és kétféleképpen, vagy E3-ra vagy D3-ra. A kazettán ez 2 programnak felel meg az A és B oldalon, melyek kb. 30 másodperc alatt tölthetők be.

A három alábbi szabály kivételével képes értelmezni, ellenőrizni a lépéseket:

  • sáncolás
  • átalakulás (Az átalakulás vagy átváltozás a sakkban a gyalog különleges képessége. Amennyiben a gyalog eléri az ellenfél alapsorát (tehát a világos a 8. sort, a sötét pedig az 1. sort), a játékot tisztként folytatja.)
  • en passant (Egy különleges lépés a sakkban, olyan ütés, amelyre akkor kerülhet sor, ha az egyik fél gyalogja kettőt előrelépve kikerülné az ellenfél gyalogjának átlós ütését. Az egyetlen eset a sakkban, amikor egy gyalog nem az átlósan előtte álló, hanem a mellé lépő figurát ütheti ki.) Állítólag a 2K Timex Sinclair 1000-esre készült verzió már tartalmazza ezeket e lépéskombinációkat.
A lépések megadásakor először a sor számát, majd az oszlop betűjelét kell megadni, pl. 7-E 6-E. A játék általában sakk-matt-tal ér véget, új játékhoz be kell tölteni a kazettáról újra a megfelelő verziót.

Érdekesség, hogy a program dokumentált forrását 1983 februárban a Your Computer című újságban publikálta, mely most az interneten is fellelhető. (Balee)


Reversi (1982 - Sinclair Research)

Szintén óriási kedvenc volt a népszerű táblás logikai játék számítógépes verziója már ZX81-en is, később pedig a Spectrumos verziója is. A játékot két játékos játssza, játszhatunk a gép ellen vagy akár ketten egymás ellen. A játék egy 8*8-as táblán zajlik. Az nyer, akinek a végén több kavicsa marad a táblán.

A szabályokat bizonyára már mindenki ismeri, ezért erre nem térnék ki. Lépni a sakkhoz hasonlóan az oszlop és sor megadásával lehet. Ha játék közben lépés helyett csak ENTER-t nyomkodunk, akkor egy menüt kapunk, amiben választhatunk, hogy befejezzük a partit vagy nehézségi szintet váltunk, esetleg oldalt cserélhetünk.

Kicsit idegesítő, hogy a gép addig nem hajlandó lépni, amíg nem teszünk eleget a felszólításnak, nevezetesen nyomjuk, hogy meg az ENTER-t a folytatáshoz! Enélkül nemigen érdemes a várni a gép lépésére órákig, mert eközben nem a lépés elemzésével foglalkozik. (Balee)


Sea War (19xx - Panda Software)

Egy osztálytársamtól kaptam ezt a játékot. Ez volt az első gépi kódban írt játék, amit valaha láttam. Így utólag talán nem tűnik olyan különleges programnak, mert egy tengeralattjáróval kell mindenféle ellent leküzdeni, lehet torpedókat, rakétákat lőni. de akkor ez lenyűgöző volt a BASIC programokhoz képest. Nagyon szépen folyamatosan scrollozott vízszintesen, gyors volt, egyszóval élvezhető játékélményt nyújtott, még ha manapság ezt nem is olyan egyszerű elképzelni.

Irányítás a kurzor gombokkal történik, a torpedók és rakéták kilövését több billentyűre is rádefiniálták, így mindenki kiválaszthatja, hogy melyik kényelmesebb számára, melyek a Q-W, 1-2, 9-0. Ráadásul egyidőben lőhetjük ki mindketőt. Ugyanakkor arra is ügyeltek, hogy a torpedók és a rakéták újratöltési ideje nem egyforma, a torpedókat nagyobb gyakorisággal lődözhetjük magunk elé. (Balee)


Pac-Man (19xx - Philip Harwood)

Valójában egy teljesen szabványos "Pacman" klón. Feladatunk nyilvánvalóan a sütik, azaz a pontocskák összegyűjtése, miközben inverz 0 alakba bújt szörnyek próbálnak végezni velünk. A csillagocskák elfogyasztása utána a szörnyek egy rövid időre átváltoznak, na ekkor tudjuk őket is bekebelezni. A pályán időnkét egy plusszocska is feltűnik, melyet lenyelve pontszámunkat gyarapíthatjuk. A bal felső sarokban láthatjuk az eddigi legmagasabb pontszámot, mellette az éppen elért pontszámunk éktelenkedik, a jobb oldalon látható O-k darabszámából, pedig életeink számára következtethetünk, hiszen mi magunk bújtunk a szép kövér O álcája mögé.

A játék egyetlen nagy hibája, hogy csak egy labirintust tartalmaz...

Irányítás: A - fel, Z - le, N - balra, R - jobbra. A játékot az ENTER megnyomásával indíthatjuk.


3D Defender (1982 - J.K. Greye Software)

A 3D Defender célja hasonló a Galaxy típusú játékokéhoz: A földi civilizációnkra támadó ellenséges UFO-kat kell megsemmisíteni, azaz becserkészni és lelőni, mindeközben elkerülve a velük való ütközést és a saját űrhajónk lelövését. Ami mégis érdekessé teszi a játékot, az a megvalósítás a ZX81-en: Az űrhajónk ablakából kinézve látjuk a közeledő ellenséges csészealjakat, amik a távoli pontszerű megjelenésből 3 dimenzióban mozogva egyre nagyobbak lesznek és egyre több részlet lesz kivehető rajtuk. Ez nem tűnik nagy dolognak, de aki annak idején játszott a ZX81-en tipikus "a képernyőn az O betűt mozgatva kerüljük el az ütközést az I betűkkel" jellegű autóversenyző, síelő stb. programokkal, az nagyra értékeli ezt.

Űrhajónkat a vezérlő billentyűk botkormányszerű kiosztásával irányíthatjuk: A Q...T félsor balra le, az Y...P jobbra le, az A...G balra fel, a H...L jobbra fel irányít, a legfelső és legalsó sor billentyűi indítják a tüzelést. Hasznos, hogy több billentyűvel is elérhetjük ugyanazt a funkciót, viszont nehezen megszokható, hogy nem egyenesen le-fel-jobbra-balra haladhatunk (ilyenkor két-két irány billentyűit kell egyszerre lenyomni). A mozgás reakcióideje és a tüzelés szerencsére elég gyors. Az ellenséges űrhajók felrobbanása látványos, ugyancsak jól megoldott (persze a ZX81 karaktergrafika keretei között) a támadó plazmafelhőjének megjelenése - természetesen ez is 3D-ben, így van esély kikerülni. Időnként még meteoreső is látható.

A navigációt az ellenség irányát jelző radar és egy magasságmérő segíti (a földnek ütközéstől óvakodni kell). A védekezést szolgáló pajzsunk minden plazmatámadásnál veszít erejéből. A lelőtt űrhajókért pont jár, az elszalasztott ellenségért viszont pontot lehet veszíteni - így a menekülés nem jó taktika. A játék finomsága, hogy az elszalasztott ellenség a Földről újra felszáll, így revansot lehet venni. A teljes győzelemhez tartozó eredmény képernyőt soha nem láttam (talán nincs is :), de a legyőzésünket hírül adó képernyőn legalább egy jól megrajzolt gonosz idegen jelenik meg.

A játék közeli rokona a J.K. Greye Software klasszikus 3D Monster Maze játékának, azt is és ezt is Malcolm Evans jegyzi. (stp)


Planet of Death (1981 - ARTIC Computing)

Több apropója is van, hogy ebben a részben szót ejtek erről a játékról. Az első, hogy ez volt az első gyári programom életemben, melyet a ZX81-hez kaptam. Már a címe is izgi, a "Bolygó neve, halál!" :) A kívülről rendkívül tetszetős borító valójában egy kevésbé, helyesebben egyáltalán nem látványos szöveges kalandjátékot rejt, bár ZX81 esetében talán ez minden darabról elmondható, ez alól talán némi kivételt jelenthetnek a nagyfelbontású játékok, de ezekről majd egyszer máskor értekezem.

A másik ok amiért érdemes foglalkozni vele, hogy ez volt az első kalandjátékok egyike, ami megjelent a ZX81-re még a megjelenése évében. Amúgy a sztori is felkeltheti az érdeklődünket iránta. Az alaptétel, hogy egy idegen bolygóról kellene elmenekülnünk, bár homály fedi, hogy miként is kerültünk oda. De végül is mindegy, kutassuk csak fel az űrhajót, meg egy számítógépet, miközben a zöld emberkékkel is érdemes barátkozni.

A játék gépi kódban íródott és egy egyszerű IGE-FŐNÉV alapú parszerrel bír. Nagyjából húsz helyszínt és tárgyat tartalmaz és elég sok, több mint 1000 szót ismer. Mindez kb. 12 Kbájtban elfér. Igazából egy sorozat első darabja is, ez ez Adventure A. Eleinte az A, B, C darabokat reklámozták, de idővel bővült a sor.

  • Adventure A: Planet of Death (1981)
  • Adventure B: Inca Curse (1981)
  • Adventure C: Ship of Doom (1982)
  • Adventure D: Espionage Island (1982)
  • Adventure E: The Golden Apple (1983)
  • Adventure F: The Eye of Bain (1984)
  • Adventure G: Ground Zero (1984)
Az Adventure B egy Inka templomban játszódik, már sokkal több, ötven helyszínen zajlik az élet, 25 tárggyal kell mókolni, ebben a kincsek nincsenek benne, ráadásul ahogy a többi epizódban is, ezeket a megfelelő helyen és időben kell felhasználni.

Sorban a harmadik a legnagyobb ezek közül a maga 35 helyszínével és 40 tárgyával. Itt a feladat, hogy az űrhajónkat kiszabadítsuk egy gravitron sugárnyaláb fogságából és elhúzzuk a csíkot. Ehhez egy gombot kell megnyomnunk valahol és nyilván visszatalálnuk a hajónkhoz. Ha lehet hinni a szóbeszédnek egy rejtett ajtón átjuthatunk egy másik szintre.

Egy szó mint száz, egy próbát azért megérnek... (Balee)


Breakout (1982 - CDS Micro Systems)

A számítógépek elterjedése óta alapjátéknak számít az úgynevezett "falbontó" játék. Minden géptípusra megírták már tucatszor, manapság egy jobb WC-papír adagolónak is szerves részét képezi valamelyik változata. Annak idején persze kihívásnak számíthatott a szűkös erőforrásokkal rendelkező, korabeli hardverekre egy élvezhető verzió elkészítése. Ezt a kihívást akceptálta a CDS Micro Systems nevű cég(?). (Annak idején minden Jóskapista nevű programozó hangzatos nevet választott magának, és egy jó névválasztás félig már garantálta a sikert (lásd Microsoft (pfuj de gonosz vagyok :))). Bár ez eddigi életem első általam látott, ZX81-es gépre készült játéka, azt mondanám, inkább ne tette volna.

A játék alapkoncepciója, hogy a képernyő felső részében elhelyezkedő téglákat az utolsó darabig eltüntessük. Ehhez rendelkezésünkre áll egy, a képernyő alsó részben balra-jobbra mozgatható ütő, és a természet mesés rendjének következtében a képernyő bármely részében fellelhető labda. A labda ha téglát ér, az eltűnik és örülünk. Ha falat vagy ütőt ér, akkor visszapattan (szintén örülünk), ha alul elhagyja a játékteret akkor... Na, mi van akkor? Nos, senki? Ámátőrök... Ilyen esetben elveszítünk egy életet (és kevésbé örülünk).

Betöltés után kiválaszthatjuk a nehézségi szintet 1-9-ig, ami a labda sebességét fogja befolyásolni. Az ütő irányítása az 1 és 0 billentyűkkel történik. Kezdéskor 9 életünk van és bazi sok téglánk. De tényleg. Egy nagyobb családi házat fel lehetne húzni belőle és még a kerítésre is maradna. Minden tégla belsejében egy csillag található. Hogy minek? Csak. Nyilván a programozónak volt raktáron egy marék megmaradt hópehely karaktere a cég korábbi játékából, a White Snowing Simulator - közismertebb nevén WSS-ből, és gondolta ide jó lesz. A játékban minden szögletes. A labda is. Nem tudom, mekkora programozói bravúr lett volna egy O betűt mozgatni egy négyzet helyett, de legalább tökéletesen illik a labdapattanás matematikai modelljéhez. Olyan ugyanis nincs. A labda mindig mindenhonnan 45 fokban pattan, és ez egy kissé kiszámíthatóvá teszi a játékot. Apró ötlet (de nem túl szerencsés), hogy életeink számát a labda belsejében láthatjuk. A labda és az ütő scrollozása karakter szintű, de gondolom ez hardveres limitáció lehet a ZX81 részéről. A küzdelem pontokért megy (minden tégla 1 pontot ér, megszámoltam), de ez csak a játék végén derül ki, mert játék közben nem kapunk információt arról, hogy megdöntöttük-e már a szomszéd Pistike rekordját. Van "High score" is. Ezt a program egy NAND memória modulban tárolja a ZX81 rejtett áramkörei között az idők végezetéig.

Lehet, hogy túl magas elvárásaim voltak a programmal vagy a ZX81-el kapcsolatban, de azt hiszem, ha ezzel a játékkal találkoztam volna először, mikor még ismerkedtem a számítógépek világával, akkor inkább kőművesnek vagy pléhbojnyuszinak álltam volna annak idején, esetleg papnak (de semmiképp nem Gyurinak). Nem ismerem a ZX81 képességeit, de tekintettel arra, hogy a játék 16K-s gépre készült, kis törődéssel szerintem sokkal többet ki lehetett volna hozni belőle (többféle tégla, lehulló extrák, látható pontozás, stb.). (Kiki)


Publikálás a portálon: 2022-04-24 21:05:13