Vous êtes sur la page 1sur 8

Documentacin del programa Crisis en la frontera Versin 1.

2
Desarrollado por:
-

Camilo Andrs Gmez Galn


Bryan Alejandro Merlano Rodrguez
Cristian Rodrguez
Franklin Torres Torres

Introduccin
El presente proyecto tiene como fin desarrollar una simulacin digital de la
actual crisis en la frontera colombo-venezolana, sin tener en cuenta una
interfaz grfica de la simulacin completa en esta versin del programa y
mostrando al final nicamente los resultados de cada una de las 20
simulaciones ocurridas en el desarrollo del juego. Adems, incluye un conteo
final de los resultados globales.

Descripcin del programa.


El programa simula lo que corresponde a un determinado territorio ubicado
en la frontera venezolana. Este territorio es similar a un tablero de ajedrez
(8 filas y 8 columnas de celdas), y en algunas de estas celdas se ubica
aleatoriamente a un total de 10 colombianos, que corresponderan a
colombianos expulsados de Venezuela, y que para efectos del juego se
suponen montados en un caballo, de manera que sus movimientos en el
mapa estn dados por el movimiento del caballo en el ajedrez. Inicialmente
se pide al usuario que inserte el nombre de los 12 jugadores implicados en
la simulacin. Posteriormente tambin se ubican en el mismo terreno de
juego aleatoriamente (incluyendo las posiciones ya ocupadas por
colombianos) a dos venezolanos, que corresponden a guardias fronterizos
tratando de capturar a los colombianos. Del mismo modo, estos dos
jugadores se suponen montados en caballos, por lo que sus movimientos en
el terreno de juego estn sujetos a los movimientos del caballo en el tablero
de ajedrez. Si en algn momento determinado del desarrollo de la
simulacin un venezolano llega a ocupar la misma posicin de un
colombiano, entonces procede a capturarlo, y este colombiano queda
inhabilitado durante el resto de la simulacin. En el momento en que son
colocados aleatoriamente los dos venezolanos, el juego procede a imprimir
en pantalla la posicin actual de cada uno de los jugadores, adems del
nmero de colombianos capturados hasta el momento. A partir de este
momento el juego comienza a generar movimientos aleatorios sujetos a los
8 posibles movimientos de los caballos. Como primera medida selecciona a
uno de los colombianos y luego uno de sus posibles movimientos y lo
mueve a esa nueva posicin, y luego procede a seleccionar a uno de los
venezolanos y uno de sus posibles movimientos y tambin lo mueve a esa
nueva posicin. El movimiento de un colombiano y un venezolano
corresponde a un turno, y luego de cada turno el programa imprime en
pantalla las nuevas posiciones de los jugadores. La simulacin corresponde

a un total de 10 turnos, y luego de estos 10 turnos se hace un conteo total


de los colombianos capturados durante el desarrollo de la misma.

Aspectos a tener en cuenta en el desarrollo de la simulacin.


-

Ningn jugador colombiano puede moverse a una casilla ocupada por


otro jugador, sea colombiano o venezolano.
Un jugador venezolano puede moverse a una casilla vaca o a una
ocupada por un colombiano, generando la respectiva captura, pero no
a una casilla ocupada por un venezolano.
Ningn jugador puede salirse del terreno de juego durante el
desarrollo de la simulacin.
Cada uno de los posibles movimientos de un jugador est
representado por un nmero del 1 al 8, y as, cuando un jugador no
puede efectuar un movimiento hacia la casilla correspondiente al
movimiento seleccionado por el juego, se procede a probar la
posicin correspondiente al movimiento del siguiente nmero
generado por el aleatorio.
Cada uno de los jugadores colombianos est numerado del 1 al 10, y
los venezolanos del 1 al 2, y as, cuando determinado jugador no
puede efectuar ninguno de los 8 movimientos disponibles, el juego
procede a seleccionar al jugador con el siguiente nmero al generado
por el aleatorio.
El juego se ha desarrollado en cdigo C++, utilizando el compilador
proporcionado por CodeBlocks, usando comandos bsicos de
asignacin, bifurcacin y ciclos.
Para esta primera versin se tiene la limitante grfica, de manera que
el programa solo provee los resultados de la simulacin pero no
permite ver el tablero de la simulacin.

