CSISZA - mn. mely csak öszvetételekben használtatik, s am. csiszoló. (A magyar nyelv szótára - Czuczor Gergely, Fogarasi János)

Csisza - betűjáték-készítő eszköz

Minden egy képenA Csisza egy szabadon használható eszköz, amellyel betűjátékokat lehet tág határok között változtatható alapelemekből összeállítani. Hasonló magyar nyelvű játékokból nagyon szűk volt a kínálat a születése idején, ez adta az ötletet az elkészítéséhez.

Sztori

Tux2006-ban vettem egy új számítógépet, és Linux került rá. Időnként szerettem volna egy kis játékkal lazulni, de nagyon szerény volt a feltelepített kínálat, a lassú és drága mobilinternetemmel pedig nem nagyon volt lehetőségem ezt a világhálóról bővíteni. Akadt viszont a telepített játékok között egy konzolos, angol nyelvű scrabble. Ezt a játékot akkor még csak hírből ismertem, itt volt lehetőségem először nem túl acélos angolomat bevetni a gép ellen, úgy rémlik, nem sok sikerrel. De megtetszett a dolog, és rákerestem az interneten a játékra. Az ISC (Internet Scrabble Club) oldalán kötöttem ki , letöltöttem a kliensprogramot, elkezdtem játszani és néhány évre ott is ragadtam. Felküzdöttem magam az átlagos játékosok szintjére. Egy időre átnyergeltem a Lexulousra is, majd magyar nyelvű játék után néztem. Szórablót játszottam időnként az akkor még létező jatek.hu oldalon. Bevallom, nem tetszett igazán, de nem találtam más lehetőséget. Az ottani versenyzős variánssal szemben, én a stratégiai elemeket is mutató hagyományos társasjáték módot preferálom. 2013-ban aztán a jatek.hu megszűnt, és legfeljebb a JÓJÁTÉK.hu oldalon játszható Szóváltás maradt utolsó lehetőségnek, a maga fura bozótharcával.

Scrabble3DDe akkor, egy 2014. decemberi napon, beírtam a keresőbe: "scrabble". Rátaláltam a Scrabble3D nevű nyílt forrású játékra szerverestől, fórumostól, és ami a legfontosabb, a magyar nyelvű játékot lehetővé tevő, komplett támogatásostól. Voltak hát ékezetes betűk és kétjegyű mássalhangzók, de nem volt szótár, és a program sem magyarul szólt a felhasználóhoz. Sok időbe került, de sikerült elkészítenem mindegyikből egy kezdetleges verziót, miután megbizonyosodtam róla, hogy nincs olyan szógyűjtemény, ami legalább egy nem hivatalos scrabble-szótárnak megfelelne. Ismét december lett, volt egy szótárkezdeményem, és kedvet kaptam hobbiszinten kicsit programozást tanulni. A Python nyelvre esett a választásom, mert multiplatform, divatos, könnyen tanulhatónak mondják, és bár 20 évvel korábban valamelyest próbálkoztam Basic-kel és C-vel, de ez nem sok nyomot hagyott bennem akkorra.

Python könyvGérard Swinnen Tanuljunk ​meg programozni Python nyelven című könyvéből kezdtem el ismerkedni a nyelvvel, aztán az ebben lévő példaprogramok jelentették a program alapját. Arra gondoltam, hogy a szintén a jatek.hu-n korábban játszható Játék a betűkkelt próbálom megvalósítani, de közben folyamatosan ott motoszkált a fejemben, hogy valahogy a különböző betűjátékokból megismert alapelemekből mit lehetne kihozni. Aztán elkészült a tábla, lehetett a tartóról betűket húzogatni rá, a program ellenőrizte szótár alapján a szavak érvényességét. Kiegészítettem ezt úgy, hogy minden lépés után mutassa meg az összes lehetséges szót. Innen már csak egy nagyobbacska átalakítás kellett, hogy a gép is játsszon. Készült egy szerver program és egy kliens a játékosnak, egy pedig a gépnek. Frissült a szótár, a gépi ellenfeleket pedig már többféleképpen is lehet gyengíteni. Egyszer felmerült, hogy mi legyen a neve.

