rendered paste bodyclass Caballo{ private int[][]posiciones = new int[8][8]; private int x,y; private int total_moves = 0; Caballo(int init_a, int init_b) { this.x = init_a; this.y = init_b; } void Muevete(int step) { switch(step) { case 0: //Nos movemos +2,+1 if(getX()+2 <= 8 && getY()+1 <= 8) { if(checkHorseLocation(getX()+2, getY()+1) == 1) { Muevete(step+1); } setX(getX()+2); setY(getY()+1); showXY(); Muevete(0); } Muevete(1); break; case 1: //Nos movemos -2,-1 if(getX()-2 >= 1 && getY()-1 >= 1) { if(checkHorseLocation(getX()-2, getY()-1) == 1) { Muevete(step+1); } setX(getX()-2); setY(getY()-1); showXY(); Muevete(1); } Muevete(2); break; case 2: //Nos movemos +1,+2 if(getX()+1 <= 8 && getY()+2 <= 8) { if(checkHorseLocation(getX()+1, getY()+2) == 1) { Muevete(step+1); } setX(getX()+1); setY(getY()+2); showXY(); Muevete(2); } Muevete(3); break; case 3: //Nos movemos -1,+2 if(getX()-1 >= 1 && getY()+2 <= 8) { if(checkHorseLocation(getX()-1, getY()+2) == 1) { Muevete(step+1); } setX(getX()-1); setY(getY()+2); showXY(); Muevete(3); } Muevete(4); break; case 4: //Nos movemos -1,-2 if(getX()-1 >= 1 && getY()-2 >= 1) { if(checkHorseLocation(getX()-1, getY()-2) == 1) { Muevete(step+1); } setX(getX()-1); setY(getY()-2); showXY(); Muevete(4); } Muevete(5); break; case 5: //Nos movemos +1,-2 if(getX()+1 <= 8 && getY()-2 >= 1) { if(checkHorseLocation(getX()+1, getY()-2) == 1) { Muevete(step+1); } setX(getX()+1); setY(getY()-2); showXY(); Muevete(5); } Muevete(6); break; case 6: //Nos movemos -2,+1 if(getX()-2 >= 1 && getY()+1 <= 8) { if(checkHorseLocation(getX()-2, getY()+1) == 1) { Muevete(step+1); } setX(getX()-2); setY(getY()+1); showXY(); Muevete(6); } Muevete(7); break; case 7: //Nos movemos +2,-1 if(getX()+2 <= 8 && getY()-1 >= 1) { if(checkHorseLocation(getX()+2, getY()-1) == 1) { Muevete(0); } setX(getX()+2); setY(getY()-1); showXY(); Muevete(7); } Muevete(0); break; } } void showXY() { setHorsePosition(getX(), getY()); System.out.println("Nueva posicion para el caballo: " + getX() + "," + getY());// System.out.println(checkIfMovesIsFull()); } void setHorsePosition(int i, int j) { this.posiciones[i-1][j-1]++; } int checkHorseLocation(int x, int y) { if(this.posiciones[x-1][y-1] >= 1) { return 1; } else { return 0; } } int checkIfMovesIsFull() { int i,j,total=0; for(i = 0; i < 8; i++) { for(j = 0; j < 8; j++) { if(this.posiciones[i][j] >= 1) { total++; } } } return total; } void setX(int var) { this.x = var; } void setY(int var) { this.y = var; } int getX() { return this.x; } int getY() { return this.y; }}