Csupa Játék
ZX Spectrumra

Bevezetés
Az itt közzétett programokat fiatalok készítették: középiskolás diákok. Életkoruk, valamint a magyarországi mikroszámítástechnika helyzete következtében valószínűleg csak nemrég ismerkedtek meg ennek a tudománynak (és hobbynak) a szépségeivel, hasznosságával, szakmai alapismereteivel. Többségük otthonában - minden bizonnyal - már ott van egy saját családi tulajdonban levő vagy egy kölcsönkért számítógép. Az első fázisban általában azok a - sokszor valóban sziporkázóan szellemes - játékprogramok játsszák a főszerepet, amelyek bőségesen kaphatók a nyugati áruházakban, és sokszor az "antiszámítógépesek"-et is képesek "megfertőzni". Ez a láz általában - és szerencsére - nem tart soká, mert felmerül a saját elképzelések megvalósításának igénye. Az újdonság varázsában természetes, hogy elsősorban a játékprogramok jönnek számításba. Ez azonban már minőségileg más tevékenységet és gondolatmenetet kíván. Szabad utat kap a fantázia, megkezdődik a programozástechnikai ismeretek gyakorlati elsajátítása. Új generáció ismerkedik a legújabb technikával.
A fiataloknak még nem kell tudniuk, hogy a számítógép bár kitűnően szórakoztat, de alapvetően nem erre való, nem ezért találták fel és fejlesztették ki őket. A számítógép és a számítástechnika alkalmazása - megfelelő előkészületek, gépkiválasztás, hatékony használat mellett - szükségszerű gazdasági, tehát közvetett vagy közvetlen hasznot termelő tevékenység. Mire ezek a fiatalok dolgozni kezdenek, a számítástechnikához vezető úton az első lépéseket megtették, a számítástechnika alapfogalmait megszokták, és otthonosan mozognak köztük.
Most tehát játékprogramok listáit tesszük közzé. Az ötletek persze többé-kevésbé ismerősek is lehetnek. Nem vizsgáltuk, nem is vizsgálhattuk a játékötletek és megvalósításuk "eredetiségét" - de mindegyik program némiképp magán viseli már alkotójának egyéniségét is.
A szerzők túljutottak a programtervezés és a kódolás sokszor unalmas, fáradságos, igen pontos munkát követelő kezdő lépésein, tesztelték, esetleg módosították, javították programjaikat. Rákényszerültek az ötletek és a fegyelmezett munka összeegyeztetésére, és a problémákkal több-kevesebb sikerrel meg is birkóztak. További eredményes programozói munkát kívánunk nekik és mind azoknak, akik talán még nem jutottak el az önálló programkészítéshez, de kedvet, ambíciót éreznek hozzá.
A most induló, - és várhatóan folytatódó sorozat első kötete - talán kicsit önkényes választással - a ZX Spectrum személyi számítógépre írt programokat tartalmazza. Ezt a választást a gép viszonylagos elterjedtsége, az egyszerű programozhatóság és a sokféle kedvező tulajdonság (hanghatás, színkezelés stb.) indokolta. A későbbiekben remélhetőleg más számítógéptípusokra írt programok közlésére is lehetőség nyílik.
Lássuk tehát a programokat, amelyeket ki-ki begépelhet a saját gépébe! Közöljük a program alkotójának nevét, a program rövid tartalmi leírását, a teljes listát és alkalmanként saját szubjektív észrevételeinket. Ez utóbbiakat inkább tanácsnak, mintsem kritikának szánjuk.
Azt javasoljuk, hogy ne sorról sorra másolják be a programot, hanem először "olvassák át" és az elágazásokat követve, egy-egy szubrutin beírásával, kipróbálásával haladjanak előre. Így az egyes módosításokat is könnyebb elvégezni. Még egy szakmai megjegyzés: a Spectrum gépek jelenleg 16 K-s vagy 48 K-s memóriával kerülnek forgalomba. Mi nem tettünk különbséget a két gépi változat között, de a némileg eltérő memóriafelépítés miatt a fixcímek néha különbözők. Ez az egyes programok esetén címváltozást okozhat elsősorban a programozható karakterek, az UDG-k elhelyezésénél. Csupán az első két program készült 16 K-s gépen. A listák végén a grafikus karaktereket ábécésorrendben többnyire feltüntettük.

