1 package com.webstersmalley.chessweb.model;
2
3 import org.apache.commons.logging.Log;
4 import org.apache.commons.logging.LogFactory;
5
6 /***
7 * Represents a standard chess board. ie an 8x8 board, with the pieces laid out
8 * in the usual way.
9 *
10 * @author Matthew Smalley
11 */
12 public final class StandardBoard extends Board {
13 /*** Logger for the class. */
14 private final Log logger = LogFactory.getLog(getClass());
15
16 /*** Width of the board. */
17 private static final int STANDARD_BOARD_WIDTH = 8;
18
19 /*** Height of the board. */
20 private static final int STANDARD_BOARD_HEIGHT = 8;
21
22 /***
23 * Construct a new Standard chess board. Creates it with the 8x8 size, plus
24 * places the pieces in their start positions.
25 */
26 public StandardBoard() {
27 logger.debug("Creating a new standard board");
28 this.setWidth(STANDARD_BOARD_WIDTH);
29 this.setHeight(STANDARD_BOARD_HEIGHT);
30 setup();
31 for (int i = 0; i < Piece.ALL_PIECES.length; i++) {
32 Piece piece = Piece.ALL_PIECES[i];
33 logger.debug("Positioning the " + piece.getName() + "s");
34 String[] startingPositions = piece.getStartingPositions()
35 .split(":");
36 for (int j = 0; j < startingPositions.length; j++) {
37 place(new Position(startingPositions[j]), piece);
38 }
39 }
40 setNextTurn(Team.WHITE);
41 }
42 }