-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathPeca.java
85 lines (64 loc) · 1.81 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
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
/**
* Representa uma Pe�a do jogo.
* Possui uma casa e um tipo associado.
*
* @author Alan Moraes <[email protected]>
* @author Leonardo Villeth <[email protected]>
* @author Aurenívia Gomes da Costa
*/
abstract class Peca {
protected Casa casa;
protected TipoDaPeca tipo;
protected CorDaPeca cor;
public Peca(Casa casa, TipoDaPeca tipo, CorDaPeca cor) {
this.casa = casa;
this.tipo = tipo;
this.cor = cor;
casa.colocarPeca(this);
}
/**
* Movimenta a peca para uma nova casa.
* @param destino nova casa que ira conter esta peca.
*/
public Boolean mover(Casa destino, Tabuleiro tabuleiro) {
//Default
Casa novaCasa;
novaCasa = this.casa;
this.casa.removerPeca();
destino.colocarPeca(this);
this.casa = destino;
if(this.casa != novaCasa) {
this.casa = novaCasa;
return true;
}
return false;
}
/**
* Verifica se a casa de destino não contém uma peça de sua cor.
*
*/
public Boolean verificaDestino(Peca origem, Casa destino ) {
Peca destinoPeca = destino.getPeca();
CorDaPeca corOrigem = origem.getCor();
if(destinoPeca instanceof Peca){
CorDaPeca corDestino = destinoPeca.getCor();
if(corOrigem != corDestino){
return true;
}
return false;
}
return true;
}
/**
* @return o tipo da peca.
*/
public TipoDaPeca getTipo() {
return tipo;
}
/**
* @return a cor da peca.
*/
public CorDaPeca getCor() {
return cor;
}
}