-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathPawn.java
122 lines (109 loc) · 3.57 KB
/
Pawn.java
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
public class Pawn extends Piece{
boolean white;
ChessSlot space;
Image image;
ImageView imageView;
ChessSlot[][] array;
boolean isSelected;
boolean firstMove;
boolean whiteTurn;
public Pawn(boolean isWhite, ChessSlot chess, ChessSlot[][] gridArray) {
if(isWhite) {
image = new Image("whitepawn.png");
} else {
image = new Image("blackpawn.png");
}
imageView = new ImageView(image);
imageView.setFitHeight(40);
imageView.setFitWidth(28);
array = gridArray;
space = chess;
white = isWhite;
firstMove = true;
whiteTurn = true;
}
public void changeTurn(){
whiteTurn = !whiteTurn;
}
public boolean getTurn(){
return whiteTurn;
}
public ImageView getImageView() {
return imageView;
}
public void update() {
if(isSelected) {
int horz = space.getHorz();
int vert = space.getVert();
space.highlight();
if(white) {
boolean frontSpaceOpen = false;
for(int i = 0; i < 8; i++) {
for(int e = 0; e < 8; e++) {
ChessSlot other = array[i][e];
if(other.getHorz() == horz && other.getVert() == (vert + 1) && !other.hasPiece()) {
other.select(space);
frontSpaceOpen = true;
} else if(((other.getHorz() == (horz - 1)) || (other.getHorz() == (horz + 1))) && other.getVert() == (vert + 1)) {
if(other.hasPiece()) {
if(other.getPiece().isWhite() == false) {
other.select(space);
}
}
}
}
} if(firstMove & frontSpaceOpen & !array[vert + 2][horz].hasPiece()) {
array[vert + 2][horz].select(space);
}
} else {
boolean frontSpaceOpen = false;
for(int i = 0; i < 8; i++) {
for(int e = 0; e < 8; e++) {
ChessSlot other = array[i][e];
if(other.getHorz() == horz && other.getVert() == (vert - 1) && !other.hasPiece()) {
other.select(space);
frontSpaceOpen = true;
} else if(((other.getHorz() == (horz - 1)) || (other.getHorz() == (horz + 1))) && other.getVert() == (vert - 1)) {
if(other.hasPiece()) {
if(other.getPiece().isWhite() == true) {
other.select(space);
}
}
}
}
} if(firstMove & frontSpaceOpen & !array[vert - 2][horz].hasPiece()) {
array[vert - 2][horz].select(space);
}
}
}
}
public void selected() {
for(ChessSlot[] row : array) {
for(ChessSlot slot : row) {
slot.removeHighlight();
slot.deSelect();
}
}
isSelected = true;
update();
}
public void deselect() {
isSelected = false;
update();
}
public void move(ChessSlot newSlot) {
space = newSlot;
firstMove = false;
for(ChessSlot[] row : array) {
for(ChessSlot s : row) {
s.removeHighlight();
s.deSelect();
}
}
}
public boolean isWhite() {
return white;
}
}