-
Notifications
You must be signed in to change notification settings - Fork 0
/
Peca.java
70 lines (56 loc) · 1.8 KB
/
Peca.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
public class Peca {
protected String tipo;
protected char cor;
Peca (String tipo, char cor) {
this.tipo = tipo;
this.cor = cor;
}
public boolean podeMover (int xInicial, int xFinal, int yInicial, int yFinal, Peca[][] t) {
//a posicao final e inicial esta dentro dos limites do tabuleiro
if (xInicial > 7 || xInicial < 0)
return false;
if (xFinal > 7 || xFinal < 0)
return false;
if (yInicial > 7 || yInicial < 0)
return false;
if (yFinal > 7 || yFinal < 0)
return false;
//a posicao inicial esta vazia
if (t[xInicial][yInicial].cor == '-')
return false;
//a posicao final nao esta vazia
if (t[xFinal][yFinal].cor != '-')
return false;
//se aposicao final e incial sao a mesma
if (xFinal == xInicial && yFinal == yInicial)
return false;
return true;
}
public boolean temCaptura (int xInicial, int xFinal, int yInicial, int yFinal, Peca[][] t) {
/*captura:
* a posicao final da peca deve conter a peca que deseja ser capturada
* a peca capturada tem que ser da cor oposta a peca que capturou
*/
//Se esta dentro do tabuleiro
if (xInicial > 7 || xInicial < 0)
return false;
if (xFinal > 7 || xFinal < 0)
return false;
if (yInicial > 7 || yInicial < 0)
return false;
if (yFinal > 7 || yFinal < 0)
return false;
//se a posicao inicial e final esta vazia
if (t[xInicial][yInicial].cor == '-')
return false;
if (t[xFinal][yFinal].cor == '-')
return false;
//se a peca na posicao final e da mesma cor que a peca da posicao inicial
if (t[xInicial][yInicial].cor == t[xFinal][yFinal].cor)
return false;
//se a posicao inicial e final sao a mesma
if (xInicial == xFinal && yInicial == yFinal)
return false;
return true;
}
}