imagazin arrow2-left arrow2-right arrow2-top arrow-up arrow-down arrow-left arrow-right cart close dossiers education fb instagram menu notification oander rss rss-footer search service shuffle speech-bubble star store stores tests twitter youtube

A jövő megérkezett!

Rendeld elő már most az iPhone X-et!

Magyar iOS-fejlesztők: TanKy


Számos sakkjátékkal találkozhatunk az App Store-ban, magyar fejlesztésű változattal viszont aligha. Ezt a hiányt hivatott pótolni a TanKy-féle sakkalkalmazás, melyben minden, még a mesterséges intelligenciát felhasználó sakkmotor is teljesen egyedi készítésű.

Sziasztok! Kuzmics Tamás (tomitank), 28 éves győri lakos vagyok. Jelenleg a győri Széchényi István Egyetem villamosmérnöki levelező szakának végzős hallgatója vagyok. Az egyetem mellett főállásban dolgozom. A programozással 18 évesen ismerkedtem meg.

Még az iWiW fénykorában készítettem egy kisebb közösségi oldalt. Elsőként erre az oldalra készítettem egy egyszerű sakk, valamint egy amőba játékot is. A Facebook térhódítása miatt az oldal ugyan “kihalt”, de mivel nagyon megszerettem ezt a két játékot, elhatároztam, hogy készítek egy weboldalt. Az oldalon online és offline is játszhatnak az emberek sakk és amőba játékot.

A okostelefonok és tabletek elterjedésének köszönhetően az online áruházakból letölthető alkalmazások használata teret hódított. Úgy döntöttem, hogy elkészítem életem első iOS és Android alkalmazását. Kifejezetten magyar fejlesztésű és egyben magyar nyelvű Sakk játék ez idáig nem volt egyik alkalmazásboltban sem elérhető.

A szabadidőm szűkőssége miatt a natív programozási nyelvek elsajátítása helyett egy “univerzális” megoldást választottam, a Phonegap vagy Cordova néven ismert projektet. Segítségével az általam kedvelt JavaScript, HTML, CSS ismereteimet felhasználva készíthettem el az alkalmazásomat. Ez a megoldás kompromisszumokra kényszerít számos dologban, de kis utánajárással a legtöbb probléma áthidalható. (Ennek a megoldásnak sajnos a régebbi készülékeken gyakran sebességbeli regresszió a hátránya, de egy mai modernebb készüléken ez kevésbé vagy egyáltalán nem tapasztalható.)

Mind a weboldalak, mind az alkalmazás dizájnelemeit magam készítettem, Photoshop segítségével. A kinézet során arra törekszem, hogy egy letisztult és könnyen kezelhető játékot adjak a felhasználóknak. Különösen büszke vagyok arra, hogy a teljes User Interface-t – beleértve a bábuk megragadását, a mozgatást – mind saját megvalósításként adhatom át a felhasználóknak, tehát nem egy már meglévő sablonra építettem a játékot.

A játékban található zene, illetve hangok, a rezgések valamint a kevesek által ismert en passant lépést jelző üzenet a Beállítások menüben ki és be kapcsolhatók. Az alkalmazásban lehetőség van a tábla koordinációinak megjelenítésére illetve elfedésére (szintén a Beállítások közt). Az applikáció tartalmaz egy Statisztika menüt, továbbá a sakk alapszabályait leíró menüpontot is. Utóbbi a sakk szabályait kevésbé ismerők számára ad útmutatást. (Kifejezetten sok támadás érte a játékot, hogy biztosan “csal”.. :) )

A félbehagyott partit a telefon automatikusan elmenti. A parti aktuális állása hivatalos PGN formátumban megosztható ismerőseinkkel. A játék – a gép ellen – 9 fokozatban izzasztja meg a felhasználókat. Lehetőség van egymás elleni partikra is (jelenleg csak offline). Az automatikusan elforduló bábuknak köszönhetően, vízszintes helyzetben, a játék egy virtuális sakktáblát hivatott megvalósítani.

Jelenleg két nyelv támogatott: magyar és angol. Alapesetben a készülék nyelve alapján dől el a nyelvi beállítás: amennyiben a készülék nyelve nem magyar, úgy automatikusan az angol nyelvű fordítás töltődik be. A Beállításokban ez is módosítható.

A fejlesztés jelenleg is folyik:

  • PGN fájl mentése a telefonra, majd a mentett játékok beolvasása.
  • A 9 nehézségi fokozat helyett, Élő pontrendszer használata.
  • Az előző ponthoz szükség van a gép tudásának fejlesztésére.

Elérkeztünk egy olyan ponthoz, ami nélkül nem lenne megfelelő kihívás a tapasztaltabb játékosok számára egy egyszerűbb sakkprogram, ez a sakk motorja. A sakk motor /Chess Engine/ a játék “agyát” reprezentálja. A legtöbb alkalmazás szimplán fogja a világ jelenlegi legerősebb, nyílt forráskódú programját (Stockfish) és implementálja. Ez egyszerű és rengeteg idő takarít meg a fejlesztők számára. Engem viszont nagyon érdekel a mesterséges intelligencia ezen része.

Úgy döntöttem, hogy saját magam programozom le (fórumok és minták segítségével) az alkalmazás motorját is. Mivel JavaScript nyelven fejlesztek, ezért a sakkprogramozásban elterjedt C és C++ nyelvekhez képest jelentős futtatási sebességhátránnyal kell számolnom.

Kijelenthetem, hogy sikerült a világ legerősebb tiszta – tehát fordítók nélküli – JavaScript nyelven írt sakk motorját elkészítenem. A 2005-ben világbajnoki második helyezést elért [Fruit 2.1 / 2.2] nyílt forráskódú sakk motor alapjait felhasználva fejlesztek. A motor jelenleg 2500-2600 Élő pont erősségű, megfelelő sebességű készülékeken. A motor fejlesztését jelenleg is folytatom, így várhatóan még tovább fog erősödni.

A felhasználók szemszögéből 2 dolog miatt fontos ez a fejlesztés:

  • adott keresési mélység mellett sokkal erősebb ellenféllel találják magukat szembe
  • a nehezebb fokozatok sokkal rövidebb idő alatt elérik a szükséges keresési mélységeket

Az alkalmazás Android verziója közel 1 év alatt már valamivel több mint 10 ezer készüléken található meg. iOS esetében ez a szám körülbelül 5 ezer készüléket jelent. Mindkét platformon elérhető ingyenes és fizetős verzió is.

Külön köszönetet szeretnék mondani a páromnak és a családtagjaimnak!

Sorozatunkat természetesen a jövőben is folytatni kívánjuk, ha szeretnél bemutatkozni egy hasonló cikkben az iMagazin olvasótáborának, jelentkezz e-mailben!
Apple Watch akció
Apple Inc. (AAPL)

Ezt már olvastad?

A Sirinek ez is az egyik baja, hogy mindenki a célközönség. Valószínűleg hatékonyabb lenne, ha először jól működő modulokat hoznának létre egy-egy funkcióra szabva.

Miért nem ismeri anyanyelvünket az Apple virtuális asszisztense? ... - Klikk ide!