Universidad Tecnológica Centroamericana UNITEC Laboratorio de Programación I Josué Rodríguez Examen 2 Sesión 10 22-03-2019 Objetivos de la práctica: • • Repasar los temas estudiados durante todo el periodo. Desarrollar la lógica mediante la resolución de problemas. Desarrollo de la práctica: Cree un nuevo proyecto Java con el nombre Examen2_PrimerNombrePrimerApellido (Examen2_JosueRodriguez). Recuerde hacer su código robusto, tabulado y estar autodocumentado, la falta de alguna de éstas, incluyendo el nombre, será reflejado en su nota. Consideraciones: • • • • • • • • • • El programa deberá repetirse hasta que el usuario decida lo contrario. Se deberá usar la estructura Switch case en el menú (con letra o números, eso es decisión del desarrollador). Comentarios como “fin for/fin while” no son significativos y afectarán su nota final. Deben ser comentarios significativos. La copia de código será penalizada con la máxima penalización en la nota del laboratorio y será remitido al Comité de Ética. Imprima los arreglos y matrices con algún tipo de separación, preferiblemente (pero no obligatoriamente) con “[ ]”. Siga las instrucciones al pie de la letra. Cualquier pregunta con alguna de las indicaciones hágaselas saber al instructor de manera clara. Pida los datos (si los hay) necesarios en cada uno de los ejercicios. NO ANTES DEL MENU. OBLIGATORIO: Menú principal deberá ser hecho en GUI con 4 botones (3 ejercicios, 1 botón de salida) OBLIGATORIO: Pedir los datos necesarios a través de JOptionPane. NO SE ACEPTARÁN LABORATORIOS ENVIADOS AL CORREO DEL INSTRUCTOR, a menos que se haya hablado con el instructor encargado previamente. Ejercicio 1 – Calculadora de polinomios Cree una clase “Polinomio” que tendrá como atributo una cadena que representara el polinomio en cuestión y un entero que representara el valor de la incógnita. Deberá tener un método “resolverEcuacion()” que al ser llamado, devuelva el resultado de la expresión polinómica. Consideraciones: • Ignore la jerarquía de operaciones, realice las operaciones de izquierda a derecha. • Deberá validar que el polinomio solo contenga 1 incógnita, esto lo hará con un método “validarPolinomio()” en la clase Polinomio. Si tiene más de una incógnita, deberá usar un mutador para cambiar el valor del polinomio. • Para representar si exponentes se usara “^”. • El primer término de la expresión siempre será positivo. • No habrá espacio entre operaciones. • No habrá división. Ejemplo: Input: String polinomio: 2x^2+3x*50 Int incognita: 5 Output: 3250 Ejercicio 2 – Buscaminas Cree una clase Buscaminas que tendrá como atributo dos enteros que representaran (1) el tamaño de la matriz y (2) la cantidad de minas con que se jugará y dos matrices de caracteres que representarán los tableros de juego. La cantidad de minas debe estar en un rango de 0 < minas <= N-1, donde N es la cantidad de casillas en la matriz. El constructor recibirá el tamaño de la matriz y la cantidad de minas, previamente depuradas (es decir, el constructor lo recibirá después de hacer todas las validaciones necesarias). En el constructor ud creará ambas matrices, una con minas posicionadas en posiciones random (ojo, se debe cumplir que la cantidad final de minas sea la que indico el usuario) y la otra que es la que se le enseñará al usuario. La coordenada se ingresará de la siguiente manera: (fila,columna) y estas pueden ser de n cantidad de digitos. Deberá tener un método play() donde realice toda la lógica del juego. Se gana cuando no quedan más espacios en blanco y se pierde cuando se encuentra con una mina, o cuando el usuario ingrese como entrada “salir”. Ejercicio 3 Cree una clase Ahorcado que tendrá de atributos 4 strings (nombre jugador 1, nombre jugador 2, palabra actual del jugador 1, palabra actual del jugador 2) y un arrayLists tipado de String que representará las pistas. Vamos a crear el juego del ahorcado por consola. El constructor pedirá los nombres de los dos jugadores. El primer turno será para el jugador 1. Uno escribe una palabra y este se guarda en una de las variables de “palabra actual” y el otro la adivina, si este la adivina obtendrá un punto y escribirá una palabra. Si no, tiene hasta 4 oportunidades para adivinar (cabeza, cuerpo, brazos y piernas). Las pistas se guardarán en el ArrayList. Cuando el jugador inserte su palabra también deberá añadir pequeñas pistas, por ejemplo, si la palabra es Madrid, la pista puede ser “Ciudad”. Las pistas serán mostradas cada vez que el jugador ingrese una palabra incorrecta. Cada vez que acierte o no la palabra, deberá mostrar la puntuación de ambos. El primero que llegue a 2 puntos gana. Desarrollo Evaluación (%) Ejercicio 1 40% Ejercicio 2 30% Ejercicio 3 30% Interfaz agradable +1 pt. extra