Ola pessoal…
Tou criando um jogo para materia da faculdade, e nao estou encontrando o pq a minha peça nao se move para baixo e nem para a direita, somente para cima e para a esquerda…
estou precisando muito arrumar este erro…
package gamecontrole;
public class ControlePlay
{
private int controlClick = 1;
private int antX;
private int antY;
private Imagens tab;
private int numPecas;
private boolean over;
private boolean center;
private int i_30_,i_31_,i_32_,i_33_;
public ControlePlay(Imagens imagens) {
tab = imagens;
numPecas = 17;
over = false;
center = false;
}
public void setControlClick(int i) {
controlClick = i;
}
public void play(int i, int i_0_) {
boolean bool = false;
boolean bool_1_ = false;
boolean bool_2_ = false;
boolean bool_3_ = false;
String string = new String();
int i_4_ = i / 80;
int i_5_ = i_0_ / 80;
if (isValid(i_4_, i_5_)) {
if (controlClick == 1) {
antX = i_4_;
antY = i_5_;
setControlClick(2);
} else {
int i_6_ = (i_4_ + antX) / 2;
int i_7_ = (i_5_ + antY) / 2;
if (i_30_ == 0 && i_31_ == 2 || i_30_ == 2 && i_31_ == 0 || i_30_ == 2 && i_31_ == 2){
if (tab.getPiece(i_6_, i_7_).equals("2"))
processPlay(i_6_, i_7_, i_4_, i_5_);
setControlClick(1);
}
else {
if (tab.getPiece(i_6_, i_7_).equals("3"))
processPlay(i_6_, i_7_, i_4_, i_5_);
setControlClick(1);
}
}
}
}
private boolean isValid(int i, int i_8_) {
boolean bool = false;
String string = new String();
boolean bool_9_ = false;
boolean bool_10_ = false;
string = tab.getPiece(i, i_8_);//<<<<
if (!string.equals(“1”)) {
if (controlClick == 1) {
if (string.equals(“4”))
bool = true;
} else if (string.equals(“3”)) {
int i_11_ = Math.abs(antX - i);
int i_12_ = Math.abs(antY - i_8_);
if (i_11_ == 0 && i_12_ == 1 || i_11_ == 1 && i_12_ == 0 || i_11_ == 1 && i_12_ == 1)
bool = true;
//comer
else if (i_11_ == 0 && i_12_ == 2 || i_11_ == 2 && i_12_ == 0 || i_11_ == 2 && i_12_ == 2){
bool = true;}
else {
bool_9_ = bool_10_ = false;
setControlClick(1);
}
i_30_=i_11_;
i_31_=i_12_;
i_32_=i_11_;
i_33_=i_12_;
} else {
bool = false;
setControlClick(1);
}
}
return bool;
}
private void processPlay(int i, int i_13_, int i_14_, int i_15_) {
tab.setPiece(antX, antY, "3");
tab.setPiece(i, i_13_, "3");
tab.setPiece(i_14_, i_15_, "4");
if (i_30_ == 0 && i_31_ == 2 || i_30_ == 2 && i_31_ == 0 || i_30_ == 2 && i_31_ == 2){
numPecas--;}
else {
numPecas=numPecas;}
}
public int getNumPieces() {
return numPecas;
}
public boolean isOver() {
String[][] strings = new String[7][];
strings = tab.getTab();
if (numPecas < 20 && !over) {
if (numPecas != 1) {
if (!canPlay(strings))
over = true;
} else {
over = true;
boolean bool = false;
boolean bool_16_ = false;
int i = 0;
int i_17_;
if (i_30_ == 0 && i_31_ == 2 || i_30_ == 2 && i_31_ == 0 || i_30_ == 2 && i_31_ == 2){
for (i_17_ = 0; i_17_ < strings.length && !bool; i_17_++) {
for (i = 0; i < strings.length; i++) {
if (strings[i_17_][i].equals("2")) {
bool = true;//
break;
}
}
}
}
else {
for (i_17_ = 0; i_17_ < strings.length && !bool; i_17_++) {
for (i = 0; i < strings.length; i++) {
if (strings[i_17_][i].equals("3")) {
bool = true;//
break;
}
}
}
}
if (i_17_ == 4 && i == 3)
center = true;
}
}
return over;
}
public boolean canPlay(String[][] strings) {
boolean bool = false;
for (int i = 0; i < strings.length && !bool; i++) {
for (int i_18_ = 0; i_18_ < strings.length; i_18_++) {
if (!strings[i][i_18_].equals("1")
&& !strings[i][i_18_].equals("3")) {
if (searchRow(i, i_18_, strings)
|| searchColumn(i, i_18_, strings)) {
bool = true;
break;
}
if (i == 6 && i_18_ == 4) {
bool = false;
break;
}
}
}
}
return bool;
}
private boolean searchRow(int i, int i_19_, String[][] strings) {
boolean bool = false;
if (i_32_ == 0 && i_33_ == 1 || i_32_ == 1 && i_33_ == 0 || i_32_ == 1 && i_33_ == 1){
if (i_19_ >= 1 && i_19_ <= 5) {
if (strings[i][i_19_ + 1].equals("3")||(strings[i][i_19_ - 1].equals("3")))
bool = true;
} else if (i_19_ == 0) {
if (strings[i][i_19_ + 1].equals("3"))
bool = true;
} else if ((i_19_ == 5) && strings[i][i_19_ - 1].equals("3"))
bool = true;
}
else if (i_30_ == 0 && i_31_ == 2 || i_30_ == 2 && i_31_ == 0 || i_30_ == 2 && i_31_ == 2){
if (i_19_ > 1 && i_19_ < 5) {
if (strings[i][i_19_ + 1].equals("2") && strings[i][i_19_ + 2].equals("3")||(strings[i][i_19_ - 1].equals("2") && strings[i][i_19_ - 2].equals("3")))
bool = true;
} else if (i_19_ == 0 || i_19_ == 1) {
if (strings[i][i_19_ + 1].equals("2") && strings[i][i_19_ + 2].equals("3"))
bool = true;
} else if ((i_19_ == 5 || i_19_ == 6) && strings[i][i_19_ - 1].equals("2") && strings[i][i_19_ - 2].equals("3") )
bool = true;
}
return bool;
}
private boolean searchColumn(int i, int i_20_, String[][] strings) {
boolean bool = false;
//if (i_32_ == 0 && i_33_ == 1 || i_32_ == 1 && i_33_ == 0 || i_32_ == 1 && i_33_ == 1){
if (i >= 1 && i <= 5) {
if (strings[i + 1][i_20_].equals(“3”) ||(strings[i - 1][i_20_].equals(“3”)))
bool = true;
} if (i == 0) {
if (strings[i + 1][i_20_].equals(“3”))
bool = true;
}
if ((i == 6) && strings[i - 1][i_20_].equals(“3”))
bool = true;
//}
if (i_30_ == 0 && i_31_ == 2 || i_30_ == 2 && i_31_ == 0 || i_30_ == 2 && i_31_ == 2){
if (i > 1 && i < 5) {
if (strings[i + 1][i_20_].equals(“2”) && strings[i + 2][i_20_].equals(“3”)||(strings[i - 1][i_20_].equals(“2”) && strings[i - 2][i_20_].equals(“3”)))
bool = true;
} else if (i == 0 || i == 1) {
if (strings[i + 1][i_20_].equals(“2”) && strings[i + 2][i_20_].equals(“3”))
bool = true;
} else if ((i == 5 || i == 6) && strings[i - 1][i_20_].equals(“2”) && strings[i - 1][i_20_].equals(“3”))
bool = true;
}
return bool;
}
public boolean getStatus() {
return over;
}
public boolean pieceInCenter() {
return center;
}
}
ai esta a parte de controle do jogo…
se precisar verificar o resto eu envio o codico completo…
abraço…
grato desde já