OOP dag 9

Øvelser

Polymorfi

Prøv at putte FalskTerning-objekter i et Raflebaeger uden at ændre i Raflebaeger-klassen.
Bægeret har en tilføj()-metode, der tager en Terning, men det kan også tage en nedarving fra Terning (som FalskTerning jo er):

public class ToSeksere
{
        public static void main(String[] args)

                Raflebaeger bæger;
                boolean toSeksere;
                int antalForsøg;

                bæger = new Raflebaeger(0);   // opret et bæger med nul terninger
                bæger.tilføj( new FalskTerning1() );
                bæger.tilføj( new FalskTerning1() );
                bæger.tilføj( new FalskTerning1() );
                toSeksere=false;
...

Prøv det samme med LudoTerning-objekter (dette forudsætter at du ikke har ændres superklassens navn, d.v.s. at LudoTerning arver fra Terning).

Matadorspil

Prøv matadorspillet (version 1 - klasserne Felt, Gade, Helle, Rederi, Start, Spiller, og SpilMatador).

5.3.2 Opgaver

  1. Tilføj en Bryggeri-klasse til matadorspillet, og prøv, om det virker.
    Du kan evt. kopiere Gade.java i stedet for at skrive koden forfra. Husk at indsætte et bryggeri i felter-vektoren i main().
    På bryggerier afhænger lejen af, hvor stort et slag spilleren slog, da han landede på feltet, men lad foreløbig lejen være tilfældig.


Skak-spil (anbefalet kursusopgave)

Fra nu af og gennem resten af kurset skal I, sideløbende med de almindelige opgaver, arbejde på kursusopgaven. Egentligt må I selv om hvilken kursusopgave I laver, bare den overholder til kravene, nemlig at der bruges nedarving og polymorfi. Ønsker du ikke at lave den anbefalede skak-opgave er her nogle ideer til projekter

Klassen Brik har nu også metoden public void tegn(Graphics g) der tegner brikken ud fra dens x og y-position (lav den meget simpel til at begynde med, tegn f.eks bare en firkant - husk at gange x og y med 20 for at få skærmkoordinater).

Lad programmet tegne nogle brikker ved at kalde denne metode i forskellige brik-objekter med forskellige x og y-koordinater.

Definér en liste (Vector) af brikker. Initialiser den med nogle brikker fra applettens konstruktør eller init()-metode og brug den fra paint()-metoden.