-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathKnight.java
More file actions
40 lines (26 loc) · 942 Bytes
/
Knight.java
File metadata and controls
40 lines (26 loc) · 942 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
import java.util.ArrayList;
public class Knight extends Piece {
public Knight(Square position, int color) {
super(position, color);
}
@Override
public ArrayList<Square> getValidSquares() {
int row = this.getPosition().getNumber();
int column = this.getPosition().getLetter();
int oponentColor = (this.getColor() == PieceColor.WHITE) ? PieceColor.BLACK : PieceColor.WHITE;
Square intermediate;
ArrayList<Square> result = new ArrayList<Square>();
for(int i = -2; i <= 2; i++) {
for(int j = -2; j <= 2; j++) {
if(Math.abs(i) != Math.abs(j) && i != 0 && j != 0) {
if(Board.isSquareValid(row + i, column + j)){
intermediate = Board.translate(column + j, row + i);
if(intermediate.getPiece() == null || intermediate.getPiece().getColor() == oponentColor)
result.add(intermediate);
}
}
}
}
return result;
}
}