Név

A Csináld szavad név ötlött rögtön az eszembe, a csináld magad kifejezés mintájára, és nem is tudtam megszabadulni a gondolattól, ez írta le legjobban, hogy mi a program célja. De hosszúnak és bumfordinak tűnt, így a két szó első szótagját összevontam, és lett belőle Csisza, amire a kereső szintén hozott figyelemre méltó találatot a múltból. Jelentése: csiszoló.

Állapot

Vannak bizonyos részek, amik egész jól le lettek tesztelve az évek folyamán, mások legfeljebb kipróbálva voltak. Bizonyos beállítások egyidejű bekapcsolása a táblára kikerülő szavak szétesését okozhatja. A távoli játékot soha nem sikerült kipróbálnom, valószínűleg nem is működik. A programot bárki tetszése szerint használhatja, de csak a saját felelősségére, semmilyen támogatás nem jár hozzá. A GPLv3 licenszt jelöltem meg hozzá.

Mentegetőzés

Mivel sem a programozásban, sem a nyelvészkedésben nem vagyok jártas, csak egy hobbista, aki "játékosként", saját kedvtelésére fogott ebbe a projektbe, legfeljebb remélhetem, hogy az mások számára is hasznos lehet. A Python nyelvvel éppen csak ismerkedve készítettem, nem "clean code", és valószínűleg még sok egyéb követelménynek sem felel meg. Én annak is örülök, ha nagyjából működik. :) Linuxon készült, a Windowsos megjelenésén jócskán lenne mit alakítani.

Áttekintés

A program indítása után néhány előre elkészített mintajátékból lehet választani. Egy játék kiválasztása után, azzal közvetlenül el lehet kezdeni játszani, de a tábla vagy a játékbeállítások meg is változtathatók, és szerkesztés után új játékként el is lehet menteni későbbi használatra. Van lehetőség teljesen új táblát létrehozni. Ekkor az eredetileg betöltött játék egyéb beállításai öröklődnek. A beállított játék játszható egyedül vagy 1-3 gépi játékos ellen. A gépi ellenfelek erőssége többféleképpen befolyásolható. Létezik egy hálózati játék opció is, de csak egyetlen számítógépen több kliensprogram csatlakoztatásával volt kipróbálva, internetes játékra valószínűleg nem alkalmas. Használata nem javasolt. A játékmód lehet normál, ekkor a játékosok egymás után következnek saját betűikből szót alkotni, vagy szimultán, ekkor minden játékos egy időben alkot szót közös betűkből, és a legmagasabb pontértékű kerül a táblára. Szimultán játékban lehetőség van rá, hogy mindenki külön táblán játsszon. (A játék a betűkkel működött így, azt hiszem.) Beállítható a gondolkodási idő és a kihúzott betűk száma. Az is beállítható, hogy az új szónak kapcsolódnia kell-e a már táblán lévőkkel. Megadható kezdő mező, amit az első szónak kötelezően fel kell használnia. Előre megadható, hogy hány fordulóból álljon a játék. A betűkészlet kezelésére 3 lehetőség áll rendelkezésre. A készlet minden esetben előre megadott számút tartalmaz az egyes betűkből, az eltérés az, hogy a táblára kerültekkel csökken-e a még kihúzhatók száma. Az alapeset a csökkenés, a másik két lehetőség között a különbség, hogy csak a táblára kerültek pótlódnak a kihúzható készletben, vagy a teljes tartó tartalma. (Az utolsó esetben, a tartón levő betűk készlete minden fordulóban teljesen kicserélődik.) Egy külön tartón az összes játékosnak rendelkezésére álló, közös betűk adhatók meg. Így például, lehet mindenkinek ugyanannyi dzsókere. (Egy betű csak vagy az egyik, vagy a másik tartóra legyen beállítva, egyébként összezavarodhat a program.) Az is beállítható, hogy ezek a betűk minden körben változatlan számban rendelkezésre álljanak. A felhasznált betűk pontértéke lehet állandó, vagy véletlenszerű. Állandó pontértékeknél egy véletlenszerű szorzó sorsolása is beállítható. A kirakott szavak érvényességének ellenőrzése történhet a mellékelt szótár alapján, vagy helyesírás-ellenőrző program által. (Utóbbi esetben gépi játékos nem állítható be.) Az érvényesség ellenőrzése történhet minden körben, vagy csak a játék végén. Ekkor azok a betűk, amik nem alkotnak érvényes szavakat megjelölhetők, és az eredmény megállapításakor nem számítanak. A dzsókerek a táblán a kívánt betűre cserélhetőek, vagy maradhatnak a táblán is dzsókerek, így vízszintesen és függőlegesen más-más betűt reprezentálhatnak. A dzsókerek felvehetik a becserélt betűhöz megadott pontértéket. A pontozás történhet csak a lerakott betűk irányába, a keresztirányú szavaknak ekkor is érvényeseknek kell lenniük, de a pontértékük nem számít. Jutalmak adhatók a lerakott betűk száma alapján, vagy a már táblán levő betűk felhasználásáért. Ha az érvényesség ellenőrzése csak a játék végén történik, akkor a szavak hossza alapján lehet jutalmazni. Jutalom adható a játékot befejező játékosnak, és pontlevonás történhet a megmaradt betűk alapján. A tábla egyes mezőihez is hozzá lehet rendelni 1-9 pontos jutalmat.

