Termékek
keresésmenumenumenu
lego logo
LEGO® készletek
Figurák, ajándékok LEGO® elemek Ajánlott termékek Újdonságok
(+36) 20 242 8992
0 
0 
theme

Bombázó játék

avatar HSzabi1
126 napló
Egyedi elemekből épült

Meglepő "építési" napló ez itt a LEGO építmények között, de még akkor sem idegen tőlük, ha ez egy kis video játék, hiszen a "konzol", amin fut, egy EV3 Brick, és annak programozása is modulok egymáshoz fűzésével történik, azaz folyamatábra szerű programokat kell építenünk a játék megalkotásához! 

 

Az EV3-hoz csak egyetlen Touch szenzor csatlakozik. 

 

 

Nem mellesleg a játékhoz "építettem" grafikusan egy bombázót is :-)

 

A játék maga egy klasszikus és igen egyszerű történet: repül egy 12 töltetet szállító bombázó a célterület felett, ahol a játékos a bpmbázótiszt és meg kell semmisítenie az ellenség épületeit a bombák megfelelő időpontban történő kioldásával. Három lehetséges végeredmény következhet be: sikerül mind az öt véletlenszerűen elhelyezkedő épületet telibe találni, vagy elfogynak a bombák és nem sikerül megsemmisíteni a megadott célobjektumokat, illetve nem fogynak el a bombák, de a repülő kénytelen üzemanyag fogyása miatt tovább repülni dolga végezetlenül, mert a bombázótiszt nem elég ügyes, hogy pontos találatai legyenek.

 

 Elsőnek nézzük, milyen egy pontos munkát végző bombázótiszt!

 

Onnan indult ez a történet, hogy kipróbáltam, milyen Bluetooth kapcsolattal programozni, vezérelni az EV3 Brick-et, nagyon professzionálisan működik a rendszer ezzel a kapcsolódással is, a két eszköz párosítása után már villám gyorsan létesíthető a kapcsolat a kocka és a keretprogram indítását követően.

 

 

A keretprogram ablakának jobb alsó részén látható a Brick vezérlő modul, annak van 3 "füle" (bal oldalt a kék az aktív), amelyeket váltva láthatjuk a kapcsolódás módját, az EV3 felirat mellett az akkumulátor töltöttségét (szaggatott vonal), a csatlakoztatott eszközöket (A,B,C,D - motoro portok, 1,2,3,4 - szenzor porok), az is látszik, hogy a 3-as portra dugot Touch szenzor éppen be van nyomva, mert 1-es az állapota! 

 

 

 A kocka memóriáját is tudjuk a keretprogramból felügyelni, törölhetünk feleslegessé vált adatokat, képeket, programokat, hang fileokat:

 

 

Ez a játékos oldaláról rém egyszerűnek nevezhető kis program megvalósítás szempontjából már kellően összetett és szórakoztató feladat! KI kell használnunk az EV3 programozásának jó néhály kedvező adottságát, alábbi képen csak a terjedelem és a felépítés módja látszik, kihasználtam a párhuzamos szálak által biztosított lehetőségeket, mely ágak között az infoprmáció átadás változók felhasználásával történt (szám és logikai változók illetve tömbök szerepelnek a programban):

 

 

Bal oldali ágban történik a változók definiálása, a véletlenszerű épületek pozíciójának generálása, itt be kellett iktatni egy olyan programrészt, amely felügyeli, hogy az 5 véletlen számban (5 épület) ne legyen két egyező, mert rendszeresen ilyen értékeket dobott magától a generátor:

 

 

 Minden érték generáláskor egy ötször lefutó ciklus kiolvassa a memória tömb értékeit és ha az aktuálisan 1-17 között generált véletlen szám egyezik a már korábban generáltakkal, akkor új véletlen generálást indít, ha nincs egyezés, akkor a tömb soron következő helyére beírja a generált értéket. Ha feltellt az 5 változósblokk, akkor jön a házak felrajzolása (még mindíg a bal oldali ágban vagyunk):

 

 

5-ször ismétlődő ciklus sorban kiolvassa a tömb értékeit, majd ezt "x" koordinátaként felhasználva 5 "házat épít" segítségükkel, melyk 5 pixel szélesek és 10 pixel magasak.

A jobb oldali ágak közül a legfelső "repteti" a repülőt, végig a kezdő sor "x" koordinátáin, majd ha eléri a képernyő jobb szélét, akkor meghatározott "magassággal" lejjebb kezdi a következő sort, a gép hatszor repül át a célterület felett, aztán vissza indul a bázisra, hogy legyen elég üzemanyga:

 

 

A második jobb oldali ág a bomba kioldását, repülését és detonálását vezérli, a harmadik program ág a találatokat figyeli:

 

 