Kocka
Készítette: Kovács Zoltán
A program négy színt kér a játékostól. Ebből a négy színből elkészít, és a képernyőn megjelenít egy 4*4-es négyzetet, amelynek elemei a megadott színekből alkotott négyzetek. Egy villogó nyíllal lehet pozícionálni az x és z billentyűkkel arra a sorra vagy oszlopra, amelyen egyet - ciklikusan - forgatni akarunk. Ilyenkor az utolsó kis négyzet az első helyére lép, a többi pedig értelemszerűen arrébb csúszik. A teljes 4*4-es négyzetet - kicsit a bűvös kockához hasonlóan - addig kell így "forgatni", amíg minden vízszintes sorban egyforma színű négyzet lesz. A program a forgatások számát számolja, a helyes megoldáskor zenél, majd újra indítható. A sorok (oszlopok) az N billentyű hatására fordulnak.
LOGICE
Készítette: Kovács Zoltán
Ez a program a "Négy a nyerő" néven is ismert játék számítógépes változata. Mindig a játékos játszik a gép ellen. A játékmező hét oszlopból áll, és csak az oszlopok alsó pozíciójába lehet lépni. Ilyenkor az oszlop eggyel feljebb tolódik. Az egyes lépésekhez tehát a megfelelő számot kell beütni. Az a cél, hogy akár vízszintesen, akár függőlegesen, akár átlósan négy egyforma színű figura kerüljön egymás mellé. Ha sikerül, a gép értékel.

Bogarak
Készítették: Galambos Attila, Rusznyák Gábor, Király László
A játék célja, hogy a képernyőre rajzolt hálózat egy véletlen helyén megjelenő villogó csillagot "megegye", ill. elérje a játékos. A pályán eközben négy bogár mozog, amelyek követik a játékos mozgásának irányát, és megkísérlik utolérni. Ha a bogarak bekerítési manővere sikerül, vége a játéknak. Ha ellenben nem, a játékos eléri a villogó csillagot, a program jutalmul zenél és 10 pontot ad. Ilyenkor a cél-csillag, a bogarak, valamint a játékos figurájának a helye véletlenszerűen megváltozik. Egy "élet" van: az elért találatok számát végeredményként kezeli a gép.
Az irányítógombok:
M - jobbra , N - balra , A - felfelé , Z - lefelé
Golf
Készítette: Tikk Domonkos
A program a golfjáték egyszerűsített szimulációja. 18 lyukba kell a golyót beütni. Az ütés erősségével lehet szabályozni a golyók meglökését (1-20). Három akadály nehezíti a pályát: egy árok, egy erdő és egy tó. Ha a golyó a tóba esik, elölről kell kezdeni a játékot. Ha csak (megfelelő mértékben) megközelíti a golyó a lyukat, egy kinagyított térképszerű ábrán lehet pontosítani az ütést.
Bombázó
Készítette: Farkas Judit
Egy repülőgép halad balról jobbra a képernyőn, egy képzeletbeli város fölött. Előre megadható (bár ezen belül véletlenszerűen változik) a házak magassága és távolsága. A repülőgép, miután a kép jobb szélén elhagyta a várost, a bal oldalon egy karakterrel mélyebben újra megjelenik. A pilóta a B gomb segítségével szórhatja a bombákat. Ha a repülőgép háznak ütközik, vége a játéknak. Az a cél, hogy minél tovább, minél mélyebbre jussunk el a repülővel. Vízszintes irányban az M billentyű segítségével rakétákat is ki lehet lőni, de a kezdeti öt rakéta, ha nem takarékoskodunk, elfogy.

Piros házak
Készítette: Radácsy Tivadar
Piros háztetők végtelen sorát kell kerülgetni. A játékos figurája normál állapotban mindig balra "húz", tetszőleges billentyű lenyomásával viszont jobbra mozgatható. A vízszintes táblák a játékost felfelé mozgatják, és ha eléri a képernyő tetejét, a program véget ér, és közli az elért pontszámot, valamint az addig legmagasabb rekordot.