Részletek

(Az egérkurzort a szövegek vagy gombok fölé mozgatva, további információ jeleníthető meg az egyes elemekről.)

Beállítások
Játék
Egyszemélyes gyakorló játék beállítása.
0-3 gépi játékos elleni játék bellítása
Itt állítható be az ellenfelek száma. 0 beállítása esetén egyszemélyes játékot indít a szerver. Ez nem azonos az Egyedül játszom beállítással, ahol nincs szerver. A játékban az ellenfelek részletes beállítására a Gépi ellenfelek lapon kerülhet sor.
Bejelölve, a játékosok nem egymásután, hanem egyidejűleg alkotnak szót azonos betűkből, és a legmagasabb pontértékű szó kerül a táblára.
Csak szimultán játékban állítható be. Ekkor minden játékos szava csak az ő saját tábláján jelenik meg.
Egy számítógépen belül több játékos csatlakozására ad lehetőséget (gép és ember vegyesen). Távoli játékban való kipróbálása nem történt, valószínűleg nem is működik. Használata nem ajánlott.
Itt állítható be az ellenfelek száma.
Itt adható meg a játékos számára fordulónként rendelkezésre álló gondolkodási idő másodpercben.
Szabályok megadása
A készletből kisorsolt betűk száma.

Ha be van jelölve, akkor az új szó alkotásakor kötelező a már táblán lévő betűkből legalább egyet felhasználni.

Ha be van jelölve, akkor az első táblára kerülő szó valamelyik betűjének a megadott mezőre kell kerülnie. Ha kötelező kapcsolódás a már táblán levő betűkkel, akkor ez a beállítás nem érvényesül.

Ha be van jelölve, akkor a játék a megadott számú forduló után befejeződik.

A játék véget ér, ha minden játékos két egymást követő fordulóban passzol. Ha ez a lehetőség be van jelölve, akkor a cserék is passzolásnak számítanak a játék befejezése szempontjából.

Ha be van kapcsolva, a tartó méretére korlátozza a láthatóságot. Akkor érdemes bekapcsolni, ha a tábla felfedezése célja a játéknak. (Csak egyjátékos módban.)


A betűk húzása egy előre meghatározott betűkészletből történik, amely a kisorsolt betűkkel csökken.
Betűk
A betűk húzása egy előre meghatározott betűkészletből történik, minden forduló után pótlódnak a zsákban a táblára került betűk.

A betűk húzása egy előre meghatározott készletből történik, minden forduló után a játékos összes betűje cserélődik.

