LINK href="stylusvkhr.css" rel=STYLESHEET>


TÁBLAJÁTÉKOS:

Zillions progi-suli

Robert Kirkland: "Hare and Hounds" nevű, JAVA-ban írt progijával szinte tele van a háló.
A játék teljesen megegyezik a Zilliben: "French Military Game" néven futó játékkal.
Persze izlés kérdése, hogy kinek-kinek milyen megfogalmazásban és képekkel teszik inkább egy játék. Ám, mert az alkalmazott módszer más esetekre is adhat tanulságokat,
különösen a kezdőknek, igencsak érdemes végigfutni az átalakítás fázisain.

7. Működő progi képanyagának lecserélése, táblaméretváltozással:

7.1. Készítsünk másolatot a Zillions/Rules/FrenchMilitaryGame.ZRF fájlról és a Zillions/Images/FrenchMilitary könyvtárról. Legyen ezek neve mellett pl. egy "2" jelzet.
Akár benne is hagyhatjuk az eredeti Zillions könyvtárainkban és a munka végeztével majd eldönthető, hogy maradnak-e (esetleg új néven), vagy töröljük őket.

(Egyébként, a kísérletezésekhez mindig célszerű egy MUNKA-könyvtárba átmásolni a piszkálni szándékozott eredetiket. Lásd: progisuli 1.)

7.2. Megnyitva pl. a Táblajátékoson a Hare and Hounds JAVA progit tartalmazó oldalt, vágólapra másoljuk (Alt-Shift-PrintScreen) a teljes képet, amit bemásolunk egy Paint képszerkesztőbe. Innen, kivágjuk a táblát... (majd, ha ennek átalakításával végeztünk, akkor a nyuszit, végül pedig a kutyát ábrázoló bábuk képét).

A sajátkezűleg megismételhető átalakításhoz lásd a munka-7 könyvtároldal-t .
(Hálón nem jön be, de letölthető : munka7.zip)


Új képet nyitunk a Paint-ban, ahova behívjuk az előbb vágólapra tett táblát, ezt 90 fokkal elforgatjuk, majd letörölve róla a bábukat, felülírjuk vele az Images/FrenchMilitarGame2 könyvtárban a korábbi tábla (FrenMili.bmp) képét. (Törlésnél legegyszerűbb a háttér-színből a jobb gombbal mintát venni, majd "radirozni", lásd az ábrán 2- jelzettel.)

A bábukkal is hasonlóan járunk el, de itt azok háttér-színét élénk zöldre (3) kell változtatni. Ezt a színt kezeli ugyanis a Zillions.exe átlátszóként.


7.3. A Paint rajzolóprogival megnyitva az új tábla képét (Images/FrenchMilitaryGame2/FrenMili.bmp), az egerünk mozgatta curzorral, "letapogathatók" annak pontjai és leolvashatók azok pixelben mért koordinátái (lásd pl.: a piros + jelre vitt kurzornál, a lent mutatott 113,113 értéket).
Néhány jól kiválasztott pont koordinátáját megjegyezve, azok értékeiből kiadódik a mezőméret (azaz, egyszersmind, a max. bábuméret) és a függőleges/vízszintes mezőosztás (lásd részleteiben a sárga alapon).




Fentiek átgondolása után, a French Military Game 2.ZRF-be már behívhatók a megváltozott képek, ha ezzel együtt, az azok méretétől függű változásokat is átírjuk. (A táblákról lásd részletesebben: progisuli 3.)

A pirossal jelzett változások közül, az új könyvtárhivatkozást még két helyen, a két bábu képének behívásánál is, át kell írni.


Ezzel, készen is vagyunk! Kimenthetjük "nyuszi es kutyak.ZRF" néven és máris indíthatjuk az "újabb" zillis játékunkat. (Kezdőállása még eltér a szándékozottól, de persze az ehhez szükséges változtatáshoz sem kell programozási ismeret: csupán a "board-setup" értékeit kell átírnunk a ZRF-ben...)


Ámde, ha már kézbevettük (behívtuk a szövegszerkesztőbe) a Frech Military Game ZRF-jét, nézzük végig, értelmezzük a részleteit, hogy is működik!

