Está en la página 1de 3

Universidad de Cundinamarca

Programa de Ingeniería de Sistemas y Computación

Programación I G-202

PROYECTO SEMESTRAL

Problema

En el laboratorio “Robots Rotos” se están creando dos tipos de robots: los blancos y los negros, los cuales
han sido programados para destruirse entre sí. Cada robot puede desplazarse en cuatro direcciones
(horizontal o vertical):

y lanzar una onda de calor que destruye a todo robot adversario (de un color diferente) que se encuentre en
un radio de 4 metros.

Cree un programa que permita simular el combate de cuatro robots, dos blancos y dos negros, en un espacio
rectangular. El programa debe solicitar al usuario como entrada las dimensiones del espacio (ancho, alto), la
posición inicial de cada robot (coordenadas x,y) y cuatro cadenas, cada una indicando el movimiento de un
robot. A partir de dicha información debe calcular y mostrar en pantalla periódicamente la posición de cada
uno de los robots no destruidos. La simulación debe terminar cuando todos los robots terminen su movimiento
o cuando sólo queden robots de un color (sin importar si han terminado su movimiento).

Asuma que la posición superior izquierda del espacio corresponde a la coordenada (0,0):
(0,0) ancho

x
alto
El movimiento de cada robot se programa mediante una cadena compuesta de letras. Cada letra indica la
acción que realiza el robot, así:

L: el robot se mueve un metro a la izquierda.


R: el robot se mueve un metro a la derecha.
U: el robot se mueve un metro hacia arriba.
D: el robot se mueve un metro hacia abajo.
S: el robot dispara una onda de calor (que destruye a todo enemigo que esté a una distancia de
4 metros o menos).

Por tanto, una cadena como la siguiente:

LUUUSDD

Indica que el robot debe moverse un metro a la izquierda, tres metros hacia arriba, disparar una honda de
calor y después moverse dos metros hacia la derecha.

El programa debe verificar que ningún robot exceda los límites del espacio rectangular en donde se encuentran.
Un robot se auto-destruye si intenta traspasar dichos límites.

Si dos robots se tocan, se destruyen sin importar si son del mismo color o no.

A tener en cuenta:

- Asuma que todos los robots se mueven a la misma velocidad.


- Todos los robots inician su movimiento al mismo tiempo y se desplazan de manera concurrente
(todos los robots se mueven al mismo tiempo).
- Asuma que los robots son puntos (no tienen ancho, ni alto).
- Si dos robots de diferente color se atacan simultáneamente, ambos son destruidos.
- No es necesario mostrar el movimiento de los robots, sólo la posición final de cada uno.
- Una “cadena de movimiento” está compuesta por un máximo de 20 letras, no debe tener espacios
ni signos de puntuación.
- Las cadenas de cada robot pueden tener una longitud diferente.
- Asuma que los robots inician en posiciones con valor entero.
- El programa debe validar que el usuario ingrese valores correctos.

Construcción

El programa DEBE hacer uso del código fuente suministrado en el archivo robotAlg.zip. Su tarea es escribir el
cuerpo de las funciones. NO está permitido modificar los nombres o los parámetros de las funciones, ni agregar
variables globales. Tampoco está permitido realizar cambios a la función principal (main).

El código debe entregarse bien indentado y documentado.


Entregas

Se debe la entrega final, con las siguientes reglas:

Entrega:
- Se debe entregar
- Código fuente de las funciones:
o solicitarPosicion
o solicitarCadenaMovimiento
o solicitarDimensiones
o iniciarSimulacion
o terminar

Entrega:
- Semana 14 de clases
- Programa final (código fuente y ejecutable)

Evaluación

El proyecto vale el 40% de la asignatura:

El proyecto se puede realizar en grupos de máximo tres estudiantes.

También podría gustarte