Dev - C++ - nose que hacer :c

 
Vista:

nose que hacer :c

Publicado por javier (3 intervenciones) el 15/01/2020 02:44:54
Desarrolle un programa en lenguaje C que realice lo siguiente:
- Al iniciar el programa, se debe desplegar un número aleatorio de cuatro dígitos, y se
debe solicitar una clave a ingresar por el usuario. La clave ingresada debe ser
consistente con las reglas antes indicadas; si la clave es correcta, se puede ingresar
a las demás funcionalidades, de lo contrario se debe pedir nuevamente hasta que el
usuario ingrese la clave correcta.
- Para efectos de simulación, el lugar de acción se expresará como una matriz
compuesta de caracteres con 15 filas y 15 columnas, en los que se dispondrán de
forma aleatoria:
o 3 Kromis, donde cada una utiliza tres celdas de la matriz y se ubican siempre
de forma vertical. Cada celda ocupada por un vehículo de este tipo se define
con una letra “K”.
o 5 Caguanos, ubicados siempre horizontalmente en la matriz, definidos en
ésta con una letra “C” y haciendo uso de dos espacios.
o 10 Trupallas, los cuales se representan como una celda en la matriz con la
letra “T”.
- Después de ingresar la clave correctamente, el programa debe situar de forma
aleatoria la cantidad de vehículos antes indicados. Se recomienda hacerlo en el
orden antes mencionado, pero no es obligación. Considere que cada tipo de
vehículo ocupará una determinada cantidad de celdas en la matriz, y que no pueden
existir vehículos encima de otros.
- Por cada vehículo a ingresar, entonces, se debe hacer lo siguiente:
o El programa calcula una fila y columna de forma aleatoria (el número debe
estar en el rango definido).

o Si está agregando una Kromi, debe escribir tres celdas hacia abajo contando
desde la celda obtenida, si es un Caguano debe rellenar dos celdas hacia el
lado (de izquierda a derecha), mientras que si el vehículo a registrar es un
Trupalla, se debe agregar en la coordenada obtenida ya que solo usa una
celda.
o Antes de agregar un vehículo, se debe validar que no exista ningún otro en
algunas de las posiciones que se considerará. De no ser así, se debe obtener
nuevamente otro par de coordenadas de forma aleatoria hasta que sea
posible ubicar el vehículo en cuestión sin inconvenientes.
o Además, recuerde que todo vehículo debe quedar siempre situado dentro
de la matriz, lo cual también se debe validar. Si las coordenadas obtenidas
provocan que el vehículo no cumpla con esta condición, se debe solicitar otra
fila y columna.
Los manifestantes, como método de defensa frente a la acción de la PKS, tienen un
arsenal ilimitado de huevos, los que pueden lanzar libremente dentro del espacio
considerado. Para representar esto, se debe solicitar al usuario que ingrese un
número de fila y de columna, ambos válidos, y verificar si en la matriz está ubicado
un vehículo o no:


o Si el proyectil da sobre una Kromi, se asignan tres puntos, si da sobre un
Caguano se asignan dos puntos, y si da sobre un Trupalla se asigna un punto.
o Si una Kromi ha sido inutilizada completamente, esto es, que sus tres celdas
han sido atacadas por huevos, se asignan 10 puntos adicionales. Si se inutiliza
un Caguano se asignan 7 puntos adicionales. Un Trupalla queda inutilizado
automáticamente al recibir un huevo, por tanto no existe puntaje adicional
por estos efectos.
- No hay una cantidad límite de huevos a lanzar, y un huevo puede caer más de una
vez sobre una misma posición. Sin embargo, cada vez que una posición sea atacada
por un huevo, el valor de la celda en la matriz original debe ser expresado como “H”.
Si la celda sobre la que se lanza un huevo ya había sido atacada previamente, no se
debe asignar puntaje por este concepto.
- Finalmente, al terminar el programa se debe indicar el puntaje total obtenido por el
usuario.
Para estos efectos debe tener, como mínimo, cuatro funciones establecidas explícitamente:
- mostrarMatriz(): esta función despliega el contenido de la matriz, dando a conocer
las posiciones de cada vehículo y aquellas que han sido atacadas con huevos. Se
debe mostrar solo una matriz.
- lanzarHuevo(): esta función debe solicitar al usuario una fila y una columna,
validando que estos datos estén en el rango permitido. Por cada huevo lanzado se
debe actualizar la matriz y el puntaje total obtenido hasta ese momento.
- reiniciarMatriz(): esta función reinicia los valores de la matriz, situando
aleatoriamente la cantidad de vehículos según su tipo, y regresando el puntaje
obtenido a cero. No es necesario que la matriz generada sea igual a la original.
- travesuraRealizada(): esta función permite al usuario salir del programa, no sin antes
mostrar el puntaje obtenido en ese momento. Si no ha lanzado ningún huevo, el
puntaje final a desplegar será igual a 0 (cero).
Finalmente debe tener en cuenta las siguientes consideraciones:
- Al comenzar el programa se debe desplegar un menú con opciones, y a través del
mismo el usuario podrá seleccionar la acción asociada a cada función antes
mencionada.
- Las funciones antes indicadas pueden recibir parámetros o no, dependiendo de la
forma en que se programen. Independiente de ello, se pide que las funciones
realicen las labores que se indican, y no otras.


- Cada función debe ir comentada antes de su inicio y en aquellas líneas que se
consideren relevantes para una mejor comprensión. El menú principal también debe
cumplir con la misma regla antes mencionada.
- Puede crear funciones adicionales si así lo requiere, y puede llamar a una función
desde otra similar, o incluso crear funciones recursivas si el caso lo amerita.
- Para expresar el campo de acción debe utilizar al menos una matriz de 15 filas y 15
columnas. Puede hacer uso de otras variables que permitan ayudarle en los cálculos
necesarios.
- El comando o pasos para obtener un número entero aleatorio es parte del proceso
de investigación asociado a la tarea. Por tanto, es deber de equipo de alumnos
buscar información o consultar bibliografía que permita resolver este punto.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
-4
Responder