kramann.info
© Guido Kramann

Login: Passwort:










Informatik3
1 Vom_struct_zur_Klasse
..1.1 Vom_struct_zur_Klasse
..1.2 struct_Programm
..1.3 Klassen_Programm
..1.4 Offene_Fragen
..1.5 Historie
..1.6 Objektabstraktion
..1.7 OO_Kundenverwaltung
..1.8 Objektfaehigkeiten
..1.9 Formatierung
..1.10 Motivation
..1.11 Uebung1
..1.12 Uebung2
2 UML
..2.1 Volumenberechnung
..2.2 UML_Klassendiagramm
..2.3 Konstruktor
..2.4 Statische_Variable
3 Strings
..3.1 Klassenbibliotheken
..3.2 stringUML
..3.3 Uebung3
4 Initialisierungen
4 bluej
5 Zeiger_und_Arrays
..5.1 Zeiger
..5.2 Zeiger_und_Funktion
..5.3 Uebung4
6 Vererbung
..6.1 MesswerteUML
..6.2 MesswerteProgramm
..6.3 VererbungsProgramm
..6.4 Vector
..6.5 Uebung
7 Modifikatoren
..7.1 public_Vererbung
..7.2 protected_Vererbung
8 Listen_und_Templates
..8.1 Containertypen
....8.1.1 ListeUML
....8.1.2 ListeProgramm
..8.2 Templates
....8.2.1 Listentemplate
....8.2.2 STLvectorTemplate
..8.3 Uebung5
..8.4 Uebung6
..8.5 Uebung7
9 Java
..9.1 Uebung
..9.2 GettingStarted
..9.3 Animation
..9.4 Hybrid
..9.5 Threads
10 Delegation
11 LayoutProjekt
12 Fenster
13 Uebung
14 Zwischenprojekt
..14.1 Befehle
..14.2 Planung
..14.3 JNI
..14.4 JNIumsetzen
..14.5 Anwendungsklasse
..14.6 GUI01
..14.7 GUI02
15 Rasterlayout
..15.1 Bilder_Packages
..15.2 interfaces
..15.3 ArrayList
..15.4 clone
..15.5 Uebung
16 Nuetzliches
..16.1 Threads
..16.2 Animation
..16.3 RungeKutta
..16.4 Loesungsansatz
..16.5 Internetprogrammierung
....16.5.1 Codegenerierung
....16.5.2 PHP_Programmierung
....16.5.3 PHP_OOP
....16.5.4 Java
17 Algorithmen
..17.1 RungeKutta
..17.2 Loesungsansatz
..17.3 Evoopt
..17.4 Uebung12
..17.5 Uebung8_2014
..17.6 Ausdruecke
18 Uebung10
19 UML_ALT
..19.1 Flaechenberechnung
..19.2 UML_Flaechenberechnung
..19.3 Implementierung
..19.4 ListeUML
..19.5 ListenImplementierung
..19.6 Anwendung
kramann.info
© Guido Kramann

Login: Passwort:




Übung 5

Übung zum 06.11.2014
vorl_oop_2014_11_05.zip - Material aus der Vorlesung

In der Vorlesung wurde ein umfangreicheres Programmierprojekt in Java begonnen: Die Programmierung eines Tic-Tac-Toe-Spiels, das letzten Endes gegen den Computer gespielt werden können soll.

Teilweise wurden Elemente im Vorgriff verkürzt behandelt, die dann erst im weiteren Verlauf der Vorlesung noch einmal in ausführlicher Version aufgegriffen werden. - Dies soll insbesondere zur besseren Motivation von deren Einführung dienen.

Aufgabe

Erstellen Sie eine Basisversion von Tic-Tac-Toe auf der Grundlage der zur Verfügung gestellten Mittel.

Um passende Methoden zu finden, sollte reger Gebrauch der Referenzen gemacht werden (API-Dokumentation).

Der Weg zur Basisversion sollte so beschaffen sein, dass aus jedem Schritt ein funktionierendes Programm resultiert (agiler Ansatz). Dies ist im folgenden in Form nacheinander zu erreichender Teilziele formuliert, wobei die Angabe ticxxx einfach den Ordner bezeichnet, in dem das BlueJ-Projekt steht. Jedes Nachfolgeprojekt beginnt in einer Kopie des Vorgängerprojektes:

  1. tic001 Fenster mit animiertem Ball und Mausklickreaktion (Ausgangspunkt, s. Vorlesungsmaterial)
  2. tic002 Raster für Tic-Tac-Toe wird angezeigt.
  3. tic003 Beim Hineinklicken in das Raster werden abwechselnd Kreuze und Kreise eingezeichnet und bleiben dort auch sichtbar.
  4. tic004 Programm reagiert nicht, wenn in ein bereits belegtes Feld geklickt wird.
  5. tic005 Programm erkennt nach einem Klick, ob der der gerade dran war gewonnen hat und ob alle Felder voll sind (unentschieden) und zeigt beides auf geeignete Weise an.
  6. tic006 Verbesserung der Programmarchitektur durch Trennen in GUI-Teil / Package und Logikteil / Package.
  7. tic007 Variante, bei der gegen den Computer gespielt wird. Dieser macht regelgerechte Zufallszüge (s. Klasse java.util.Random).
  8. tic008 Computer spielt optimal, d.h. er führt immer den in der jeweiligen Situation besten Zug aus.
  9. tic009 Es gibt Menüpunkte für Spielstart / Neustart / Zu zweit spielen, oder gegen den Computer.
Arbeiten Sie am besten gemeinsam in Gruppen, um das grundsätzliche Vorgehen zu diskutieren und dann alleine aber im informativen Austausch, um das Konzept umzusetzen.