0 votos
por (20 puntos) en Java
Hola, necesito saber cómo se resuelve esta práctica cuanto antes, disculpad si parece mucho, pero es que no me queda otra opción, no consigo sacar el código.

3)-- Introducir un objeto Tablero en RellenarPorAlumno: Se deberá modificar la clase

RellenarPorAlumno para introducir un tablero de juego. Para ello se deberá:

- Añadir un atributo elTablero: Objeto de tipo Tablero, añadido como atributo a la

clase RellenarPorAlumno. Se deberá inicializar el atributo elTablero en el

método main, para ello dentro del método main de RellenarPorAlumno se crea

un objeto denominado tmp. Deberá inicializarse la variable elTablero del objeto

tmp, creando un nuevo tablero de juego que contenga las siguientes casillas:

(Aquí iría el array de caracteres que ya tengo)

Nota: Deberá inicializarse antes de la llamada al método

establecerCoordenadas que aparece en el código, si no se producirá una

excepción.

-- Modificar el método pintarTablero": Modificar este método para que en lugar de

pintar casillas aleatorias, pinte el tablero contenido en la variable elTablero.

4) Modificar el método teclaPulsada en RellenarPorAlumno: Se deberá modificar el

método teclaPulsada de la clase RellenarPorAlumno para que si se pulsa cualquiera de

las teclas A,W,D,X se realice lo siguiente:

- Mover el jugador: se realizará el movimiento oportuno sobre elTablero.

- Incrementar el contador de pasos: Sólo si se ha podido realizar el movimiento,

se incrementará el contador de pasos.

- Comprobar si se ha ganado la partida: Si se ha ganado la partida, se finalizará

el programa.

Esos serían los dos apartados a resolver (incluyendo las dos secciones que tiene el punto 3)

El código dónde debo hacer esto es el siguiente:

<pre lang='java'>@SuppressWarnings("serial")
public class RellenarPorAlumno extends NoTocarEstaClase {

    /**
     * Método main
     */
    public static void main(String [] args)
    {
        RellenarPorAlumno tmp = new RellenarPorAlumno();

        tmp.elTablero(x, y);
        tmp.establecerCoodenadas(ANCHO, ALTO);

    }

    /** Enumeración para tipos de casilla */
    enum TipoCasilla {VACIA, CAJA,
        JUGADOR, MURO, DESTINO,
        CAJA_SOBRE_DESTINO, JUGADOR_SOBRE_DESTINO    };

    // Definición de constantes para dimensiones del tablero
    public static final int ANCHO = 19;
    public static final int ALTO = 11;

    /**
     * Método que es invocado cada vez que el usuario pulsa cualquier tecla
     * La implementación que se proporciona sólo responde a la tecla 'q', que
     * hace que finalice la ejecución del programa
     * Si no se pulsa la tecla q, genera casillas aleatorias en el tablero y lo repinta
     * EL CÓDIGO QUE SE PROPORCIONA ES SÓLO UN EJEMPLO, YA QUE ESTE MÉTODO DEBERÁ
     * SER ESCRITO POR COMPLETO POR EL ALUMNO PARA REALIZAR LAS CUESTIONES
     * QUE SE PLANTEAN EN LA PRÁCTICA 3
     * @param tecla La tecla pulsada
     */
    public void teclaPulsada(char tecla) {
        // En función de la tecla pulsada hace algo
        switch (tecla) {
            case 'q':
            case 'Q':
                // Si se pulsa la tecla q sale del programa
                System.exit(0);
                break;
            default:
                // Por defecto no hace nada
        }
    }

    /**
     * Método para pintar el tablero de juego.
     * Deberá hacer uso del método pintarCuadradoTablero para pintarlo
     * EL CÓDIGO QUE SE PROPORCIONA ES SÓLO UN EJEMPLO, YA QUE ESTE MÉTODO DEBERÁ
     * SER ESCRITO POR COMPLETO POR EL ALUMNO PARA REALIZAR LAS CUESTIONES
     * QUE SE PLANTEAN EN LA PRÁCTICA 3
     */
    public void pintarTablero() {
        // Ejemplo que rellena cada cuadrado del tablero con un tipo de casilla aleatoria
        for(int i=0; i< ALTO; i++) {
            for(int j=0; j<ANCHO; j++) {
                TipoCasilla tipoCasilla = obtenerTipoCasillaAleatoria();
                pintarCuadradoTablero(j, i, tipoCasilla);
            }
        }

        // Ejemplo que incrementa los pasos un valor de 10
        int pasos = obtenerPasos();
        pasos += 10;
        establecerPasos(pasos);
    }

    /**
     * Método auxiliar de ejemplo para obtener un tipo de casilla aleatoria
     * ESTE MÉTODO PUEDE SER ELIMINADO POR EL ALUMNO, ES SÓLO UN EJEMPLO
     */
    private TipoCasilla obtenerTipoCasillaAleatoria() {
        // Genera un número aleatorio entre 0 y 6
        int tipoCasilla = (int)(Math.random() * 7);
        TipoCasilla t;
        switch(tipoCasilla) {
            case 0:
                t = TipoCasilla.VACIA;
                break;
            case 1:
                t = TipoCasilla.CAJA;
                break;
            case 2:
                t = TipoCasilla.JUGADOR;
                break;
            case 3:
                t = TipoCasilla.MURO;
                break;
            case 4:
                t = TipoCasilla.DESTINO;
                break;
            case 5:
                t = TipoCasilla.CAJA_SOBRE_DESTINO;
                break;
            default:
                t = TipoCasilla.JUGADOR_SO

Por favor, accede o regístrate para responder a esta pregunta.

Preguntas relacionadas

0 votos
1 respuesta
0 votos
1 respuesta
0 votos
0 respuestas
0 votos
1 respuesta
0 votos
6 respuestas
Bienvenido a Dudas de Programación, donde puedes hacer preguntas y recibir respuestas sobre los problemas más frecuentes de los lenguajes de programación, frameworks de desarrollo y bases de datos que utilices. Foro de Línea de Código

Categorías

...