Java: Reversi Spielbrett

Slides:



Advertisements
Ähnliche Präsentationen
der Universität Oldenburg
Advertisements

DVG Einfache Klassen Einfache Klassen. DVG Einfache Klassen 2 Strukturen Beispiel: Personendaten bestehen aus –String name –String vorname.
Java: Programmierung grafischer Oberflächen
Threads Richard Göbel.
Spielbäume Richard Göbel.
Sortieren mit Binären Bäumen
Java: Objektorientierte Programmierung
FH-Hof Geometrie Richard Göbel. FH-Hof Aufbau des virtuellen Universums.
Java2D Richard Göbel.
FH-Hof Interaktion Richard Göbel. FH-Hof Interaktion mit der Klasse Behavior Behavior-Objekte sind Knoten des Szenengraphen. Behavior-Objekte werden durch.
Java: Programmierung grafischer Oberflächen
FH-Hof Reversi: Erweiterungen für den AutoClient Richard Göbel.
Einführung in die Programmierung von 3D-Grafiken Basis ist Java3D
Listen Richard Göbel.
FH-Hof Servlets Richard Göbel. FH-Hof Konzept Servlets werden auf der Server-Seite durch ein Formular aufgerufen werten die Eingaben aus einem Formular.
Indirekte Adressierung
FH-Hof Sockets in Java Richard Göbel. FH-Hof Kommunikation über das Internet - Grundlagen Ein Rechner wird im Internet über die so genannte IP- Adresse.
Einfache Komponenten in SWING
FH-Hof Verwaltung von Zeichenketten Richard Göbel.
Java: Grundlagen der Sprache
FH-Hof Interaktion Richard Göbel. FH-Hof Interaktion mit der Klasse Behavior Behavior-Objekte sind Knoten des Szenengraphen. Behavior-Objekte werden durch.
FH-Hof Java3D - Grundlagen Richard Göbel. FH-Hof Java3D Konzept Erzeugung eines Szenengraphen als virtuelle Welt Darstellung der virtuellen Welt mit Hilfe.
FH-Hof Java 2D - Kontext für Zeichenoperationen Richard Göbel.
Java: Referenzen und Zeichenketten
FH-Hof Java Packages Richard Göbel. FH-Hof Das Modulkonzept für Java Packages dienen zur Strukturierung größerer Java- Programme Ein Package kann: eigene.
Java: Grundlagen der Objektorientierung
FH-Hof Fehlerbehandlung Richard Göbel. FH-Hof Konzept Fehler können mit dem Operator throw einer übergeordneten Funktion signalisiert werden. Parameter.
Klassenvariable (auch Klassendaten bzw. statische Attribute genannt) und statische Methoden.
Ein Beispiel in Java.
Konstruktoren.
WHILE - Anweisung. Aufgabe : Ausgabe aller ganzen Zahlen von 0 bis 100 auf dem Bildschirm.
Interface bzw. Schnittstelle anschaulich: Hüllenklasse
FOR Anweisung. Aufgabe : Ausgabe aller ganzen Zahlen von 0 bis 100 auf dem Bildschirm.
DO...WHILE Anweisung.
Sommersemester 2003 Lars Bernard
Sommersemester 2004 Jan Drewnak Entwicklung und Einsatz von Geosoftware I Praktikum Sitzung 8 Sitzung 8: Zeichnen in Java.
Praktikum Entwicklung und Einsatz von Geosoftware I - Sitzung 3 Klassen, Objekte, Arrays und Kontrollstrukturen Sommersemester 2003 Lars Bernard.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Gerhard Gröger, Dipl.-Ing. D. Dörschlag Einführung in die Programmierung mit Java.
Abstrakter Datentyp in C++ I - Klasse -
1DVG3 - Eventbehandlung Eventbehandlung. DVG3 - Eventbehandlung 2 Events Events sind externe Ereignisse, die parallel zum normalen Programmablauf auftreten.
1DVG3 - Paint Paint ein Zeichenprogramm. DVG3 - Paint 2 Paint – ein Zeichenprogramm.
DVG1 - Applets1 Applets. DVG1 - Applets2 Die Klasse Applet n Applets sind Grafikobjekte, die unter Steuerung eines anderen Programms (z.B. eines Browsers,
1DVG3 - anonyme Klassen Anonyme Klassen. DVG3 - anonyme Klassen 2 Syntax new BasisKlasse(Parameterliste) { Modifikationen und Erweiterungen der Basisklasse.
DVG Interfaces. DVG mehrfache Vererbung 4 Mehrfache Vererbung ist die Ableitung einer Klassen von mehreren anderen Klassen. –farbigerPunkt.
07-GraphischeObjekte Graphische Objekte in EMMA301Paint.
DVG Klassen und Objekte
DVG Einfache Klassen 1 Einfache Klassen. 2DVG Einfache KlassenStrukturen Beispiel: Personendaten bestehen aus String name String name.
12-Drucken Drucken in JAVA. 12-Drucken2 Probleme beim Drucken: Es können nur graphische Informationen gedruckt werden. Die zu druckende Information muss.
Klassen 02 - Klassen.
06-EMMA-GUI Das EMMA-GUI. 06-EMMA-GUI 2 Aufteilung des Bildes (Applikation) Menü - Balken Dateiwerkzeuge Zeichenwerkzeuge Meldungen, Informationen, Fehler.
Template Pattern Richard Göbel.
FH-Hof 1 XML-Parser Richard Göbel. FH-Hof 2 XML-Parser- DOM Object Tree Parser Objekt der Klasse 'DocumentBuilderFactory' mit 'newInstance()' erzeugen.
FH-Hof Java2D - Grundlagen Richard Göbel. FH-Hof Java2D - Funktionen Java2D unterstützt: das Zeichnen von Grafiken die Darstellung von Texten die Darstellung.
Seite 1 Interface - Konzept Ein Interface führt einen neuen Datentyp ein: interface Frau {... } Das Interface enthält Deklarationen ( keine Definitionen.
FH-Hof Adapter & Facade Pattern Richard Göbel. FH-Hof Motivation Gegeben ist eine Klasse mit vorhandenen Methoden Gefordert ist eine Klasse, die ein bestimmtes.
FH-Hof Singleton Pattern Richard Göbel. FH-Hof Motivation Bestimmte Klassen sollen nur ein Objekt haben Nur ein Fabrikobjekt für eine Fabrikklasse Zentraler.
Sitzung 3: Klassen, Objekte, Arrays und Kontrollstrukturen
Java: Programmierung grafischer Oberflächen
Klassendefinitionen in Java
CuP - Java Elfte Vorlesung Montag, 11. November 2002.
Learning By Doing Ereignissteuerung (Events) prozedural ereignisgesteuert Unterprogrammaufruf an fest codierter Stelle Wann immer der Event auftritt, führe.
Programmiervorkurs WS 2014/15 Methoden
Java-Kurs - 8. Übung Besprechung der Hausaufgabe.
Java-Kurs Übung Benutzeroberflächen und Graphik
Java-Kurs Übung Benutzeroberflächen und Graphik Frames (Fenster)
Java-Kurs Übung Besprechung der Hausaufgabe
Vererbung in Java. public abstract class Form { protected int breite; protected int hoehe; protected String farbe; /** * Erzeuge eine Form der Breite.
Java-Kurs Übung Klassen und Objekte: Vererbung (Fortsetzung)
Die Klasse Vielfrass in Java
Reklursive Grafiken Teil I
 Präsentation transkript:

Java: Reversi Spielbrett Richard Göbel

Darstellung des Spielbretts

Interne Darstellung des Spielbretts class ReversiBoard { public byte [][] board = new byte[8][8]; public static final byte RED = -1; public static final byte EMPTY = 0; public static final byte GREEN = 1; . . . }

Definition eigener Komponenten - Das Reversibrett class ReversiBoard { public ReversiBoard() {...} public LinkedList validMoves (byte col){...} public boolean doMove(byte col, BoardPos p){...} public boolean finished(byte col){...} public byte winner(){...} }

Implementierung der internen Darstellung

Grafische Darstellung des Spielbretts - Darstellung auf dem Bildschirm

Grafische Darstellung des Spielbretts - Ansatz Definition einer eigenen Komponente als Unterklasse von JComponent Verwendung der Methode ‚paint‘ zum „Malen“ des Spielbretts Attribute enthalten die darzustellende Information (hier ReversiBoard)

Grafische Darstellung des Spielbretts - Methode paint public void paint (Graphics g){ Graphics2D g2 = (Graphics2D) g; . . . g2.setStroke(new BasicStroke( . . . )); g2.draw(new Line2D.Double( . . .)); g2.setPaint(. . . ); g2.fill (new Ellipse2D.Double( . . . )); }}

Grafische Darstellung des Spielbretts - Aufbau der Klasse für die Darstellung class ReversiDisplay extends JComponent { public ReversiBoard rb = . . . ; public ReversiDisplay(){ setBackground(. . .); setForeground(. . .);} public void paint (Graphics g){ . . . }

Implementierung der Grafik

Eingabe mit der Maus

MouseAdapter für das ReversiBoard class ReversiDisplay { . . . class ReversiListener() extends MouseAdapter { public void mouseClicked(MouseEvent e) {...} } public ReversiDisplay() { addMouseListener(new ReversiListener());

MouseAdapter als Anonyme Klasse class ReversiDisplay { . . . public ReversiDisplay() { addMouseListener(new MouseAdapter() { public void mouseClicked(MouseEvent e) { selX = e.getX(); selY = e.getY(); } });

Implementierung der Eingabe