Föreläsningar  Lektioner  Examination  Länkar  <<

Uppgift6 är FRIVILLIG men ett kul sätt att fördjupa kunskaperna om objektorientering. Att få ihop en fungerande lösning för detta spel kräver också lite mer kod och svårare algoritmer än för de fyra föregående uppgifterna. Det du ska göra är att konstruera ett Memory-spel där de från början icke synliga bildparen ska slumpas ut i de förslagsvis 16 st brickor som tillsammans bygger upp detta spel. Lämpligt då att klassen Memory aggregeras av klassen Bricka. Varje instans av klassen Bricka har kod så att den själv kan ta ansvar för vilken bild den visar och hur den ska hantera de klickningar som görs på den. Ett sätt för brickorna att ta hand om musklicken är genom:
MouseListener ml = new MouseAdapter() {
    public void mousePressed(MouseEvent e){ ...

För att spelet ska bli någorlunda kul för den presumtive användaren så ska det även finnas ett sätt att hålla reda på antalet utförda klickningar. Tråkigt vore det ju också om bilderna hamnade på samma ställen vid varje omstart. För att undvika detta så ska bilderna slumpas ut. Detta kan t ex ske med hjälp av: Math.random()

DEL A: Rita upp ett klassdiagram för din lösning med hjälp av ArgoUML.

DEL B: Flytta sedan över dina klasser i javakod med bibehållen struktur och objektorientering. Bilderna går i en applikation att läsa in enligt: Toolkit.getDefaultToolkit().getImage(namn + ".gif");
Då det blir ett antal bilder så kan det vara praktiskt om kontainerklassen lagrar dem i en Image[] och sedan utnyttja arrayens index när bilderna ska slumpas ut.