Itt az az érdekesség, hogy az épületet az 5 pixel szélességében bárhol el lehet találni, hogy összeomoljon, ehhez egy szórás tartomány figyelést tettem a kódba. Ha a bomba az épület mellett robban, akkor látható sérülést okoz, de találatnak nem számít és nem is "omlik össze" a ház.

 

A győzelem figyelése a pontos találatok számának figyelésével valósult meg, amint a találatok száma változó értéke elérui az 5-öt, a program üdvkiáltás mellett egy sikert mutató kezet is felvillant a képernyőn, majd befejezi működését:

 

 

 

Ha Valakit érdekel ez a kis program, akkor ide kattintva letöltheti google drive-ról!

 

 

Technikai infó, hogy át lehet írni a programot egyszerűen, hogy még a Touch szenzor se kelljen hozzá, hanem pl. a BrickButton-ok közül az egyik indítsa a bombát, a "bomba" ciklus kezdő várakozásában kell csak átállítani a feltételt "Touch Sensor"-rúl "Brick Buttons"-ra:

 

 

 

Köszönöm, hogy elolvastad!

 

2017-02-09

 

 

 

 

 

 

Bombázó játékBombázó játékBombázó játékBombázó játékBombázó játékBombázó játékBombázó játékBombázó játékBombázó játékBombázó játékBombázó játékBombázó játék

2017 február 9, 23:00
avatar
habzsolt Egyetértek! Tényleg érthető a leírás! Nézegettem én is már egy ideje a dolgot, de még nem volt tervben. Most már van! Köszönöm az ismertetőt! 2017 február 11, szombat
avatar
HSzabi1 Szívesen! Gyorsan vegyél egyet mielőtt kifuttatják, nehogy a Boost-ot vegyétek meg, akkor inkább egy RCX-et ajánlanék :-) 2017 február 11, szombat

avatar
habzsolt Köszi a segítséget! Nézelődöm! 2017 február 13, hétfő

avatar
HSzabi1 Szívesen! 2017 február 14, kedd

avatar
good_lego_movie Így, hogy leírtad már sokkal jobban értem a működését, szépen bemutattad. :) Én szívesen kipróbálnám saját magam, ha megosztanád a programot, az építés nem bonyolult. :D 2017 február 10, péntek
avatar
HSzabi1 Rendben, a hét végény kiteszem a linket! Köszönöm az érdeklődést! :-) Ha az ember belefeledkezik, akkor igazából nem is olyan bonyolult :-) Nagyon jó az EV3 programozási lehetősége, egy igazi gyöngyszem a LEGO robotok között! 2017 február 10, péntek

avatar
HSzabi1 Megosztottam a Google Drive letöltő linket! 2017 február 12, vasárnap

avatar
good_lego_movie Köszi! A napokban ki fogom próbálni. :) 2017 február 12, vasárnap

avatar
HSzabi1 Szívesen, majd írd meg légyszi, hogy tetszett! 2017 február 12, vasárnap

avatar
good_lego_movie Rendben. 2017 február 12, vasárnap

avatar
HSzabi1 Már tervezem a Videoton TV teniszt két motor, mint "ütő" mozgató segítségével :-) 2017 február 12, vasárnap

avatar
good_lego_movie Nagy móka lenne! :D Szorítok, hogy sikerüljön. :) 2017 február 12, vasárnap

avatar
good_lego_movie Kipróbáltam, és szórakoztatóbb, mint gondoltam. A nehézség nagyon el van találva, az elsőre sikerült így? :) Egy idő után persze már viszonylag könnyen megy, de elsőre pont kihívás egy picit, pont annyira amennyire kell. Brick Button-nel talán könnyebb, de ha a markodban van a Touch Sensor, és a hüvelykujjaddal nyomod meg, akkor az autentikusabb, olyan, mint ha a szarvkormány tetején nyomná meg az ember a gombot. :D Csak egy apróság: jó lenne ha a játék végén, ha megnyered vagy elveszted, akkor, ha megnyomnád még egyszer az érzékelőt újra kezdené, lenullázva. Gratulálok hozzá, számomra ez egy teljesen új formája az EV3 felhasználásának, amit eléggé megkedveltem. :) 2017 február 14, kedd

avatar
HSzabi1 A nehézsége folyamatos paraméter állítások után alakult ki, az épületek automatikus elhelyezésének "szabályai" sem elsőre alakultak ilyenné, jó néhány órás szórakozást adott, mire ez a kis program elkészült, valóban jó lehetőségei vannak az EV3-nak e téren is! A marokban tartott, hüvejkujjas nyomógomb nekem is jobban tetszett! Köszönöm a tesztelést és a visszajelzést is! 2017 február 14, kedd

avatar
HSzabi1 hüvelyk :-D 2017 február 14, kedd

avatar
good_lego_movie Nincs mit, én játszottam egy jót. :D 2017 február 14, kedd