Autó
Készítette: Radácsy Tivadar
Az autót egy kezdeti egyenes útszakasz után véletlenszerű cikcakkokban haladó, úton kell vezetni úgy, hogy az időnként felbukkanó csatornatetőkre nem szabad ráhajtani. Q betűvel (balra), P betűvel (jobbra) lehet az autót irányítani. Minél tovább jutunk, annál sikeresebb a játék.

Kráter
Készítette: Radácsy Tivadar
Az irányítható űrhajóval kell leszállni a Hold krátereibe. Bármelyik kráterbe le lehet szállni, de vigyázni kell, nehogy a falnak ütközzön az űrhajó bármelyik része. Az üzemanyaggal is gazdálkodni kell, mert ha elfogy, akkor az űrhajó kormányozhatatlanná válik és lezuhan. A kapott pontszám a nehézségi foktól függő szorzószámtól és a megtakarított üzemanyagtól függően változik. Az űrhajó irányítása:
0-balra , P - jobbra , Q - felfelé , A- lefelé

Táltos a kaktuszok között
Készítette: Radácsy Tivadar
A képernyőn egy sivatagi táj jelenik meg, kétoldalt egy-egy cowboy. A kaktuszok és a ló felfogják a lövéseket. A játéknak ebben a változatban soha nincs vége. A pontszám úgy alakul, hogy ha a játékos lövi ki az ellenfelet, akkor eggyel nő, ha a játékost találja el a másik cowboy, akkor eggyel csökken a pontszám. Irányítás:
Q -felfelé, A- lefelé, P - lövés.
A program irányítása az UDG-k (programozott karakterek) miatt RUN 500 utasítással történik.

Síelő
Készítette: Radácsy Tivadar
Fák és zászlók között haladó síversenyzőt lát a játékos, akit a felfelé haladó akadályok között a nyílgombokkal lehet jobbra, ill. balra irányítani. Fának ütközve a figura "tolókocsis"-ra változik, és egy figyelmeztető kiírás jelenik meg a képernyőn.

Labirintus
Készítette: Radácsy Tivadar
A szokásos labirintusfeladat saját készítésű változata. Betöltés után meg lehet adni a nehézségi szintet (1-10), a program ennek megfelelően egy labirintustérképet generál. Ez bármikor, de összesen csak háromszor a T betű lenyomásával hívható. A képernyőn az égtájaknak megfeleltetett számok mutatják az irányítást. A program a helyes út megtalálásakor zenés gratuláció után megkérdezi, hogy kíván-e a játékos még egyszer játszani, és ha igen, újraindul.

Meteor
Készítette: Dárday Zoltán
Az a feladat, hogy a képernyőn felülről érkező csillagok között manőverezzünk úgy, hogy a csillagoknak nem szabad nekimenni. Az űrhajót a kurzorgombokkal lehet irányítani.

Gusztáv sportol
Készítette: Dárday Zoltán
A program három, egymás után következő játékot tartalmaz.
- AKADÁLYFUTÓ: Gusztávot a kurzorbillentyűkkel irányíthatjuk a felfelé haladó pálya nyílásain a "kapu" között. Három élet van;
- KAPUS: Gusztávnak 3*10 labdát kell kivédenie;
- HEGYMÁSZÓ: a hegyvidék vonulatát a 6 (lefelé) és a 7 (felfelé) billentyűkkel kell nyomon követni: itt is három élet van.
Gusztáv motorozik
Készítette: Dárday Zoltán
Úgy kell Gusztávval a kijelölt úton haladni, hogy az útszegélynek és az akadályoknak (bokor, kő, tábla) nem szabad nekimenni. Az irányítás a 6 (lefelé), ill. a 7 (felfelé) gombokkal történik. A kanna és a kapu felvételéért jutalompont jár.
Agytorna és intelligenciateszt
Készítette: Dárday Zoltán
A program két játékot tartalmaz:
A közismert "Master Mind" játék számítógépes változata. A gép öt egyjegyű számot rejt el, amelyek közül kétszer szerepelhet bármelyik számjegy (többször nem). Előre megadott számú próbálkozás során kell az öt számjegyet kitalálni. A program külön jelzi az eltalált helyű és értékű számjegyek darabszámát.
Agytorna: Egy háromszög alakú rácsos táblán egy hely üres (0). A többi 1-esekkel van feltöltve. Addig lehet lépni bármelyik 1-essel, amíg van átléphető szomszédos 1-es. Az a cél, hogy minél kevesebb 1-es maradjon a táblán. A lépéseket a koordináta-számpárokkal a "HONNAN-HOVÁ" kérdésre válaszolva lehet megadni. Ha már nincs több lépés, 0-val kell kilépni. Eztán derül ki az agytorna eredménye.

