Logo der Hochschule  
 aufwärts

Objektorientierte Programmierung (MI2),   29.03.2017

Wir wollen als Ziel die Benutzungsoberfläche für das Spiel Vier gewinnt erstellen. Dazu brauchen wir ein großes Fenster, in das wir Kreise zeichnen können, die wir mit den Farben Rot oder Gelb füllen können. Dieses Fenster soll ein Objekt einer Klasse GameFrame sein, die wir als nächstes schreiben. Erstellen Sie jedoch hierfür zunächst ein neues Package mit dem Namen viergewinnt.

Aufgabe 3:  

  1. Leiten Sie eine Klasse GameFrame von der Klasse JFrame ab. Legen Sie zunächst im Konstruktor der Klasse die gewünschten Eigen­schaften des Fensters fest (Größe, Position, Sichtbarkeit, Verhalten beim Schließen).

    Fügen Sie im Anschluss daran noch folgenden Programmcode zum Konstruktor hinzu:

    JPanel pnl1=new JPanel();
    pnl1.setBackground(Color.GREEN);
    add(pnl1, BorderLayout.CENTER);
    
    JPanel pnl2=new JPanel();
    pnl2.setBackground(new Color(50, 128, 20));
    add(pnl2, BorderLayout.SOUTH);
    
    JButton btn1=new JButton("Neues Spiel");
    pnl2.add(btn1);
    

    Hierdurch wird eine Aufteilung des Fensters in zwei Bereiche (Panels) bewirkt. Der obere Bereich soll später das Spielfeld von Vier gewinnt enthalten, der untere Bereich enthält die Schaltfläche "Neues Spiel". Die hier angegebenen Farben sind vorläufig – wählen Sie eine eigene ansprechende Farbgestaltung.

  2. Erstellen Sie im Package viergewinnt eine Klasse Main mit einer main-Methode und fügen Sie als einzige Anweisung den Aufruf
    new GameFrame();
    

    hinzu. Starten Sie anschließend das Programm.

  3. Leiten Sie eine Klasse PaintPanel von JPanel ab. Als zunächst einzigen Inhalt dieser Klasse überschreiben Sie die Methode paint, die von JPanel zur Verfügung gestellt wird und bei der Darstellung des Panels auf dem Bildschirm automatisch aufgerufen wird, in folgender Weise:
    @Override
    public void paint(Graphics gr)
    {
        super.paint(gr);
        gr.fillOval(40, 70, 40, 40);
    }
    

    Ersetzen Sie anschließend die erste Zeile in dem unter a) angegebenen Programm­stück durch

    JPanel pnl1=new PaintPanel();
    

    Starten Sie erneut das Programm. Wir haben jetzt einen Kreis auf die Zeichenfläche gezeichnet. Zeichnen Sie noch weitere geometrische Figuren auf die Zeichenfläche (Rechtecke, Linien usw.) und variieren Sie die Farben durch Aufrufe wie gr.setColor(Color.RED) vor dem Zeichnen der Figuren.

 

Wir wollen die Bruchrechnung weiter vervollständigen.

Aufgabe 4:  

Implementieren Sie die Methoden

public Bruch div(Bruch other)       // liefert das Ergebnis der Division this / other
private static int ggt(int a, int b)// liefert den größten gemeinsamen Teiler von a und b
private void reduce()               // teilt Zähler und Nenner durch deren ggt

 

Realisieren Sie die Division als Multi­plikation mit dem Kehrwert, indem Sie die Methoden mul und rec heranziehen.

Eine Implementierung der Funktion ggt finden Sie auf der Webseite über den euklidischen Algorithmus. Rufen Sie die Funktion reduce (Bruch kürzen) im Konstruktor der Klasse Bruch auf, so dass Brüche immer in gekürzter Form gespeichert werden.

Testen Sie Ihre Implementierung in der main-Funktion Ihrer Klasse TestBruch.

 

Bearbeiten im Labor ab 29.03.2017

Abnahme der fertig bearbeiteten Aufgaben 1-4 am 05.04.2017 und 06.04.2017 im Labor

 

 

 

up

 

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