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: 1. Implementar el Enum KivaCommand Los objetos de Kiva pueden realizar acciones como moverse y recoger y soltar elementos. Permitimos a los usuarios de nuestro programa introducir representaciones de 1 letra de estos movimientos ('F', 'R', 'L', 'T' o 'D'), por lo que necesitamos una forma de asignar cada acción a una tecla concreta del teclado. Refiriéndose

    1. Implementar el Enum KivaCommand Los objetos de Kiva pueden realizar acciones como moverse y recoger y soltar elementos. Permitimos a los usuarios de nuestro programa introducir representaciones de 1 letra de estos movimientos ('F', 'R', 'L', 'T' o 'D'), por lo que necesitamos una forma de asignar cada acción a una tecla concreta del teclado. Refiriéndose al diagrama de clases anterior, lo hará creando un nuevo enum KivaCommand para las acciones que el robot puede realizar. El enum utilizará valores que corresponden a determinados caracteres del teclado. De esta manera, la clase RemoteControl puede asignar una clave de entrada char a un valor enum de KivaCommand. Para crear un enum en BlueJ, haga clic en el botón 'Nueva clase...'. Introduzca el nombre de su enum, deje el Lenguaje de la Clase como Java, y luego seleccione 'Enum' de las opciones para el Tipo de Clase. Haga clic en "Aceptar" para crear su enum. Pruebe esto creando una clase KivaCommandTester. Cree un método de prueba por cada comando y compruebe que cuando ejecuta cada método obtiene la salida esperada. Aquí hay un ejemplo de clase KivaCommandTester con un método completado: public class KivaCommandTester { public void testForward() { KivaCommand command = KivaCommand.FORWARD; System.out.println(command); System.out.println(command.getDirectionKey()); } // Para ti: crea cuatro métodos más, cada uno de ellos probando un comando diferente. } Casos de prueba Prueba: testForward() Entrada: Crea un objeto KivaCommand.FORWARD, luego imprime el comando y su clave de dirección Salida: "FORWARD" seguido de "F" se imprime en la consola. Prueba: testTurnLeft() Entrada: Crea un objeto KivaCommand.TURN_LEFT, luego imprime el comando y su clave de dirección Salida: "TURN_LEFT" seguido de "L" se imprime en la consola. Prueba: testTurnRight() Entrada: Crea un objeto KivaCommand.TURN_RIGHT, luego imprime el comando y su clave de dirección Salida: "TURN_RIGHT" seguido de "R" se imprime en la consola. Prueba: testTake() Entrada: Crea un objeto KivaCommand.TAKE, luego imprime el comando y su clave de dirección Salida: "TAKE" seguido de "T" se imprime en la consola. Prueba: testDrop() Entrada: Crea un objeto KivaCommand.DROP, luego imprime el comando y su clave de dirección Salida: "DROP" seguido de "D" se imprime en la consola. import edu.xxx.Point; public class KivaMoveTest { // Definir el FloorMap que usaremos para todas las pruebas String defaultLayout = "" + "------------- " + " P * " + " ** * " + " ** * " + " K D * " + " * * * ** " + "------------- "; FloorMap defaultMap = new FloorMap(defaultLayout); public void testForwardFromUp() { // DADO // Una Kiva construida con el mapa por defecto que definimos antes Kiva kiva = new Kiva(defaultMap); // CUANDO // Nos movemos un espacio hacia adelante kiva.move(KivaCommand.FORWARD); // THEN // La Kiva se ha movido un espacio hacia arriba verifyKivaState("testForwardFromUp", kiva, new Point(2, 3), FacingDirection.UP, false, false); } // Para ti: crea todas las demás pruebas y llama a verifyKivaState() para cada una private boolean sameLocation(Point a, Point b) { return a.getX() == b.getX() && a.getY() == b.getY(); } private void verifyKivaState( String testName, Kiva actual, Point expectLocation, FacingDirection expectDirection, boolean expectCarry, boolean expectDropped) { Point actualLocation = actual.getCurrentLocation(); if (sameLocation(actualLocation, expectLocation)) { System.out.println( String.format("%s: current location SUCCESS", testName)); } else { System.out.println( String.format("%s: ubicación actual ¡NO!", testName)); System.out.println( String.format("Esperado %s, obtenido %s", expectLocation, actualLocation)); } FacingDirection actualDirección actual = actual.getDirectionFacing(); if (actualDirection == expectDirection) { System.out.println( String.format("%s: dirección de encaramiento SUCCESS", testName)); } else { System.out.println( String.format("%s: dirección de encaramiento FAIL!", testName)); System.out.println( String.format("Esperado %s, obtenido %s", expectDirection, actualDirection)); } boolean actualCarry = actual.isCarryingPod(); if (actualCarry == expectCarry) { System.out.println( String.format("%s: carrying pod SUCCESS", testName)); } else { System.out.println( String.format("%s: transportando vaina FALLO", testName)); System.out.println( String.format("Esperado %s, obtenido %s", expectCarry, actualCarry)); } boolean actualDropped = actual.isSuccessfullyDropped(); if (actualDropped == expectDropped) { System.out.println( String.format("%s: caído con éxito SUCCESS", testName)); } else { System.out.println( String.format("%s: caído con éxito FAIL!", testName)); System.out.println( String.format("Esperado %s, obtenido %s", expectDropped, actualDropped)); } } }
  • Chegg Logo
    Queda solo un paso para resolver este problema.
    Solución
    Paso 1

    Answer:-



    El código a continuación muestra cómo implementar el enum KivaCommand y la clase KivaCommand...

    Mira la respuesta completa
    answer image blur
    Respuesta
    Desbloquea