Skip to content

Commit adace95

Browse files
committed
Pawn
1 parent a34e134 commit adace95

File tree

2 files changed

+93
-5
lines changed

2 files changed

+93
-5
lines changed

src/chess/ChessMatch.java

Lines changed: 25 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
import boardgame.Piece;
99
import boardgame.Position;
1010
import chess.pieces.King;
11+
import chess.pieces.Pawn;
1112
import chess.pieces.Rook;
1213

1314
public class ChessMatch {
@@ -192,11 +193,30 @@ private void placeNewPiece(char column, int row, ChessPiece piece) {
192193
}
193194

194195
private void initialSetup() {
195-
placeNewPiece('h', 7, new Rook(board, Color.WHITE));
196-
placeNewPiece('d', 1, new Rook(board, Color.WHITE));
197-
placeNewPiece('e', 1, new King(board, Color.WHITE));
196+
placeNewPiece('a', 1, new Rook(board, Color.WHITE));
197+
placeNewPiece('e', 1, new King(board, Color.WHITE));
198+
placeNewPiece('h', 1, new Rook(board, Color.WHITE));
199+
placeNewPiece('a', 2, new Pawn(board, Color.WHITE));
200+
placeNewPiece('b', 2, new Pawn(board, Color.WHITE));
201+
placeNewPiece('c', 2, new Pawn(board, Color.WHITE));
202+
placeNewPiece('d', 2, new Pawn(board, Color.WHITE));
203+
placeNewPiece('e', 2, new Pawn(board, Color.WHITE));
204+
placeNewPiece('f', 2, new Pawn(board, Color.WHITE));
205+
placeNewPiece('g', 2, new Pawn(board, Color.WHITE));
206+
placeNewPiece('h', 2, new Pawn(board, Color.WHITE));
198207

199-
placeNewPiece('b', 8, new Rook(board, Color.BLACK));
200-
placeNewPiece('a', 8, new King(board, Color.BLACK));
208+
209+
placeNewPiece('a', 8, new Rook(board, Color.BLACK));
210+
placeNewPiece('e', 8, new King(board, Color.BLACK));
211+
placeNewPiece('h', 8, new Rook(board, Color.BLACK));
212+
placeNewPiece('a', 7, new Pawn(board, Color.BLACK));
213+
placeNewPiece('b', 7, new Pawn(board, Color.BLACK));
214+
placeNewPiece('c', 7, new Pawn(board, Color.BLACK));
215+
placeNewPiece('d', 7, new Pawn(board, Color.BLACK));
216+
placeNewPiece('e', 7, new Pawn(board, Color.BLACK));
217+
placeNewPiece('f', 7, new Pawn(board, Color.BLACK));
218+
placeNewPiece('g', 7, new Pawn(board, Color.BLACK));
219+
placeNewPiece('h', 7, new Pawn(board, Color.BLACK));
220+
201221
}
202222
}

src/chess/pieces/Pawn.java

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
package chess.pieces;
2+
3+
import boardgame.Board;
4+
import boardgame.Position;
5+
import chess.ChessPiece;
6+
import chess.Color;
7+
8+
public class Pawn extends ChessPiece {
9+
10+
public Pawn(Board board, Color color) {
11+
super(board, color);
12+
}
13+
14+
@Override
15+
public boolean[][] possibleMoves() {
16+
boolean[][] mat = new boolean[getBoard().getRows()][getBoard().getColumns()];
17+
18+
Position p = new Position(0, 0);
19+
20+
if (getColor() == Color.WHITE) {
21+
p.setValue(position.getRow() - 1, position.getColumn());
22+
if (getBoard().positionExists(p) && !getBoard().thereIsAPiece(p)) {
23+
mat[p.getRow()][p.getColumn()] = true;
24+
}
25+
if (getColor() == Color.WHITE) {
26+
p.setValue(position.getRow() - 2, position.getColumn());
27+
Position p2 = new Position(position.getRow() - 1, position.getColumn());
28+
if (getBoard().positionExists(p) && !getBoard().thereIsAPiece(p) && getBoard().positionExists(p2)
29+
&& !getBoard().thereIsAPiece(p2) && getMoveCount() == 0) {
30+
mat[p.getRow()][p.getColumn()] = true;
31+
}
32+
}
33+
p.setValue(position.getRow() - 1, position.getColumn() - 1);
34+
if (getBoard().positionExists(p) && isThereOpponentPiece(p)) {
35+
mat[p.getRow()][p.getColumn()] = true;
36+
}
37+
p.setValue(position.getRow() - 1, position.getColumn() + 1);
38+
if (getBoard().positionExists(p) && isThereOpponentPiece(p)) {
39+
mat[p.getRow()][p.getColumn()] = true;
40+
}
41+
}
42+
else {
43+
p.setValue(position.getRow() + 1, position.getColumn());
44+
if (getBoard().positionExists(p) && !getBoard().thereIsAPiece(p)) {
45+
mat[p.getRow()][p.getColumn()] = true;
46+
}
47+
p.setValue(position.getRow() + 2, position.getColumn());
48+
Position p2 = new Position(position.getRow() - 1, position.getColumn());
49+
if (getBoard().positionExists(p) && !getBoard().thereIsAPiece(p) && getBoard().positionExists(p2) && !getBoard().thereIsAPiece(p2) && getMoveCount() == 0) {
50+
mat[p.getRow()][p.getColumn()] = true;
51+
}
52+
p.setValue(position.getRow() + 1, position.getColumn() - 1);
53+
if (getBoard().positionExists(p) && isThereOpponentPiece(p)) {
54+
mat[p.getRow()][p.getColumn()] = true;
55+
}
56+
p.setValue(position.getRow() + 1, position.getColumn() + 1);
57+
if (getBoard().positionExists(p) && isThereOpponentPiece(p)) {
58+
mat[p.getRow()][p.getColumn()] = true;
59+
}
60+
}
61+
return mat;
62+
}
63+
64+
@Override
65+
public String toString() {
66+
return "P";
67+
}
68+
}

0 commit comments

Comments
 (0)