Descripcin funcional
El programa funciona a base de estructuras y funciones internas y externas
que los relacionan, adems de nodos que conectan estas mismas
estructuras. Adems de esto, estas estructuras estn conectadas entre s
con el uso de apuntadores.
El mapa de juego corresponde a una estructura compuesta
microestructuras llamadas casillas, siendo un total de 64.

de

Los jugadores colombianos corresponden a diez estructuras del tipo


jugador, que contiene una posicin y un nombre.
Los jugadores colombianos corresponden a dos estructuras del tipo
jugador, que contiene una posicin y un nombre.

En el main se agrupan todas las funciones en un determinado orden, de


manera que se pueda llevar a cabo el desarrollo del programa
adecuadamente.

Funciones
-

bool detectar_captura

Funcin que detecta si algn colombiano (i) ha sido capturado por algn
venezolano (j). Esta funcin nicamente detecta que se produjo una captura
por parte de un venezolano, pero no indica qu colombiano fue capturado.
Si esta funcin determina un valor verdadero activa la funcin
detectar_capturado, y de otro modo la mantiene inactiva.
-

int detectar_capturado

Funcin que se activa nicamente cuando la funcin detectar_captura


genera un valor verdadero. Se encarga de determinar la componente de un
jugador colombiano (i) una vez este ha sido capturado por un venezolano.
-

int llenar_vector

Funcin que llena con un valor entero todas las componentes de un vector
de tamao n. Es utilizada para asignar el valor de 0 a cada una de las
posiciones del vector mapa, con el fin de hacer una posterior diferenciacin
de las casillas vacas y ocupadas por colombianos o por venezolanos.
-

ostream& escribir_mapa

Funcin que escribe el vector x, que corresponde al mapa, como una


cuadrcula 8 x 8, que representa al tablero del desarrollo del juego
-

ostream& escribir_posiciones_colombianos

Funcin que escribe las posiciones de los 10 colombianos en forma de lista


en la interfaz del juego junto con las posiciones de los 2 venezolanos. Es
utilizada en cada una de las reiteraciones de la simulacin del turno,
adems de la distribucin inicial del tablero una vez han sido repartidos
todos los jugadores.
-

ostream& escribir_posiciones_venezolanos

Funcin que escribe las posiciones de los 2 venezolanos en forma de lista


en la interfaz del juego junto con las posiciones de los 10 colombianos. Es
utilizada en cada una de las reiteraciones de la simulacin del turno,
adems de la distribucin inicial del tablero una vez han sido repartidos
todos los jugadores.

int los_movimientos

Funcin constante que contiene el valor que debe ser aadido o sustrado
de la posicin de un jugador para realizar determinado movimiento. Cada
una de las 8 posiciones tiene su valor propio, y esta funcin es utilizada
cada vez que se va a efectuar un movimiento.

int cambio_de_casilla

Funcin que asigna a cada jugador la nueva posicin de acuerdo a la


constante del nmero del movimiento obtenido en su turno. Es utilizada
cada vez que un jugador es seleccionado para realizar un movimiento.
-

bool aux_movimiento

Funcin que determina si un movimiento es posible, teniendo en cuenta


que el jugador no puede salirse del tablero y que cada bando tiene sus
propias restricciones de movimiento de acuerdo a si puede situarse o no
en una casilla que est previamente ocupada por otro jugador. Es
utilizada cada vez que un jugador es seleccionado para realizar un
movimiento.
-

Int reiniciar_movimiento