Az alább kilistázott ZRF minden szükséges információt tartalmaz ahhoz, hogy a Zilli "megérthesse" a játékszabályokat. (Picit még hosszabb is mint kellene, mert a Zilli nem értelmezi egyik sorban sem a ; kezdettel beírt megjegyzéseket...)
Egy gyakorlott progizótól alig néhány órát igényelne az elkészítése ("tokkal-vonóval", azaz):
ábrákkal, hibátlan (verhetetlen) ellenjátékkal, előre/hátra léptetési lehetőséggel, parti-mentéssel, színcsere-lehetőséggel, mind a saját gépen, mind két gép között a hálón is játszható megoldásban. (A Zillinek ugyanis csak az adott játékra vonatkozó szabályokat és képeket kell megadni. A parti-vezérlést, a komfort-szolgáltatásokat és az ellenlépések kiválasztásának algoritmusát is, már tartalmazza a ZRF-et értelmező Zillions.exe.)

(define shift ($1 (verify empty?) add) )

(game

(players kutyaval nyuszival)
(turn-order kutyaval nyuszival)
(pass-turn false)

(board
(image "images\HareandHounds\tabla.bmp")
(grid
(start-rectangle 30 30 75 75) ; bal felső mező
(dimensions
("a/b/c" (82 0)) ; oszlopok
("5/4/3/2/1" (0 82)) ; sorok
);end dimensions
(directions (n 0 -1) (e 1 0) (s 0 1) (w -1 0))
);end grid
(links ne(a2 b3) (b3 c4) (a4 b5) (b1 c2))
(links se(a4 b3) (b3 c2) (b5 c4) (a2 b1))
(links sw(c4 b3) (b3 a2) (b5 a4) (c2 b1))
(links nw(c2 b3) (b3 a4) (c4 b5) (b1 a2))
(kill-positions a1 a5 c1 c5)
);end board

(piece (name nyuszi)
(image nyuszival "images\HareandHounds\nyuszi.bmp")
(moves (shift n)(shift e)(shift w)(shift nw)(shift ne)
(shift s)(shift sw)(shift se))
);end piece

(piece (name kutya)
(image kutyaval "images\HareandHounds\kutya.bmp")
(moves (shift n)(shift e)(shift w)(shift nw)(shift ne) )
);end piece

(board-setup
(kutyaval (kutya a2 b1 c2 )) (nyuszival (nyuszi b5))
); end board-setup

(loss-condition (nyuszi kutya) stalemated)
(win-condition (nyuszi) repetition)
(win-condition (nyuszi) (absolute-config nyuszi (b1) ) )

); end game
---shift nevű, ismétlődés (subrutin): $1 irányban
léphet a szomszédos mezőre, ha az üres.

---a szabályleírás kezdete

---ketten játszanak, az egyik neve kutyaval,...
---a kutyaval játékos kezd, majd váltakozva lépnek
---passzolni nem lehet, lépéskényszer van

---tábla leírásának kezdete
---tábla képe

---rácsozatának (mezőkiosztás leírásának) kezdete
---bal felső mező sarkának pozíciója 30 30
mezőméret: 45x45 (45=75-30, pixelméretben)
a bal felső mező számozása a5, ...
mezőosztás sorirányban is, oszlopirányban is: 82

---irányok: n-fel 1, s-le 1, w-balra 1, e-jobbra 1
(gyakorta használt jelölések:
n=/nord/É, s=/süd/D, e=/east/K, w=/west/Ny)

---csak a megadott mezők közötti irányok
pl: ne-jelentése a2-ről a b3-ra, b3-ról c4-re,...

---Nem használt mezőpozíciók: a1 a5 c1 c5 (sarkok)



---a nyuszi nevű bábu leírásának kezdete
---képe, amit a nyuszival nevű játékos mozgathat
---mozgatásának leírása a shtift subrutinban,
ahol $1 = vagy n, vagy e, vagy w, vagy nw...



A kutya nevű bábu leírása
(mint a nyuszié, de kisebb a mozgáslehetősége)




---kezdőállás beállítása
(a nyuszival játékos nyuszi bábuja b5-ről indul...


---veszít nyuszival is, kutyaval is, ha lépésképtelen
---nyer nyuszival, ha (3x)lépésismétlés van
---nyer nyuszival, ha b1-re ér

(progi-suli 1.)