Sie sind auf Seite 1von 8

PROYECTO FINAL QUIEN QUIERE SER

MILLONARIO?
JUAN ALEJANDRO VILLAMIL QUINTERO
DIEGO FERNANDO ERASO RODRGUEZ
DOONOVAN RODRGUEZ TAPIAS

8 de Diciembre del 2014


Resumen:
Se realiz una versin digital del famossimo juego "Quin quiere ser millonario?" En el
lenguaje de computacin C++ utilizando los conocimientos que hemos ganado en la materia
de programacin de computadores. Dado que la creacin del programa implica todos los
conocimientos vistos hasta ahora en el curso, abordamos los problemas ms grandes como
la sumatoria de varios problemas pequeos, as la solucin de estos problemas ms sencillos
nos dar como resultado la solucin del problema mayor.
Se tuvieron los siguientes enunciados por objetivos:
1. Hacer un repaso general de toda la temtica del curso con el fin de dar solucin a
los problemas que se nos presenten.
2. Superar las dificultades que nos impiden progresar en el campo de la
programacin.
3. Utilizar los conceptos matemticos ya aprendidos para generar una programacin
funcional.
4. Implementar la solucin al problema de la manera ms eficiente usando el
lenguaje de Programacin c++.

Palabras Claves:
Lenguaje de programacin C++, quin quiere ser millonario, programa, computacin,
programacin

Introduccin:
Quin quiere ser millonario? Es un juego de cultura general, por lo general consta de 15
preguntas que aumentan su dificultad gradualmente; hemos decidido realizar este juego
pero de tan slo 10 preguntas, adems se contarn con 2 seguro en las preguntas 3 y 6, en
el juego original si se tena duda sobre la respuesta de alguna pregunta se poda hacer uso
de 3 ayudas en total, las cuales solamente se podan usar una vez en todo el juego, las cuales
son: 50:50, el pblico y la llamada a un amigo.

Creemos que es un gran reto para demostrar nuestras habilidades recin adquiridas en
programacin de computadoras, pues gracias a la complejidad del juego podemos usar
condicionales, ciclos, matrices, arreglos hasta estadstica; despus de todo en programacin
la nica manera de adquirir esa sabidura y experiencia es en la prctica.

Metodologa:
El diseo se dividi en varias partes las cuales a continuacin describiremos y daremos
solucin:
Interfaz
Como el programa se planea ejecutar por consola nos encontramos limitados en cuanto a
grficos por ello slo constara de una interfaz sencilla que explote las mayores virtudes que
nos ofrece C++ en cuanto a consola, en la interfaz que hemos creado hasta el momento el
usuario de una manera muy intuitiva puede participar en cada etapa del juego hasta que
sea eliminado.
Lectura de archivos de texto
Para la lectura del texto utilizamos conjuntamente la librera fstream e iostream ya que al
usarlas simultneamente logramos resolver fcilmente el problema de la lectura de texto.

Funciones utilizadas
Utilizamos algunas funciones presentadas en el libro de programacin y otras que
investigamos por nuestra cuenta, el propsito de ests funciones fueron las siguientes:
1. Para crear cadenas.
2

2.
3.
4.
5.
6.
7.

Eliminar cadenas.
Getline.
Longitud de las cadenas.
Librera string.
Longitud de la cadena s1.
Copia cadena s2 en s1.

Para mayor informacin sobre su estructura, observar el ANEXO 2.

Las preguntas
Dado que el principal logro del juego es responder correctamente las preguntas, se las debe
presentar al usuario de la forma ms clara posible para que si conoce la respuesta no tenga
duda en elegir la correcta, adems escogeremos preguntas de cultura general para que toda
persona tenga opcin de ganar.
Estructura preguntas
Diez preguntas de seleccin mltiple (A, B, C y D), de las cuales la mitad son de conocimiento
general y la otra mitad relacionadas con el curso de programacin de computadores; estas
preguntas debern tener una frmula general presentada a continuacin:
Nmero_Pregunta
Pregunta
Respuesta_A
Respuesta_B
Respuesta_C
Respuesta_D
Est frmula general fue proporcionada por el Docente Camilo Ernesto.
Verificacin de datos de entrada
Al igual que todo programa, el que estamos diseando est planeado para funcionar
correctamente solo con ciertos tipos de datos, por lo que incluiremos una seccin de
validacin usando ciclos en la cual se mostrar informacin por pantalla una y otra vez hasta
que usuario ingrese la informacin correcta que se le solicita para ejecutar cada parte del
juego. Podemos usar un ciclo do-while con el cual se solicita que se ingresen los valores, se
leen los valores que fueron introducidos por el usuario mediante el teclado y luego se
verifica si se incumple con alguna de las condiciones que deben cumplir las variables, si la
informacin es correcta se contina la ejecucin del cdigo.
3

