package com.editev.chess.printer; import com.editev.chess.GameHTML; /** Prints the entire board. * * @see See the source here. */ public class BoardPrinter extends Printer { /** Prints just a single square. */ public static Printer squarePrinter = new SquarePrinter(); /** Prints the entire board. * @param game the GameHTML with the board status and PrintStream for this board. */ public void print( GameHTML game ) { if (game.target == NO_MOVE) game.counts.computePieceMoves( game ); // compute all starting moves else game.counts.computePieceTargets( game, game.target ); // compute all final moves. game.out.startTag( "\n" ); // target the table. for (game.moveCount = 0, game.square.row=0; game.square.row<8; game.square.row++) { // for each chessboard row. game.out.startTag( "\n" ); // target the row. for (game.square.column=0; game.square.column<8; game.square.column++) { // for each column in that row. squarePrinter.print( game ); // print the square. } game.out.endTag( "\n" ); // end the row. } game.out.endTag( "
\n" ); // end the table. } }