A sorsolt magánhangzók+dzsókerek arányát 40-60% körül tartja.

Ha be van jelölve, akkor egy külön tartón az összes játékos számára rendelkezésre álló betűk adhatók meg. Ha egy betű mindkét tartón szerepelhet, az a táblára kerülő szavak széteséséhez vezethez, ezért ezt érdemes elkerülni. Szimultán játékban nem állítható be.
Közös betűk
A kirakott betű helyén egy új jelenik meg a tartón.

Egy betű csak a betűkészletnél meghatározott állandó értékkel rendelkezhet a játékban.

A betűk pontértéke a kihúzásukkor sorsolódik ki a megadott készletből.
Pontszámok
Ha be van jelölve, akkor a betűk vagy szavak pontértékének számításához az adott készletből véletlenszerűen sorsolt szorzót is figyelembe kell venni.
Szorzók

A összes újonnan létrejött szó érvényességének ellenőrzése a lépés továbbítása előtt.

Ha be van jelölve, minden kirakott szó érvényesnek számít. A játékost a program figyelmezteti, hogy a szó nincs a szótárban.

Az összes újonnan létrejött szó érvényességének ellenőrzése a telepített helyesírás-ellenőrző programmal. (Csak egyjátékos módban állítható be.

A kirakott szavak érvényességét csak a játék végén ellenőrzi. (Csak egyjátékos módban állítható be.


A lerakott dzsóker a táblán is dzsóker marad, és bármilyen betűként felhasználható a keresztező szóban.

A lerakott dzsóker a helyettesített betű pontértékét is megkapja. Véletlenszerűen sorsolt pontszámok és gép elleni játék esetén nem állítható be.


Ha be van kapcsolva, akkor a lerakott betűk irányára merőleges irányban létrejött szavak pontértéke nem számít, de ekkor is érvényeseknek kell lenniük, ha az érvényesség ellenőrzésének valamelyik módja be van állítva.
Jutalmak, levonások
Az egy fordulóban lerakott betűk száma alapján adott jutalom.
Ha be van állítva, akkor a már korábban táblára került betűk felhasználásáért betűnként a megadott jutalom jár.

Ha be van jelölve, akkor a már korábban táblára került betűkért nem jár a rajtuk feltüntetett pontszám, hanem csak a jutalompontszám.
Ha be van jelölve, akkor az egy fordulóban létrejött szavak száma alapján szavanként a meghatározott jutalom jár.

Ha be van jelölve, akkor a játékot befejező játékosnak a megadott jutalom jár.

Ha be van jelölve, akkor a játékot befejező játékosnak az előre megadott pontszám jár.
Ha be van jelölve, akkor a játékot befejező játékosnak az ellenfelek megmaradt betűinek értéke jár jutalomként. Egyébként betűnként a megadott pontszám jár jutalomként.

Ha be van jelölve akkor azoknak a játékosoknak, akiknek a játék befejeződésekor betűk maradtak a készletén, pontlevonás jár.

Ha be van jelölve, akkor a játákos megmaradt betűinek értéke vonódik le a pontszámából. Egyébként megmaradt betűnként a megadott pontszám vonódik le a pontszámából.
Ha az érvényesség ellenőrzése a játék végén történik, akkor a szavak hossza alapján megállapított jutalom adható meg.

Hozzáférés

https://github.com/betuTboy/CsiSza


A letöltött .zip fájlt tetszés szerinti néven létrehozott könyvtárba ki kell bontani.

Üzembe helyezés

A program futtatásához a Python futtató környezet 3. verziójának telepítése szükséges.


https://www.python.org/downloads/


A játék könyvtárában állva, Windowson a python csiszaclient.py, Linuxon python3 csiszaclient.py paranccsal indíthatjuk el.

Képek

játék 1 játék 2 játék 3 játék 4 játék 5 játék 6 játék 8 játék 10

Videók

játék 1 Játék indítása

játék 2 Új játék készítése

játék 3 A betűkészlet szerkesztése, és gépi játékosok beállítása