Vadászat
Készítette: Mészáros Péter
A képernyő felső részén egy madár mozog, amit el kell találni. A vadász minden találatáért 12 pont jár. Vigyázni kell azonban, mert a madár is tud lőni. A játékos a képernyő alsó szélén mozogva manőverezhet.

Challenger
Készítette: Mészáros Péter
Egy UFO-t kell irányítani a rakéták között az űrbázishoz, lehetőleg ütközések nélkül. 200 pontonként két új UFO-t ad a program. A 0-val előre, a 6-tal visszafelé lehet az űrhajót mozgatni. A játék tetszőleges billentyű megnyomásakor elindul.

Utószó
A tanulságokat összegyűjtve, próbáljuk meg összefoglalni azokat a tanácsokat, amelyek leginkább segíthetik az olvasó-programozókat!

  1. A program bőven el legyen látva REM-ekkel!
  2. Az utasítások sorszámozása lehetőleg 10-esével történjék!
  3. Egy sorba csak az összetartozó utasítások kerüljenek!
  4. Ismétlődő és/vagy logikailag elkülöníthető programrészek szubrutinba valók!
  5. Legyenek olyan változónevek, amelyek utalnak a logikai funkcióra!
  6. Az összetett aritmetikai kifejezések legyenek zárójelezve!
  7. Lehetőleg készüljön a program mellé folyamatábra is!
  8. Képernyő-kiírások tájékoztassák a program felhasználóját a legfontosabb tudnivalókról!
  9. A kiírások legyenek esztétikusak, szellemesek, és ne legyen bennük helyesírási vagy fogalmazási hiba (inkább többször nézze át más is)!
  10. Érdemes megfogadni (de legalábbis megfontolni) egy-egy mérvadónak ítélt személy jótanácsait: egy kívülálló mindig tisztábban látja a problémákat!

Ezt a "Tízparancsolat"-ot persze nem szabad kizárólagosnak tekinteni. Egy mikroszámítógép esetén sokszor kell jó érzékkel megkeresni a helyes középutat a takarékos helykihasználás, a program sebessége és egyéb szolgáltatásai között. Legtöbbször nem is lehet általános szabályt vagy tanácsot mondani, a szükségszerűség - többnyire a korlátozott memória - gyakran parancsoló kényszerhelyzeteket teremt. Mégis úgy érezzük, hogy a még kezdő programozók számára ez a néhány jó tanács lehetőséget ad egy "profibb" munkastílus kialakítására. Ráadásul ezek - legalábbis szellemükben, szándékukban - nemcsak a BASIC programok írása esetén érvényesek, hanem más programnyelvek, de más számítógépek esetén is javítják az elkészült programok minőségét. Még egyszer, jó szórakozást és eredményes munkát kívánunk minden programozónak a játékok felhasználásához, továbbfejlesztéséhez és használatához.
Végül egy felhívás: várjuk azok jelentkezését, akik kedvet éreznek önálló játékprogramok írására, és munkájukat szívesen közkinccsé teszik. Elkövetkező kiadványainkban folytatni szeretnénk hasonló listák közlését a Magyarországon legelterjedtebb további számítógépekre (HT-1080Z, Commodore stb.). A jelentkezéseket a Mikro Magazin szerkesztőségébe várjuk.

Vissza