Funcin que devuelve el valor de 1 al dado una vez que se han probado los
movimientos hasta el nmero 8 y ninguno de ellos es posible. Es utilizada
cada vez que el movimiento nmero 8 no se puede ejecutar.
-

bool casilla_libre_colombianos

Funcin que determina si la casilla de destino de un colombiano est libre o


est ocupada por algn otro jugador, con el fin de validar o invalidar su
movimiento. Es utilizada cada vez que un colombiano va a realizar un
movimiento.
-

bool casilla_libre_venezolanos

Funcin que determina si la casilla de destino de un venezolano est libre o


est ocupada por algn otro jugador, con el fin de validar o invalidar su
movimiento. Es utilizada cada vez que un venezolano va a realizar un
movimiento. La diferencia con la anterior funcin radica en que un
venezolano puede moverse a la casilla de un colombiano, mientras que un
colombiano no puede hacerlo.
-

int aux_hacer_movimiento_venezolanos

Funcin que devuelve el vector con las posiciones de los venezolanos


despus de hacer un movimiento.
-

int aux_hacer_movimiento_colombianos

Funcin que devuelve el vector con las posiciones de los colombianos


despus de hacer un movimiento.
-

int hacer_movimiento_venezolanos

Esta
funcin
hace
lo
mismo
que
la
funcin
aux_hacer_movimiento_venezolanos, pero la variable contador se inicializa
en 0.
-

int hacer_movimiento_colombianos

Esta
funcin
hace
lo
mismo
que
la
funcin
aux_hacer_movimiento_colombianos, pero la variable contador se inicializa
en 0.
-

bool casilla_libre_primer_movimiento_venezolanos

Esta funcin evala si un venezolano puede moverse a determinada casilla


en su primer movimiento. Se utiliza para asegurar que el segundo
venezolano no aparezca inicialmente en la casilla ocupada previamente por
el primer venezolano.

int aux_colocar_venezolanos_aleatoriamente

Funcin que coloca a cada venezolano aleatoriamente en una posicin del


vector al inicio de la simulacin, evaluando de una vez si la casilla a ocupar
ya est ocupada por el otro venezolano. Se emplea en la funcin int
lista_incial_venezolanos para repartir a ambos venezolanos en la simulacin.
-

int lista_incial_venezolanos

Funcin que sirve para distribuir a los venezolanos en el vector del mapa al
inicio de la simulacin. Es una ampliacin de la funcin int
aux_colocar_venezolanos_aleatoriamente
-

bool casilla_libre_primer_movimiento_colombianos

Esta funcin evala si un colombiano puede moverse a determinada casilla


en su primer movimiento. Se utiliza para asegurar que ninguno de los
colombianos aparezca inicialmente en una casilla ocupada previamente por
otro colombiano repartido anteriormente.
-

int aux_colocar_colombianos_aleatoriamente

Funcin que coloca a cada colombiano aleatoriamente en una posicin del


vector al inicio de la simulacin, evaluando de una vez si la casilla a ocupar
ya est ocupada por otro colombiano. Se emplea en la funcin int
lista_incial_colombianos para repartir a ambos colombianos en la
simulacin.
-

int lista_incial_colombianos

Funcin que sirve para distribuir a los colombianos en el vector del mapa al
inicio de la simulacin. Es una ampliacin de la funcin int
aux_colocar_colombianos_aleatoriamente
-

int poner_piezas_mapa

Funcin que se encarga de asignar el valor de 1 a las casillas del vector


mapa ocupadas por colombianos, y el valor 2 para las casillas ocupadas
por venezolanos. Se utiliza cada vez que un jugador ocupa una nueva casilla
-

int dado_jugador

Funcin que retorna un nmero aleatorio entre 0 y 9 para escoger jugador


colombiano o entre 0 y 1 para escoger jugador venezolano. Se utiliza en
cada una de los turnos efectuados durante la simulacin.
-

int realizar_capturas

