Logo der Hochschule  
 aufwärts

Objektorientierte Programmierung (MI2),   17.05.2017

Aufgabe 17:  Bevor Sie mit der folgenden Aufgabe weitermachen, lesen Sie die bisherige Musterimplementierung durch und bringen Sie Ihr Programm gegebenen­falls auf den ent­sprechenden Stand.

 

Aufgabe 18:  

Wir wollen nun auf zwei Spielfeldern mit zwei Spielern spielen (wie in Vorlesung 9 vorgeführt).

  1. Schalten Sie wie in Vorlesung 9 angegeben das Interface Player zwischen die Klassen PaintPanel und Observer (indem nunmehr PaintPanel implements Player  und  Player extends Observer).
  2. Schalten Sie ferner die Klasse Configuration wie in Vorlesung 9 angegeben vor die Klasse Board (nunmehr ist Configuration anstelle von Board von Observable abgeleitet).
  3. Ändern Sie anschließend die main-Methode in folgender Weise:
    public static void main(String[] args)
    {
        // zwei Spielfelder erzeugen und mit den
        // Spielfarben 0 (=rot) und 1 (=gelb) versehen:
        GameFrame f0=new GameFrame();
        GameFrame f1=new GameFrame();
        f0.pnl1.setColor(0);
        f1.pnl1.setColor(1);
        // Anfangs-Spielstellung erzeugen und den beiden
        // Spielern zum darauf Spielen übergeben:
        Configuration config=Configuration.startConfiguration();
        f0.pnl1.setConfiguration(config);
        f1.pnl1.setConfiguration(config);
    }
    
  4. Führen Sie die von Eclipse vor­geschlagenen Änderungen durch: das Attribut pnl1 in der Klasse GameFrame als PaintPanel deklarieren und public machen, ferner die Methoden setColor und setConfiguration in der Klasse PaintPanel implementieren.

    Für setColor benötigt die Klasse PaintPanel ein Attribut mycolor als Spielfarbe. Diese Farbe wird dann bei mousePressed dem auszuführenden Spielzug mitgegeben.

  5. Da wir nun in der Klasse GameFrame eine startConfiguration und damit ein emptyBoard erzeugen und mit setConfiguration an das ent­sprechende PaintPanel übergeben, müssen wir im Konstruktor von PaintPanel die bisherige Zeilen
    board=Board.emptyBoard();
    board.addObserver(this);    // als Observer beim Observable board anmelden
    

    löschen. Anstelle dessen fügen wir in der Methode setConfiguration, nachdem wir dort die Configuration übergeben haben, folgende Zeile ein:

    config.addObserver(this);
    
  6. Schön wäre es natürlich, wenn die beiden GameFrames gleich beim Start des Programms in geeigneter Positionierung auf dem Bildschirm erscheinen würden (mit setLocation positionieren).

 

Wenn alles fertig ist, können wir jetzt mit zwei Personen das Spiel Vier gewinnt auf dem Bildschirm spielen. Es fehlt noch die Kontrolle darüber, ob ein Spieler gewonnen hat. Dies programmieren wir in der nächsten Laborübung. Und danach erstellen wir einen Computer-Spieler.

 

 

Bearbeiten im Labor ab 17.05.2017

 

 

 

up

 

homeH.W. Lang   Hochschule Flensburg   lang@hs-flensburg.de   Impressum   ©  
Valid HTML 4.01 Transitional