Dudas de Programacion » Java » Java Básico

Problemas java

(1 post)
  • Started 5 months ago by jark
  1. 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:

    @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_SOBRE_DESTINO;
                    break;
            }
            return t;
        }
    }

    ________________________________________________________________________________________

    Gracias.

    Saludos.

    Posted 5 months ago #



Reply

You must log in to post.

1,070 posts in 437 topics over 40 months by 388 of 892 members. Latest: lalala, nijh1, jasu

Acerca de...

Dudas de Programación es una Web, dentro del proyecto aulambra.com que nace con la idea de propocionar un foro de consultas sobre diferentes temas de programación. Orientado a ayudar a los internautas hispano-hablantes en Internet.

Ir al Blog de Linea de Código

Otras Webs