A „Tilitoli” egy egyszemélyes logikai játék, amit 3x3, 4x4, vagy 5x5-ös méretű táblán játszanak. A táblán a mérettől függően, 9-25 mező található. A mezőkön egészszámok találhatóak, (1-8 1-15, 1-24) között, ezen felül egy üres mező. Az üres mezővel felcserélhetőek a körülötte lévő mezők. A játék kezdetekor a mezők elhelyezkedése véletlenszerű. A feladat az, hogy a számokat sorfolytonosan rendezze úgy, hogy az üres mező a tábla jobb alsó sarkában helyezkedjen el.
Az alapvető szabályok itt is megmaradtak, vagyis csak az üres mező mozgatásával lehet sorba rendezni a mezőket. A programban alapértelmezetten háromféle méretű tábla található. Ezekhez egy-egy teszt pálya tartozik, a többi a felhasználók által készült, amire ez a dokumentáció nem tér ki.
A 3X3 táblán az 1-8 közötti számok találhatóak, összekeverve. A kilencedik mező az a bizonyos üres mező, aminek mozgatásával sorba kell rendezni a mezőkön található számokat. A négyszer négyes és ötször ötös táblák sem sokban különböznek az elsőtől, a négyszer négyesen 15, az ötször ötösön 24 számot kell sorba rendezni.
Plusz kiegészítés, hogy a játékos is létrehozhat táblákat. Ehhez csak egy XML fájlt kell készítenie, megadott szabályok szerint. Az egyes mezőkön nem csak számok szerepelhetnek, hanem bármilyen szöveg/hang, amihez valamilyen sorrendet lehet társítani. Jó alternatív példa erre Budapest kerületeinek neve, ahol a sorrendet a kerület száma adja meg. De egy dallam is kirakható sorrendet képez.
A tábla maximum ötször ötös lehet, ennél nagyobb játéktér már átláthatatlan lenne. Ha az XML fájl kevesebb, mint 24 elemet tartalmaz, a táblára felkerül megfelelő számú joker mező, ami a hiányzó elemek kiegészítésére szolgál. A sorba rendezéskor csak arra kell figyelni, hogy az utolsó normál mező után a jokerek következzenek és mindenképp a tábla utolsó eleme legyen az üres mező. Könnyítés viszont, hogy ha több joker mező is található a táblán, azokat nem kell sorrendbe állítani, a fő kritérium csak annyi, hogy egymást kövessék, és a sorba rendezendő mezők után következzenek.
A mezők értékei hangfájlokban tárolódnak, így új típusú tábla létrehozásakor a játékosnak minden értéket rögzítenie kell egy-egy hangfájlban. Ugyanígy a játék üzenetei is egy-egy hangfájlban találhatóak, ezért nyitott a lehetőség a Tilitoli más nyelvekre való lefordítására, vagy a háttérzene és egyéb hangok megváltoztatására.
Az egyik talán legfontosabb kellék, a sztereo hangszóró, vagy fül/fejhallgató, ez elengedhetetlen a játékhoz. Fontos még minimum 50 megabájtnyi memória, és minimum 1 ghz processzor.
Windows XP használatakor a játék csak akkor indul el, ha fel van telepítve a Microsoft Visual C++ 2008 Redistributable Package.
A telepítő üzeneteit végigolvasva feltelepíthető a játék. Kiválasztható a parancsikonok létrehozása az asztalon, megváltoztatható a program főkönyvtára is. A telepítés után a parancsikonok segítségével elindítható a játék.
A játékhoz elengedhetetlen a Python és a Pygame ugyanezen verzióinak megléte, a telepítést a terminálban a sudo apt-get install python, és sudo apt-get install python-pygame parancsokkal teheti meg.
A letöltött zip fájlt az unzip tilitoli0.x.x.zip paranccsal tömörítheti ki (a .x.x az aktuális verziószámot jelzi).
Miután belépett a játék mappájába (cd mappanév), a python tilitoli.py parancs kiadásával indíthatja el a játékot.
A játék indulásakor egy intró köszönti a játékost, amin bármely billentyű lenyomásával továbbugorhat. Ekkor felhangzik a főmenü zenéje, és az első menüpont neve (Új játék). A menüben a fel és le nyilakkal mozoghat, ami ugyan a képernyőn nem látszik, de a „virtuális kurzor” mozog. Egy menüpontot enterrel nyithat meg. A főmenüben öt menüpont található:
Az „Új játék” menüpont aktiválásával az elérhető pályák listája „jelenik” meg. Itt is a fel és le nyíllal mozoghat, az enterrel indíthatja el a játékot. Ekkor a menü zenéje elhalkul, és betöltődik a pálya.
A menüpont aktiválásakor megjelenik az elérhető nyelvek listája. Itt a fel és le nyilakkal mozoghat, egy nyelvet az enter billentyűvel aktiválhat. Ekkor visszatér a főmenübe, és a játék az adott nyelven fog megszólalni. A beállítás a játék bezárásáig vagy annak megváltoztatásáig érvényes, az újbóli indításkor az operációs rendszer alapértelmezett nyelvén szólal meg.
A táblán való mozgás a kurzormozgató billentyűkkel lehetséges. A fel és le nyíllal soronként, a bal és jobbra nyíllal oszloponként mozog a virtuális kurzor. Igyekeztem ezt hanghatásokkal is szimulálni, így ha jobbra-balra mozog, az egyes oldalon a hangszórók hangereje változik, vagyis pl. teljesen baloldalon csak a bal hangszóróból jön a hang. Az üres mezőt egy élesebb hanggal jelölöm, így egyértelműen meg lehet különböztetni a többitől. Ha az üres mező valamelyik szomszédján áll a „virtuális kurzor”, az enter lenyomására helyet cserél az üres mezővel. A sikeres cserét egy jól megkülönböztethető hang jelzi, ezzel segítve a felhasználót. Ha a tábla szélén mozog, egy élesebb, csappanó hangot hall. Ez a háromszor hármas táblánál zavaró lehet, de ötször ötösnél nagyon hasznos.
Ha sikeresen kirakta a jó sorrendet, a végén megtudhatja hány lépésből sikerült megcsinálni. A lépések számát meghallgathatja az s billentyű lenyomásával is.
Ha még nem végzett a játékkal, de szeretné máskor folytatni, a v billentyű lenyomásával elmentheti azt. Figyelem, egyszerre csak egy tábla állásait tárolja a program!
Az XML fájlok minden nyelv mappájában (pl. locale\hu, locale\en, stb.) az xmls mappában találhatók. Minden fájlhoz hozzátartozik egy ugyanolyan nevű .ogg fájl is, ami a pálya nevét tartalmazza. Ha valamelyik fájl nem található, a pálya nem kerül bele a pályák listájába.
Jelenleg a program az XML fájlból csak az ID és a Sound mezőket használja. A sound értéke a pálya könyvtára/a mező neve, pl. a háromszor hármasnál <sound>3x3/3.ogg</sound>. Fontos, hogy a Python a \ helyett /-t vár könyvtár elválasztó jelként.
Az átláthatóság kedvéért, itt megtalálható az összes billentyűparancs, ami használható a játékban.
Billentyűparancs | leírás |
---|---|
Home | A menükben a legfelső menüpontra ugrik, a táblán a bal szélső oszlopra. |
end | A menükben a legutolsó elemre ugrik, a táblán a jobb szélső oszlopra. |
enter | A menükben aktiválja a kijelölt menüpontot, a játékban az üres és az adott mezőt kicseréli, ha lehetséges. |
Fel nyíl | Felfelé mozog a menüben és a játéktáblán. |
Le nyíl | Lefelé mozog a menüben és a játéktáblán. |
Balra nyíl | A játéktáblán az oszlopokon lépked bal irányban. |
Jobbra nyíl | A játéktáblán az oszlopokon lépked jobb irányban. |
Page up | A játéktáblán a legfelső sorra ugrik. |
Page down | A játéktáblán a legalsó sorra ugrik |
r | Elhangzik a tábla azon sorának száma, ahol a „virtuális kurzor áll. |
c | Elhangzik a tábla azon oszlopának száma, ahol a „virtuális kurzor áll. |
e | Megismétli a „virtuális kurzornál” lévő mező értékét. |
s | Bemondja az eddigi cserék számát. |
o | Végigmondja az elemeket, a helyes sorrendben. |
v | Elmenti a pálya aktuális állását. |
f2 | Megállítja a háttérzene lejátszását. |
F3 | Folytatja a háttérzene lejátszását. |
Escape | Bezárja a pályát, a főmenüben megnyomva kilép a játékból. |
Rengeteg ötletem van még, amivel fejleszthetném a játékot, viszont tanulmányaimból kifolyólag ezek eddig még nem valósultak meg. Felmerült a játékosok versenyeztetése, vagyis a program egy sikeres játék után elküldené egy szervernek az eredményeket (hány lépésből rakta ki a felhasználó, mennyi idő alatt, stb), amit egy program kiértékelne.
Az 5.1-es hangzás ötlete is felvetődött, így a nagyobb pályákon való mozgáskor még jobb hanghatásokat lehetne vele elérni. Ezt már előkészíti a hang lejátszó függvény, így a közeljövőben szeretném ezt megvalósítani.
A könnyebb pályaszerkesztés segítésére tervben van egy xml szerkesztő beleépítése a játékba, így akik nem ismerik ezt a nyelvet, ők is nagyon egyszerűen tudnának pályákat készíteni.
Mivel a felhasználókra van bízva a pályák elkészítése, szeretnék egy interaktív weboldalt is csinálni, ahova feltölthetik a játékosok a saját készítésű pályákat, így másoknak nem kellene feleslegesen dolgozniuk.
A Tilitoli legfrissebb verzióját innen töltheti le.
E-mail: oaron1@gmail.com