Está en la página 1de 4

Universidad Tecnológica Centroamericana

UNITEC

Laboratorio de Programación III

Herbert Paz

Examen #1
Examen #1 Programación III

Objetivos
• Utilizar funciones en C++ para procesar conjuntos de datos.
• Reforzar el manejo de punteros y de memoria dinámica.
• Reforzar clases simples.

Desarrollo de la práctica
Para el desarrollo satisfactorio de los ejercicios, siga las instrucciones que a continuación se
le presentan, después de cada ejercicio encontrará preguntas que deberá desarrollar en
base al ejercicios elaborado.

Antes de comenzar
Puede repasar lo utilizado en el laboratorio en los siguientes links:

• https://www.youtube.com/watch?v=VshY11LZYck (Memoria dinámica en C++)

Ejercicio 1
La empresa “Oracle Corporation” ha pedido su ayuda para desarrollar CraftStar: XCOM, el
nuevo título de su exitosa serie de juegos de estrategia. El juego es muy similar a las damas.
El objetivo consiste en mover las piezas a través de los cuadros y capturar (“comer”) las del
oponente, hasta que su oponente sé quede sin piezas. Se juega alternando turnos, y el
primer jugador en mover es el que maneja las piezas blancas (parte inferior del tablero). En
cada turno el jugador mueve una pieza propia. Las piezas se mueven (cuando no capturan)
de acuerdo a sus propias especificaciones, siempre ocupando un espacio vacío. Un jugador
pierde cuando se ha quedado sin ninguna pieza. Los dos diferentes tipos de piezas y sus
reglas de movimiento son:

• Marine: Pieza básica. Se mueve en diagonal y captura saltando a su oponente


diagonalmente; no puede retroceder ni moverse verticalmente u horizontalmente.
• General: Puede moverse tantos espacios como sea posible vertical, horizontal o
diagonalmente. No puede saltar sobre otras piezas, captura igual que el marine.
*El general se obtiene cuando un marine llega al otro lado del tablero.
El programa deberá pedir el nombre de los dos jugadores y revelar el nombre del jugador
que ganó la partida. Las coordenadas se pedirán de la siguiente manera:
POSICION_INICIAL-POSICION_FINAL (ej. F6-E5)

Ponderación
Elemento Puntaje
Utilizar funciones 1.5
Utilizar clase simple 1.5
“Mover” y “comer” las piezas 1
Validar el “movimiento” de las piezas 3
Realizar la conversión de piezas 2
correctamente
No permitir: Violación de segmento (core 4
generado) [segmentation fault (core
dumped)]
Memoria dinámica 2
*Puntos extra por utilizar N-curses
Especificaciones de entrega
Deberá un archivo de texto con su nombre y número de cuenta y la dirección del repositorio
de github.

Nombre-Examen#1.txt