commit files uebung02
This commit is contained in:
52
uebung02/chess/Board.java
Normal file
52
uebung02/chess/Board.java
Normal file
@@ -0,0 +1,52 @@
|
||||
import java.io.PrintStream;
|
||||
import java.util.ArrayList;
|
||||
|
||||
class Board {
|
||||
ArrayList<Piece> Pieces;
|
||||
|
||||
Board() {
|
||||
this.Pieces = new ArrayList<Piece>();
|
||||
}
|
||||
|
||||
void add(Piece piece) {
|
||||
if (piece.board != this)
|
||||
throw new IllegalArgumentException("wrong board");
|
||||
if (piece.board.pieceAt(piece.row, piece.col) != null)
|
||||
throw new IllegalArgumentException("field is occupied");
|
||||
Pieces.add(piece);
|
||||
}
|
||||
|
||||
void printBoard(PrintStream out) {
|
||||
out.println(" 1 2 3 4 5 6 7 8");
|
||||
out.println(" +---+---+---+---+---+---+---+---+");
|
||||
for (int Row = 1; Row <= 8; Row++) {
|
||||
out.print("" + Row + " ");
|
||||
for (int Col = 1; Col <= 8; Col++) {
|
||||
final Piece p = pieceAt(Row, Col);
|
||||
final char c = p == null ? ' ' : p.charRep();
|
||||
out.print("| " + c + " ");
|
||||
}
|
||||
out.println("|");
|
||||
out.println(" +---+---+---+---+---+---+---+---+");
|
||||
}
|
||||
}
|
||||
|
||||
Piece pieceAt(int col, int row) {
|
||||
for (Piece p : Pieces)
|
||||
if (p.row == row && p.col == col)
|
||||
return p;
|
||||
return null;
|
||||
}
|
||||
|
||||
void check(PrintStream out) {
|
||||
for (Piece P1 : Pieces) {
|
||||
out.println(P1.showPiece());
|
||||
for (Piece P2 : Pieces)
|
||||
if (P1 != P2)
|
||||
if (P1.canCapture(P2))
|
||||
out.println(" can capture " + P2.showPiece());
|
||||
else
|
||||
out.println(" cannot capture " + P2.showPiece());
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user