
Model som
kan köras fristående i terminalfönstret, så här.
GGG RRR Välj 0-6: 2 GG GRRR Välj 0-6: 4 GGRG RR Välj 0-6:Utom
main (som är en oändlig slinga) har Model två metoder
som anropas
move(2); //gör ett drag med ruta 2 om det går, annars ingenting get(5); //returnerar färgen (0, 1 eller 2) på ruta 5Det är listigt att ha en variabel
tom som anger index för tomma rutan. Metoderna kan nu
anropas från den applet, som ska vara din View.
Ruta som är en Button med en extra
set-metod, så att man kan skriva
ruta[i].set(0); //Knappen blir vit ruta[i].set(1); //Knappen blir grön ruta[i].set(2); //Knappen blir rödKlassen
Ruta är en inre klass i appleten. När rutorna skapats måste
dom få lyssnare av typen ActionListener. Tänk efter om lyssnaren bör
vara en yttre klass, en inre klass, en anonym klass eller en redan existerande
containerklass.
Förmodligen har du en enda actionPerformed(ActionEvent e) som ska ta
hand om alla sju knapparnas händelser. Hur får man reda på vilken knapp som har
genererat händelsen? Ett sätt är att i en for-slinga testa igenom alla
ruta[i] och se om någon är lika med e.getSource().
Extrauppgift: Låt det vara grodor som hoppar åt höger
och pingviner som hoppar åt vänster.