Hogyan írjuk meg utász a java 15 percig
Szükségünk van:
- Szabadidő 15 perc
- Hangolt munkakörnyezet, azaz JDK és IDE (mint például az Eclipse);
- Lwjgl könyvtár (version 2.x.x) együtt kell működnie az Open GL. Felhívjuk figyelmét, hogy lwjgl változat fenti 3 kell írni a kódot, amely eltér a megadott cikk;
- Ikonok a sejtek, azaz a ábra, zászló, zászló helytelenül, egy az enyém, a bánya robbant, és saját területén. Akkor szimbolikusan felhívni magad, vagy töltse le a használni írásakor a cikket.
Munka grafika
A grafikus hozzon létre egy külön osztályt - GUI. Tőle, meg kell tárolni az összes grafikus vezérlőket (azaz, mezők sejtek), elem meghatározásának, aki eljött, hogy kattintson, és átadása a vezérlést, kimenete grafikai elemeket a képernyőn, és ellenőrizzék az alapvető funkcióit OpenGL.
GUI haszon osztály kölcsönhatásba grafikus elemek létre kell hoznunk egy interfész (write rács osztályok, sejtek és más mechanika még túl korai), amely meghatározza, mi az. A logika azt diktálja, hogy a grafikai elemek kell:
- Megjelenés (textúra);
- koordinátái;
- A méretek (szélesség és magasság);
- Módszer, amely továbbításra kattintva koordinátákat meghatározni, hogy a kattintás volt egy elem;
- A módszer, amely kezeli megnyomásával a tételt.
Így írunk:
A GUI kell tárolni területén a sejt. Mi hozza létre erre a célra egy kétdimenziós tömböt:
Most mi kell érteni az alapvető OpenGL funkciókat. Először is meg kell inicializálni.
Ugyanakkor, nem fogunk részletesen megvitassák, mert Lwjgl tanulmány nem szerepel a jelenlegi terveket. Másodszor, meg kell frissíteni a képernyőn:
És végül, meg kell festeni a képet általában. Ebből a célból, hogy itt az ideje, hogy befejezze a enum Sprite. Elemei lesz egy wrapper textúra olvasható nevek.
Most levelet módszer a GUI. hogy levonja az elemek:
Mi csak azt, hogy egyetlen módszer, hogy inicializálja a grafika, és a többi fogjuk írni a fő vezérlő osztály, visszatérve ide, csak kisebb változtatásokat.
Hozzon létre egy osztályt Cell. GUIElement megvalósítja az interfészt. A módszerek getWidth () és getHeight () visszatéríti állandó koordinátáit létrehoz egy olyan területen, amely indítja a tervező. Csak designer átutalja állam egy sejt, „-1”, ha az az enyém, „-2”, ha a bánya robbant, az aknák száma közelben más esetekben. Erre a célra, az egyik jönne egy ENUM, de a percek számát sokkal kényelmesebb, hogy készítsen mind egész, IMHO. Tehát, a tervező:
Két másik területen - logikai isMarked és logikai IsHidden feladata lesz, hogy a zászló sejt jelzett-e, és kinyitotta. Alapállapotban zászlók vannak kitéve hamis.
Mi meg fogja érteni a módszer getSprite ().
Ha a gomb megnyomása után ismét meg kell vizsgálni néhány egyszerű esetekben:
Ahhoz, hogy meg tudja nyitni, adjunk hozzá egy módszert a sejt elváltozások:
A könnyű végrehajtását a generátor, még több és ez a módszer:
Feldolgozás válaszok sejtekből
Visszatérve a módszer GUI.receiveClick (). Most már nem csak vissza az eredményt vissza, mert ha az eredmény az - az egyik, akkor meg kell nyitni a szomszédos sejtek és a fő ellenőrzési osztály zéró vissza, annak jeléül, hogy minden helyes volt.
Írás generátor
Ez a feladat nem nehezebb, mint létrehozni egy sor véletlenszerű logikai értékek. Az ötlet a következő - minden mátrixpont mi generál egy véletlen számot 0 és 100 között Ha a szám kevesebb, mint 15, akkor ezen a ponton a rekord tömb bánya (így egy esélyt, hogy megfeleljen az enyém - 15%). Írásban az enyém, hívjuk a sejtek körül incNearMines () metódust. valamint azok a sejtek, ahol a sejt nem jön létre egy speciális tárolja érték tömb.
Vezérigazgató osztály és üzembe
Fő osztály jön létre. ott módszer input - public static void main (String [] args). Ez a módszer lehetővé kell tennie, hogy két dolgot: hívja a GUI indítása és ciklikusan hívja a munkamódszerek (. Input () GUI.draw () és GUI.update ()), amíg meg nem kapja a záró jelet.
Itt nincs olyan eljárás input (). zaymomsya őket.
GUI.gameover () metódus egyszerűen hívja show () metódus az egyes sejtekben, ami azt mutatja, az egész területen: