Hello Wien!

Egyre trendibb megünnepelni a "Hellowien"-t, nézzük meg, hogy mit is ünneplünk ekkor, és írjunk hozzá egy programot. Kétségtelen, hogy a dátum egy kicsit hibás, de ekkora távlatból egy kis kerekítési hiba elmegy, a lényeg akkor is az, hogy „S nyögte Mátyás bús hadát Bécsnek büszke vára.”

Az első tabulátor-felületen látható az üdvözlő oldal, közben pedig zene szól a háttérben. A második oldalon a csatát „szimuláljuk”. Ez a felület további két részből áll. A baloldalon a harcosok névsora látható, a jobboldalon a csatatér. Méretek: A teljes panel-felület: 700*650, a harcosok listáját tartalmazó rész 240 pixel szélességű. Most csak egy-egy pötty jelzi a harcosokat, de ezt később lehet módosítani.

A harcosok adatai egy Derby adatbázisba kerülnek. A tábla neve: KATONAK.

Az adatbázisból létrehozott példányok egy rendezhető lista-modellbe kerülnek – a rendezési szempont a katonák sebzési értéke (minél erősebbek, annál nagyobb ez az érték). Mint az ábrán látható, mindegyik katonának van egy egyedi sorszáma is.

A rangtól függően más-más színű, de egyforma méretű pöttyök jellemzik őket. (A képen látható megoldásban a lovas parancsnok kék, a lovas piros, a gyalogos parancsnok zöld, a gyalogos sárga, a zászlós pink, bárki más fekete, de bármilyen más színt is kitalálhat.) Később esetleg sok minden másban is eltérhetnek egymástól.

A katonákat a nevük, egyedi sorszámuk definiálja. Mindegyik lőtt, és mindegyiket meglőtték (persze, ha szerencséje van, akkor nem, de elvileg mindkettő lehet). Ha lőtt, akkor erősödik, vagyis a sebzés értéke eggyel nő, ha meglőtték, akkor eggyel csökken, és ha negatívvá válik, akkor szegény katona meghal. Csak élő katona lőtt, és őt lehet meglőni.

A „Csatába” feliratú gomb hatására a listából kijelölt katonák harcba indulnak. Ez azt jelenti, hogy a csatatéren véletlen helyeken megjelennek az őket jellemző pöttyök. (Mivel akkor még nem volt légierő, ezért lehetőleg ne a levegőben jelenjenek meg, hanem – a háttérképtől függő magasságig, mondjuk, a panel valahány százalékának magasságáig.)

A gomb megnyomásakor szűnjön meg a kijelölés. (A gomb újbóli megnyomásakor a régi harcosok eltűnnek, újak kerülnek a csatatérre.)

Az a katona lőtt (vagy lövik meg), akire az egérrel rákattintunk. Ekkor valahány százalék eséllyel vagy meglövik, vagy ő lő. (Ezt a véletlen dönti el.)

Természetesen ennek megfelelően állandóan változik majd a listában látható sorrend, illetve ha egy katona meghal, akkor a listából is, csatatérről is töröljük.

Adatok: hello_wien_adatai

Rendezhető listamodell lehetséges kódja: RendezhetoListModel.java


A feladat megoldása előtt, illetve közben célszerű átnézni a következő fogalmakat:

Maven projekt, tervezési minták, singleton tervezés minta, gyártó függvény, rajzolás, zene - ezekhez pl. itt találhat referenciákat :

https://maven.apache.org/

NetBeans-Maven: http://www.areaofthoughts.com/2013/09/quick-start-guide-creating-java-maven.html

Eclipse-Maven: http://www.vogella.com/tutorials/EclipseMaven/article.html

https://en.wikipedia.org/wiki/Software_design_pattern

http://java.progtanulo.hu/25-tervezesi-mintak

https://www.tutorialspoint.com/design_pattern/index.htm

http://www.tutorialspoint.com/design_pattern/singleton_pattern.htm

https://www.tutorialspoint.com/design_pattern/factory_pattern.htm

https://docs.oracle.com/javase/8/docs/api/java/awt/Graphics.html

http://www.javazoom.net/index.shtml

https://stackoverflow.com/questions/16882354/how-to-play-pause-a-mp3-file-using-the-javazoom-jlayer-library


de persze bármely más, a témával foglalkozó anyag is jó lehet.


Egy lehetséges megoldás olvasható a következő pdf fájlban. Próbálja meg megérteni és megoldani a leírtak alapján.

hello_wien.pdf