Verificacin de respuesta
Debido a que cada respuesta correcta aumentar el premio del participante y le permite
avanzar en el juego, hay que estar seguro de que la respuesta ingresada sea La correcta,
para ello utilizaremos un condicional if, en este caso si el valor ingresado por el usuario
corresponde a la respuesta correcta se le mostrara una nueva pregunta para que contine
el juego de lo contrario el jugador abra perdido y se ejecutaran las lneas correspondientes
a la etapa final del juego.
Control del nivel de dificultad
A medida que el juego avanza el nivel de dificultad se incrementa exponencialmente por lo
que la pregunta de mayor grado de dificultad ser la ltima. Dicho esto se debe tener muy
en cuenta que la pregunta ms complicada no se muestre al comienzo del juego ya que no
le permitira a la mayora de los usuarios avanzar normalmente, para solucionar esto en el
archivo de texto las preguntas estn ordenadas por dificultad as evitaremos que sucedan
casos como el dicho anteriormente.
Retirarse o continuar
Luego de contestar correctamente cada pregunta el usuario tendr la opcin de retirarse
con lo que ha ganado o continuar en el juego, para lograr esto incluiremos despus de cada
pregunta contestada correctamente una seccin en la que le mostraremos al usuario el
premio que lleva hasta el momento y una pregunta como la siguiente: seor (nombre de
la persona) ha contestado correctamente desea retirarse con lo que ha ganado o continuar
Seguros
Para el desarrollo correcto del juego un factor importante es la inclusin de seguros en las
preguntas 3 y 6, por ello incluiremos banderas o contadores que nos indiquen cuando el
jugador ha llegado a ese punto.
Fin del juego
Ocurrir en caso de que el usuario:
Responda incorrectamente una pregunta.
Se retire del juego con el premio ganado hasta ese momento.
Complete satisfactoriamente el juego y se lleve el premio mximo.
Si ocurre, se ejecutaran las lneas correspondientes a la etapa final del juego y se mostraran
las estadsticas.

Repeticiones
Por lo menos tres concursantes podrn participar en el juego.
Para lograr lo anterior utilizaremos un ciclo que repita el juego un nmero limitado de veces.
Ayuda
Si el usuario no pueda responder una pregunta hay disponible dos comodines o ayudas que
pueden ser utilizadas una nica vez cada una durante el transcurso del juego.

Cincuenta por ciento (50:50): El concursante pide al anfitrin de que el ordenador


eliminar dos de las opciones de respuestas incorrectas, dejando al concursante con
una eleccin entre la respuesta correcta y una incorrecta uno.
Para que el programa elimine 2 de las 4 respuestas usaremos la librera cstdlib y la
funcin system (cls) para limpiar pantalla luego dado que cada pregunta esta
guardad en una cadena distinta y est relacionada con las respuestas que le
corresponde, solo basta con eliminar al azar 2 de las 3 respuesta incorrectas y
mostrar de nuevo la informacin al usuario.
Ayuda del pblico: Para simular las repuestas de 30 personas del pblico ficticio se
generaran porcentajes al azar que correspondientes a cada una de las posibles
respuestas y luego ser presentada en forma de histograma para que el usuario
haga su eleccin.
Otras ayudas: Dependiendo de la disponibilidad de tiempo que tengamos has el da
de la entrega final se puede agregar tanto el cambio de pregunta como la llamada
ficticia a un amigo.

Resultados

Conclusiones:
Mediante la realizacin de este proyecto se obtuvieron nuevos conocimientos:
Al desarrollar el juego en C++ obtuvimos ms versatilidad en el manejo del
lenguaje.
Aprendimos a trabajar en grupo y tolerarnos en diversas situaciones.
Debido a que el juego creado no conlleva mucha dificultad en el aspecto de
desarrollo y creacin cuando se tienen conocimientos bsicos de programacin es
una buena forma de mostrar que es fcil aplicaciones propias.

Bibliografa
[1] J. Gmez, A. Rodrguez y C. Cubides, Programacin de Computadores, Bogot: Presentaciones
De Clase, 2013.
[2] P. Barry y D. Griffiths, Head First Programming, Estados Unidos: O'Reilly Media, 2009.
[3] Annimo, Wikipedia, 30 Noviembre 2014. [En lnea]. Available:
http://es.wikipedia.org/wiki/%C2%BFQui%C3%A9n_quiere_ser_millonario%3F#Comodines.
[ltimo acceso: 02 Diciembre 2014].

ANEXO 2
1. Para crear cadenas
char* crear_cadena(int n){
return new char[n];
};
2. Eliminar cadenas
void liberar_cadena(char* x){
delete[] x;
return;
};
3. Funcin getline
getline (istream es, string & str, delim char)
Extrae caracteres de es y los almacena en str hasta que el carcter de delimitacin
delim se encuentra (o el carcter de nueva lnea, '\ n' , ). La extraccin tambin se detiene
cuando se alcanza el final del archivo, es una o la otra.
4. Funcin longitud de cadenas
int longitud_parcial(char* x, int i){
if(x[i] == '\0'){
return 0;
};
return 1 + longitud_parcial(x, i + 1);
};
int longitud_cadena(char* x){
return longitud_parcial(x, 0)
5. Funciones de la librera string
strlen (s1);
6. Devuelve la longitud de la cadena s1
strcpy (s1, s2);
7. Copias cadena s2 en s1 cadena
strcat (s1, s2);