Matriz que solo contenga 0 y 1

Pues tengo un problemón, se trata de construir una matriz bidimensional con fin de representar un tablero de ajedrez, debería de quedar de la siguiente forma:
0  1  0  1  0  1  0  1
1  0  1  0  1  0  1  0
0  1  0  1  0  1  0  1
...
Creí que seria fácil, pero luego me di cuenta que costaba mucho trabajo, y lo más cerca que estuve de lograrlo me quedo así:
0 1 0 1 0 1 0 1
0 1 0 1 0 1 0 1
...
(Los ceros me quedaron en la misma columna)
Espero puedan ayudarme, ya que por más que estuve buscando no encontré la forma, lo intente con for(), pero no me sale, espero me lo resuelvan...
Por cierto, y si me quieren ayudar más, al ejecutar mi programa, me debe pedir la posición del caballo de ajedrez (ejemplo 2,3), en esta dirección de mi array debe aparecer una "c" y me debe marcar con un asterisco los posibles movimientos del caballo...
1

1 respuesta

Respuesta
1
public char[][] creaTablero(){
char[][] resultado= new char[8][8];
for (int i=0;i<8;i++)
for (int j=0;j<8;j++) {
if (i+j==0 || (i+j)%2==0 ) //(si es 0 o par)
resultado[j]='0';
else
resultado[j]='1'; // (Si es impar)
}
return resultado;
}

// Comprueba que la posicion está en el tablero
public boolean posValida(int x, int y){
if ( (x>=0 || x<8) && (y>=0 && y<8) ) return true;
else return false;
}
public void marcarCaballo(int x, int y, char[][] tablero){
if (!posValida(x, y)) {
System.out.println("Parametros incorrectos");
return;
}
tablero[x][y] = 'c';

// Este bucle doble recorre toda las posiciones de salto del caballo y algunas que no lo son
for (int i=-2;i<=2;i++)
for (int j=-2;j<=2;j++) {
if ( (Math.abs(x)+Math.abs(y))!=3 ) continue; //Los movimientos validos de caballo siempre son 3 casillas
if (posValida(x, y)) tablero[x][y]='*';
}
}

Espero que te sirva, pero lo principal es que entiendas bien cómo funciona y por qué. Ya que estarás aprendiendo. Además de que si no funcionara vieras como solucionarlo.
gracias, resulta que luego luego lo resolvi de una forma diferente, use los ciclos for y al final de cada uno agrege un if(x==0){x=1}, if(x==1){x=0} y con eso salio mi tabla y para el caballo agrege ocho if's pero tu idea me gusto, asi que la probare, por ahora no traigo el codigo conmigo pero alrato lo subo

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas