Előadást letölteni
Az előadás letöltése folymat van. Kérjük, várjon
KiadtaZsolt Vass Megváltozta több, mint 8 éve
1
V 1.0 Programozás III. Gyakorlás
2
V 1.0ÓE-NIK, 2014 Gyakorlás –Feladat: Tic Tac Toe játék –Szabályok: A játékosok felváltva teszik le a jelöléseiket. Amelyiküknek előbb összegyűlik 3 jelölése vízszintesen, függőlegesen vagy átlósan, az győz. –Ha betelik a pálya anélkül, hogy 3 összegyűlne bármelyik játékosnak, akkor egyikük sem győzött. 2
3
V 1.0ÓE-NIK, 2014 Tervezés Válasszunk grafikai módszert –Shape-ek? –Drawingok? –Visualok? –Akár a Shape-ek, akár a Drawingok megfelelőek a játék megvalósításához. (Természetesen a bonyolultabb Visualok is nyugodtan használhatók.) A diasor további részében Drawingokkal dolgozunk. Shape-ek és Drawingok esetében egyaránt adatkötéssel szoktunk dolgozni. –Drawingok: legyen egy Image vezérlő, ami egy rajzolt képet (DrawingImage) jelenítsen meg az aktuális játékállásról. A DrawingImage-t Converterrel csináljuk egy pályát reprezentáló adatból! Ugyanúgy, mint a labirintus esetében (8. óra) 3
4
V 1.0ÓE-NIK, 2014 Tervezés Osztályok –Tehát kell egy osztály, ami reprezentálja a játékpályát (Pálya osztály) Pl. egy 2D tömbbel reprezentálhatjuk a mezőket Lehessen lépni, ellenőrizni, hogy tele van-e, ellenőrizni, hogy nyert-e valamelyik játékos –Jó lenna, ha lenne egy osztály, ami reprezentálná az egész játékot (Játék osztály) Legyen benne a pálya mint adattag, és hogy melyik játékos az, aki éppen lép… Jó, ha van benne tulajdonság ahhoz, hogy vége van-e már a játéknak Lehessen lépni, jelezze valahogy vissza, ha az éppen lépő játékos nyert Adatkötés: –Image vezérlő Source tulajdonsága az ablakban adattagként szereplő játék objektum Pálya tulajdonsága 4
5
V 1.0ÓE-NIK, 2014 Egérkattintás Hogyan kapjuk meg, hogy a felhasználó melyik pixelre kattintott az Image vezérlőn belül? –Egyrészt lehet MouseMove, MouseDown segítségével –Egyszerűbb: Point kurzor = Mouse.GetPosition(image); A kurzor pozícióját az image vezérlőhöz relatívan adja meg (bal felső sarok) –Figyelem, ez pixelben van, nekünk az kell, hogy melyik mezőbe kattintott bele. –Ez egyszerűen kiszámítható (egészosztással), ha tudjuk 1 mező szélességét. Egy mező szélessége = image vezérlő szélessége / hány mező van a pályán széltében 5
6
V 1.0ÓE-NIK, 2014 Így érdemes haladni Osztályok létrehozása, de még csak minimális funkcionalitással… –Pálya osztály: egy darab üres 2D tömbbel –Játék osztály: csak a pálya legyen benne –Converter (Pálya->DrawingImage). Egyelőre a játékosokkal ne foglalkozzon, csak annyit tudjon, hogy kirajzolja a rácsot –Bindable Összekötés, tesztelés (rácsot rajzolja-e) Fokozatos kiegészítés további funkciókkal: –Játékosok kirajzolása (a 2D tömbbe mesterségesen teszünk jelöléseket tesztelési célra) –Játék kialakítása (nyerés ellenőrzése, tele van-e, játékoscsere…) –Egérrel való kattintásra rakjon le új jelölést 6
Hasonló előadás
© 2024 SlidePlayer.hu Inc.
All rights reserved.