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