Está en la página 1de 2

Universidad de Costa Rica Curso CI-0202

E.C.C.I. Principios de Informática


I Semestre 2018

Tarea programada #02


Valor 10%
Instrucciones: Diseñe y programe en JAVA, usando el entorno de desarrollo NetBeans, un aplicativo estilo
juego con las siguientes características:

Desarrollar un entorno estilo menú para la interacción con el usuario que contemple las siguientes opciones:

1- Inicializar partida – nuevo juego.


Esta opción permite al programa declarar e inicializar dos matrices de datos compuestos (instancias
de objetos a partir de una clase) de dimensiones 8 x 8. La clase a instanciar debe tener tres atributos:
int valor
char nom

Debe asignar valores RANDOM de 0 a 10 para el atributo int valor para los objetos de ambas matrices.
Para el atributo char nom de cada objeto, debe asignarle un valor de ´P´, ´L´ ó ´T´ según sea el
valor asignado al atributo int valor, de la siguiente forma:
• Si int valor <= 3, entonces al atributo char nom se le asigna la letra ´P´.
• Si int valor > 3 Y int valor <= 6 entonces al atributo char nom se le asigna la letra ´L´.
• Si int valor > 6, entonces al atributo char nom se le asigna la letra ´T´.

Esta opción es la que SIEMPRE debe ejecutarse primero, o sea, el usuario no puede seleccionar
ninguna otra opción (a excepción de la opción para salirse del programa) sin antes haber seleccionado
la opción 1.
El programa le indica a usuario un mensaje que diga “AMBAS MATRICES INICIALIZADAS” una vez
que haga todo lo indicado, para después esperar la siguiente opción que el usuario digite.

2- Imprimir matriz número uno ó matriz primera.


Esta opción simplemente imprime en pantalla la matriz primera o número uno de las dos creadas
anteriormente. Debe imprimir ambos valores de los atributos juntos (int valor y char nom) y cada
elemento de la matriz separado con un guión para los elementos de la misma fila.

3- Imprimir matriz número dos ó matriz segunda.


Esta opción simplemente imprime en pantalla la matriz segunda o número dos de las dos creadas
anteriormente. Debe imprimir ambos valores de los atributos juntos (int valor y char nom) y cada
elemento de la matriz separado con un guión para los elementos de la misma fila.

4- Jugar y determinar ganador.


Esta opción básicamente inicia un juego estilo “Piedra, Papel o Tijera” entre las dos matrices que
creó y visualizó con las opciones anteriores.
El juego consiste en enfrentar cada uno de los valores de matriz en sus respectivas posiciones (ej:
matriz1[i][j] vrs matriz2[i][j]) comparando los atributos de los objetos en cada posición, y
determinar un ganador por casilla o posición de la matriz. El ganador en cada posición se determina
siguiendo las siguientes reglas (reglas del juego Piedra ´P´, Papel ´L´ ó Tijeras ´T´):
• Si el atributo char nom de la matriz1[fila][col] es igual a ´P´ y el atributo char nom de la
matriz2[fila][col] es ´T´, el ganador para esa posición es matriz1, pero si el atributo char
nom de la matriz2[fila][col] es ´L´ el ganador para esa posición es matriz2.
• Si el atributo char nom de la matriz1[fila][col] es igual a ´L´ y el atributo char nom de la
matriz1[fila][col] es ´P´, el ganador para esa posición es matriz1, pero si el atributo char
nom de la matriz2[fila][col] es ´T´ el ganador para esa posición es matriz2.
• Si el atributo char nom de la matriz1[fila][col] es igual a ´T´ y el atributo char nom de la
matriz1[fila][col] es ´L´, el ganador para esa posición es matriz1, pero si el atributo char
nom de la matriz2[fila][col] es ´P´ el ganador para esa posición es matriz2.
• Ahora bien, si hay “empate” (o sea ambos atributos char nom de matriz1[fila][col] y de
matriz2[fila][col] son iguales entre sí, ya sea ´P´, ´L´ ó ´T´) el ganador de esa posición lo
determina el atributo int valor, en ese caso el objeto con el atributo que tenga el mayor valor
en el atributo. Si aún así continúa el empate (atributos char nom iguales y atributos int valor
también iguales) para esa posición de la matriz no hay ganador y se determina empate.

Ambas matrices se deben recorrer en orden para enfrentarse entre sí, o sea debe enfrentar mismas
posiciones de una matriz con la otra ([i] [j] por ejemplo) y llevar un contador de cuánta veces gana
en el recorrido ya sea la matriz1, la matriz2 o bien empate, para así al final del recorrido determinar
el ganador definitivo (la matriz que tenga más ganes por posición).
Debe imprimir los resultados de la siguiente forma:
Matriz1 tiene un total de _*_ victorias
Matriz2 tiene un total de _*_ victorias
Se presentaron _*_ empates

_*_ son los respectivos contadores y al tratarse de una matriz de 8x8, estos contadores deben sumar
64.
La manera de guardar los contadores, estructuras adicionales, auxiliares y demás elementos para el
desarrollo del algoritmo quedan a su discreción.

5- Salir del programa

Esta opción simplemente termina la ejecución del programa y lo da por finalizado.

El programa finaliza únicamente mediante la respectiva opción (la 5), la opción 1 cada vez que sea
seleccionada vuelve a inicializar las matrices para jugar diferentes partidas.

Los criterios a evaluar son:

1. Claridad del código (orden, indentación, lógica clara) 20%


2. Aplicación de conceptos y buenas prácticas (uso de nombres representativos para variables,
documentación interna, entre otras) 20%
3. Uso de métodos o funciones para modularizar el código (no todo el código en el main) 20%
4. Uso de clase para definir el objeto del cual serán las matrices de juego 10%
5. Implementación de sentencias Try and Catch para evitar la caída por excepciones 10%
6. Resolución del problema, programa compila y ejecuta bien, así como el manejo del menú 20%

Debe entregar la solución al problema el día acordado de la semana del 2 al 7 de julio de 2018 de manera
digital.

También podría gustarte