Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - lRoil

Páginas: [1]
1
Buenas, estoy haciendo un ejercicio de clase en el que tengo que hacer el juego de hundir la flota, estoy en el punto en el que la maquina coloca los barcos y me esta petando todo el rato, creo que es porque se me sale del array, pero el programa me peta en lo que es un intento de prueba para que si se va a salir del array no lo haga y vuelva a elegir otra posicion.


Os dejo todo el codigo, dejo asteriscos donde me salta el erro, gracias

Código: [Seleccionar]
public class cpu {

    int fila;
    int columna;
    int direccion;
    int filas;
    int columnas;
    int[][] tableroCpu;
    int[][] tableroJugador;

    public void inicializar() {
        System.out.println("***Bienvenido***");
        System.out.println("");
        do {

            filas = Teclado.pideEntero("Selecciona las filas con las que quieres jugar (Minimo 10)");
            columnas = Teclado.pideEnteroPositivo("Selecciona las columnas con las que quieres jugar (Minimo10)");

        } while (filas < 10 && columnas < 10);

        tableroCpu = new int[filas][columnas];
        tableroJugador = new int[filas][columnas];

        for (int x = 0; x < filas; x++) {
            for (int i = 0; i < columnas; i++) {

                tableroCpu[x][i] = 0;
                tableroJugador[x][i] = 0;
            }
        }
        System.out.println(" FIN INICIALIZAR");
    }

    public void barcos() {

        System.out.println("Colocando barcos...");

        //BARCO 4 CASILLAS
        do {
            int fila = (int) (Math.random() * filas);
            int columna = (int) (Math.random() * columnas);

            direccion = (int) (Math.random() * 4);

            switch (direccion) {

                case 0:
                  ***** if (tableroCpu[fila + 3][columna] <= tableroCpu.length - 1) {
                        if (tableroCpu[fila][columna] == 0 & tableroCpu[fila + 1][columna] == 0 & tableroCpu[fila + 2][columna] == 0 & tableroCpu[fila + 3][columna] == 0) {
                            tableroCpu[fila][columna] = 1;
                            tableroCpu[fila + 1][columna] = 1;
                            tableroCpu[fila + 2][columna] = 1;
                            tableroCpu[fila + 3][columna] = 1;
                        }
                    }
                    break;
                case 1:
               ******     if (tableroCpu[fila][columna + 3] <= tableroCpu.length - 1) {
                        if (tableroCpu[fila][columna] == 0 & tableroCpu[fila][columna + 1] == 0 & tableroCpu[fila][columna + 2] == 0 & tableroCpu[fila][columna + 3] == 0) {

                            tableroCpu[fila][columna] = 1;
                            tableroCpu[fila][columna + 1] = 1;
                            tableroCpu[fila][columna + 2] = 1;
                            tableroCpu[fila][columna + 3] = 1;
                        }
                    }
                    break;
                case 2:
                    ****** if (tableroCpu[fila - 3][columna] <= tableroCpu.length - 1) {
                        if (tableroCpu[fila][columna] == 0 & tableroCpu[fila - 1][columna] == 0 & tableroCpu[fila - 2][columna] == 0 & tableroCpu[fila - 3][columna] == 0) {
                            tableroCpu[fila][columna] = 1;
                            tableroCpu[fila - 1][columna] = 1;
                            tableroCpu[fila - 2][columna] = 1;
                            tableroCpu[fila - 3][columna] = 1;
                        }
                    }
                case 3:
                  *****  if (tableroCpu[fila][columna - 3] <= tableroCpu.length - 1) {
                        if (tableroCpu[fila][columna] == 0 & tableroCpu[fila][columna - 1] == 0 & tableroCpu[fila + 2][columna - 2] == 0 & tableroCpu[fila][columna - 3] == 0) {
                            tableroCpu[fila][columna] = 1;
                            tableroCpu[fila][columna - 1] = 1;
                            tableroCpu[fila][columna - 2] = 1;
                            tableroCpu[fila][columna - 3] = 1;
                        }
                    }

            }
        } while (tableroCpu[fila][columna] == 0);

        System.out.println("Colocado barco de 4");
    }
}


Páginas: [1]

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".