Paste
Copy
Cut
Options

¡Tu solución está lista!

Nuestra ayuda de expertos desglosó tu problema en una solución confiable y fácil de entender.

Mira la respuesta
  • Pregunta: Tarea 1 - Un laberinto simple *** Por favor, responda la pregunta y no copie y pegue el código del corredor del laberinto de ratas, pagamos por este servicio y lo necesitamos para los exámenes, déjelo para que otra persona nos ayude si no puede *** Introducción Para la primera parte de la tarea, construiremos un modelo de un laberinto en Java para luego

    Tarea 1 - Un laberinto simple

    *** Por favor, responda la pregunta y no copie y pegue el código del corredor del laberinto de ratas, pagamos por este servicio y lo necesitamos para los exámenes, déjelo para que otra persona nos ayude si no puede ***

    Introducción

    Para la primera parte de la tarea, construiremos un modelo de un laberinto en Java para luego usarlo en un juego. Este constará de dos clases Location y GameMap. La ubicación representará los detalles de una sola ubicación en el laberinto, GameMap realizará un seguimiento de todas las ubicaciones. Cada una de estas clases se describe con más detalle a continuación. El laberinto es una cuadrícula simple de ubicaciones, donde cada ubicación puede o no tener una forma de llegar a las ubicaciones adyacentes al norte, este, sur u oeste. Algunas partes de lo que hacemos aquí serán útiles en tareas posteriores. En este punto no tienes que manejar el juego en sí, eso viene después.

    Comienzas con versiones (casi) vacías de estas dos clases, además de una clase Runner. La tarea es completar estas clases de acuerdo con la especificación. La clase Runner se proporciona para facilitar sus propias pruebas, pero no forma parte de la evaluación (pero si tiene un código incorrecto, detendrá toda la compilación).

    Ubicación

    La clase Ubicación almacena detalles sobre una ubicación en particular. La forma en que realmente almacena la información depende de usted (aunque lo simple generalmente es mejor). La información se crea y se accede a través de los siguientes métodos públicos:

    • Un constructor que toma cinco booleanos como parámetros. En orden estos representan:

      • Si el jugador puede ir al norte desde aquí.

      • Si el jugador puede ir al este desde aquí.

      • Si el jugador puede ir al sur desde aquí.

      • Si el jugador puede ir al oeste desde aquí.

      • Si el jugador puede salir del laberinto desde aquí.

    • Un método llamado isExit que no toma parámetros y devuelve verdadero si la ubicación es una salida (vea también el constructor) y falso si no lo es.

    • Un método llamado hasDirection que toma una cadena que representa una dirección (las opciones válidas son "norte", "este", "sur" y "oeste"), y devuelve verdadero si el jugador puede ir en esa dirección desde aquí y falso si puede 't (o si no es una dirección válida).

    • Un método llamado toString que anula el estándar Object.toString() y devuelve una descripción de la ubicación actual que se ve así:

      • Direcciones disponibles: norte sur

      • Por supuesto, las direcciones reales enumeradas dependen de qué direcciones estén realmente disponibles en la ubicación. Para aquellos que están disponibles, deben aparecer en el mismo orden en que aparecen en la lista de parámetros del constructor.

    • Un método llamado mapRepresentation que no toma parámetros y devuelve un "dibujo" de la ubicación actual utilizando los conjuntos de caracteres proporcionados en las matrices ACTIVE_SYMBOLS e INACTIVE_SYMBOLS proporcionadas. El retorno de la representación debe tener un encabezado de línea en cada dirección disponible (donde "norte" está hacia arriba). El uso del símbolo ACTIVO o INACTIVO depende del método togglePlayerHere. Por ejemplo, si el jugador no está aquí (ver más abajo) y hay caminos hacia el norte y el oeste, se debe devolver la Cadena "┘".

    • Un método llamado togglePlayerHere que no toma parámetros y cambia el estado de si el jugador está aquí o no. Deberá realizar un seguimiento de este interno de alguna manera, y en la creación del objeto, el jugador no está aquí. Si el jugador no está aquí, se usan INACTIVE_SYMBOLS en mapRepresentation, si el jugador está aquí, se usan ACTIVE_SYMBOLS en su lugar.

    La clase Location no debe tener otros métodos o campos públicos además de estos.

    mapa del juego

    La clase GameMap almacena el mapa como un todo, por lo que necesitará una estructura para almacenar una cuadrícula 2D simple. GameMap tendrá los siguientes métodos públicos:

    • Un constructor que toma un int para la "altura" del laberinto y un int para el "ancho" del laberinto. Estos deben ser números no negativos. Cualquiera que sea negativo debe ser reemplazado por cero.

    • Un método llamado getHeight que no toma parámetros y devuelve la altura.

    • Un método llamado getWidth que no toma parámetros y devuelve el ancho.

    • Un método llamado setLocation que toma dos coordenadas, primero la fila, luego la columna, donde (0,0) es la parte superior izquierda y un objeto Location, y coloca la ubicación en esas coordenadas en el mapa. Si las coordenadas están fuera de los límites o ya hay una ubicación en ese punto, no se realiza ninguna acción. Si la acción ocurrió, el método devuelve verdadero, si no realizó ninguna acción, devuelve falso.

    • Un método llamado getLocation que toma dos coordenadas y devuelve la ubicación en esas coordenadas. Si las coordenadas están fuera de los límites o no hay una ubicación en esas coordenadas, el método debe devolver un valor nulo.

    • Un método toString que anula Object.toString() y devuelve un "dibujo" del mapa como una cadena. Las ubicaciones individuales en el laberinto deben usar su mapRepresentation. Si no hay una ubicación en un conjunto de coordenadas, debe sustituirse por un espacio en blanco (" "). El siguiente es un ejemplo de un dibujo de este tipo para un laberinto de 3x10:

      • ├┌└╴┴┌┴╴┴┌

      • ╴┴┤╷└┌├┴┤─

      • ┴┐┘──╵┼╶╴─

    GameMap no debe tener otros métodos o campos públicos.

    Consejos generales y respuestas

    Puede usar cualquiera de las clases de la biblioteca que desee, pero la tarea se puede completar fácilmente sin clases especiales ni trucos. Mantén las cosas simples. Todo se puede hacer con bucles simples y declaraciones if, sin embargo, un poco de reflexión y el uso cuidadoso de algunas otras construcciones sintácticas pueden ayudar a simplificar las cosas.

    No intentes hacer todos los métodos de una sola vez. Haga que uno funcione antes de pasar al siguiente. Si planifica cuidadosamente, esto no será un problema, pero es posible que su diseño inicial necesite revisión, y tratar de refactorizar una gran cantidad de código que funciona a medias no es nada divertido.

    Aquí está el código proporcionado:

    Ubicación.java

    ubicación de clase pública {

    Cadena final estática privada [] INACTIVE_SYMBOLS = { " ", "╴", "╷", "┐", "╶", "─", "┌", "┬", "╵", "┘", "│ ", "┤", "└", "┴", "├", "┼" };
    Cadena final estática privada [] ACTIVE_SYMBOLS = { " ", "╸", "╻", "┓", "╺", "━", "┏", "┳", "╹", "┛", "┃ ", "┫", "┗", "┻", "┣", "╋" };

    }

    GameMap.java

    mapa de juego de clase pública {

    }

    Corredor.java

    Corredor de clase pública {
    public static void main(String[] args) {
    //El código aquí no está probado, pero puede interferir con la compilación.
    }
    }

  • Chegg Logo
    Esta es la mejor manera de resolver el problema.
    Solución

    El programa Java que implementa la clase de ubicación hasta la función toString() { [código nativo] } se muestra a continuación. Ubicación.java: ubicación de clase pública { booleano norte, este, sur, oeste, salida; Cadena final estática privada [] I

    Mira la respuesta completa
    answer image blur