Funcin que se lleva a cabo una vez que la funcin detectar_captura genera
un valor verdadero. Esta funcin compara las posiciones de los colombianos
con la de los venezolanos para conocer cul de los colombianos fue
capturado.
-

int colombianos_capturados

Funcin que cuenta el nmero de colombianos que han sido capturados por
venezolanos. Se utiliza al final de la simulacin para dar un reporte final de
los colombianos capturados.

Caso de Uso
1.1

Descripcin

Simula el conflicto entre colombianos y venezolanos, por medio de un


tablero 8x8 usando movimientos aleatorios correspondientes a los
movimientos posibles para el caballo en el popular juego de ajedrez

1.2

Actores

1.2.1 Usuario: Representa al usuario del sistema, con capacidad


para ejecutar el programa y dar los comandos necesarios para que este se
ejecute apropiadamente

Pre condiciones
-

El usuario debe usar flecha arriba para ejecutar el programa


El usuario debe insertar los nombres correspondientes a los
colombianos y venezolanos
Los venezolanos pueden caer en casillas donde estn colombianos, y
luego proceder a capturarlos

2.1

Los colombianos no pueden caer en casillas donde hay colombianos o


venezolanos
Los personajes no se pueden salir del tablero 8 x 8
En la pantalla de la simulacin debe presentarse el primer aleatorio
obtenido antes de cada movimiento

Autenticacin del usuario:

No necesaria

2.2

Cargue de la informacin:

La informacin de los colombianos y venezolanos, adems de los


movimientos, debe estar precargada.

Flujo de eventos

3.1

Flujo bsico

1. El sistema solicitar al usuario los nombres correspondientes a los


colombianos y venezolanos
2. El sistema generar las posiciones aleatorias de los colombianos y
venezolanos
3. El usuario procede a ejecutar el sistema por medio de la flecha hacia
arriba
4. Se genera un aleatorio para elegir el colombiano que va a moverse
5. Se genera un aleatorio para elegir el movimiento que va a ejecutar el
colombiano anteriormente seleccionado
6. El sistema procede a efectuar el movimiento correspondiente a los
aleatorios obtenidos para el colombiano
7. Se genera un aleatorio para elegir el venezolano que va a moverse
8. Se genera un aleatorio para elegir el movimiento que va a ejecutar el
venezolano anteriormente seleccionado
9. El sistema procede a efectuar el movimiento correspondiente a los
aleatorios obtenidos para el venezolano
10.Se comprueban las posiciones de los venezolanos y los colombianos
11.Se presenta en pantalla los aleatorios y el tablero del programa

Este flujo se repite durante 10 turnos

12.Se presentan los resultados finales de la simulacin, con el total de


colombianos capturados
13.Finalizacin de la simulacin

Flujos Alternativos

4.1. Si en el proceso nmero dos un venezolano ocupa una casilla


donde se encuentra un colombiano, ste ser capturado automticamente
4.2. Si en la eleccin de los movimientos, dadas las restricciones del
tablero, un colombiano no puede moverse segn el aleatorio en el paso 5,
se procede a realizar el movimiento correspondiente al siguiente aleatorio
4.3. Si el colombiano no puede realizar ningn movimiento, proceder
con el siguiente colombiano
4.4. Si en la eleccin de los movimientos, dadas las restricciones del
tablero, un venezolano no puede moverse segn el aleatorio en el paso 7,
se procede a realizar el siguiente movimiento
4.5. Si un colombiano no puede efectuar ningn movimiento, el
sistema automticamente seleccionar al colombiano correspondiente al
siguiente nmero del aleatorio de seleccin de jugador
4.6. Si un venezolano no puede efectuar ningn movimiento, el
sistema automticamente seleccionar al otro venezolano
4.7. Si despus de los movimientos hay un venezolano en la misma
casilla que un colombiano, el colombiano ser capturado

Vous aimerez peut-être aussi