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 :
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
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.