Hogyan írjuk meg utász a java 15 percig

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: