República Bolivariana de Venezuela
Ministerio del Poder Popular para la Educación
Instituto Politécnico Universitario
Santiago Mariño
Sede Maracay
Programación en C++,
El juego Del Ahorcado
Estudiantes:
Jesús Peña C.I. 30.556.093
Albanys Duche C.I. 31.117.030
Prof.: Danny Cifuentes
Capítulo 1
Resumen
Resumen
El propósito de este juego es hacerle resaltar y mostrar que nuestro programa
sea lo más apropiado posible, aplicando nuestros conocimientos adquiridos en
cada clase y demostrar nuestras habilidades para programar, en el cual le
presentaremos el Juego del ahorcado, donde consiste en adivinar una palabra, letra
por letra, podemos ver que por cada intento fallido se le restará una vida al
jugador, sin embargo ganará si logra adivinar las letras correspondientes o si logra
descifrar la palabra completa, dando así un propósito de diversión y
entretenimiento a los participantes.
Este juego conllevó a muchos estudios de las librerías correspondientes para
que se realizara correctamente su funcionalidad. Podemos incluir que estos juegos
se relacionan con la programación informática, y ayuda para aumentar el uso de la
programación a gran escala.
Programación en C++, El juego Del Ahorcado, librerías, palabra, letra, jugador,
adivinar
Índice
Introducción
Propósito de este Proyecto
Capítulo 2
Antecedentes
Software a realizar
Bases Teóricas y Conceptuales
Lenguajes de Programación: En términos generales, un lenguaje de
programación es una herramienta que permite desarrollar software o
programas para computadora. Los lenguajes de programación son
empleados para diseñar e implementar programas encargados de definir y
administrar el comportamiento de los dispositivos físicos y lógicos de una
computadora.
Lo anterior se logra mediante la creación e implementación de
algoritmos de precisión que se utilizan como una forma de comunicación
humana con la computadora.
Código binario: El ordenador, en el fondo, sólo entiende un lenguaje
conocido como código binario o código máquina, consistente en ceros y
unos. Es decir, sólo utiliza 0 y 1 para codificar cualquier acción.
Por supuesto, ningún programador usa código binario para expresar un
programa. En realidad hay toda una cantidad de capas de software y
hardware para conseguir que, cuando nosotros tenemos que expresar
programas, no tengamos que pensar en la complejidad de codificar de una
manera tan compleja.
Lenguaje máquina: Es el sistema de códigos interpretable
directamente por un circuito microprogramable, como el microprocesador
de una computadora. Este lenguaje se compone de un conjunto de
instrucciones que determinan acciones que serán realizadas por la
máquina. Y un programa de computadora consiste en una cadena de estas
instrucciones de lenguaje de máquina (más los datos).
Normalmente estas instrucciones son ejecutadas en secuencia, con
eventuales cambios de flujo causados por el propio programa o eventos
externos. El lenguaje máquina es específico de cada máquina o
arquitectura de la máquina, aunque el conjunto de instrucciones
disponibles pueda ser similar entre ellas.
Lenguajes de bajo nivel: Un lenguaje de programación de bajo nivel
es el que proporciona poca o ninguna abstracción del microprocesador de
una computadora. Consecuentemente, su trasladado al lenguaje máquina
es fácil. El término ensamblador (del inglés assembler) se refiere a un
tipo de programa informático encargado de traducir un archivo fuente,
escrito en un lenguaje ensamblador, a un archivo objeto que contiene
código máquina ejecutable directamente por la máquina para la que se ha
generado.
Lenguaje de alto nivel: Los lenguajes de programación de alto nivel
se caracterizan porque su estructura semántica es muy similar a la forma
como escriben los humanos, lo que permite codificar los algoritmos de
manera más natural, en lugar de codificarlos en el lenguaje binario de las
máquinas, o a nivel de lenguaje ensamblador.
El lenguaje C: Es un lenguaje de programación (considerado como
uno de los más importantes en la actualidad) con el cual se desarrollan
tanto aplicaciones como sistemas operativos a la vez que forma la base de
otros lenguajes más actuales como Java, C++ o C#.
El Lenguaje C++: Primero se le conoció como “C con clases”. Luego se
cambió a C++ que significa “incremento de C”, dando a entender que se trata de
una extensión del lenguaje de programación C. C++ es un ejemplo de lenguaje de
programación compilado, multiparadigma, principalmente de tipo imperativo y
orientado a objetos, incluyendo también programación genérica y funcional.
¿Qué es una variable en programación? Una variable es donde se almacenan
y se recuperan los datos de un programa. Así de simple. En programación, la
utilizamos para guardar datos y estados, asignar ciertos valores de variables a
otras, representar valores de expresiones matemáticas y mostrar valores por
pantallas.
¿Qué es un dato? Son empleados para crear y organizar los algoritmos que
todo sistema informático o computacional persigue, los datos son la expresión de
las características puntuales de las entidades sobre las cuales operan dichos
algoritmos. Es decir, son el input inicial, a partir del cual puede procesarse y
componerse la información.
¿Qué son Condicionales? Los condicionales son estructuras que
permiten elegir entre la ejecución de una acción u otra. Son una
condición, como bien indica su nombre, así que podemos pensar en ellos
como si fueran el “si” condicional que usamos dentro de una frase. Por
eso, utilizando la palabra en inglés, podemos expresar un condicional
dentro de un código como IF.
Operadores lógicos: Para crear condiciones, por muy simples que
sean, se necesitan los operadores lógicos. A continuación se van a
explicar de modo que, puedas escribir condiciones ajustadas a lo que
necesites.
== significa “igual”.
significa “mayor que”.
< significa “menor que”.
!= significa “si es distinto”.
&& significa “Y”, la conjunción copulativa.
|| significa “O”, la conjunción adversativa.
Tipos de variables en C++
En Dev C++ podemos usar varios tipos de variables, y cada uno
corresponde a un tamaño máximo de un número, un carácter o incluso una
proposición lógica (verdadero o falso). Cuanto mayor sea el número que
pueda admitir, más espacio en memoria ocupará. A continuación se
explican estas variables:
int: Para valores tipo números enteros, por ejemplo 520,−250,
999,−2400
float: Para valores tipo números no enteros, o con decimales, por
ejemplo 5.25, 350.82, -0.8616, 713.32, -0.321.
char: Para valores tipo carácter. Un carácter es un símbolo, como
los que usamos para escribir, por ejemplo ‘F’, ‘t’, ‘m’, ‘/’, ‘8’. En
este último caso el 8 será considerado como un carácter, y no un
número, debido a que esta entre comillas simples y tiene el tipo de
dato char.
bool: Para valores de tipo booleanos, es decir verdadero o falso, o
también 0 y 1.
Estructuras Repetitivas: Las estructuras repetitivas se utilizan cuando
se quiere que un conjunto de instrucciones se ejecuten un cierto número
finito de veces, por ejemplo, escribir algo en pantalla cierta cantidad de
veces, mover un objeto de un punto a otro cierta cantidad de pasos, o
hacer una operación matemática cierta cantidad de veces.
FOR (PARA): Esta estructura ejecuta las acciones del cuerpo del bucle
un número especificado de veces, y de modo automático controla el
número de iteraciones o pasos.
WHILE (MIENTRAS): Repite el cuerpo del bucle mientras se cumpla
una determinada condición.
DO WHILE (HACER MIENTRAS): La estructura do while cumple la
misma función que la estructura while. La diferencia está en que la
estructura while comprueba la condición al inicio y repetir lo hace al
final. Es por ello que la estructura do while se ejecuta por lo menos una
vez.
¿Qué es una librería en programación? En este sentido, una librería
es un conjunto de archivos que se utiliza para desarrollar software. Suele
estar compuesta de código y datos, y su fin es ser utilizada por otros
programas de forma totalmente autónoma. Simple y llanamente, es un
archivo importable.
Librerías estáticas: Estas se graban en un programa como ejecutables.
Sirven exclusivamente para esto; después, podemos borrarlas sin
problemas, ya que el programa seguirá funcionando con la función
necesaria.
¿Qué es una libreria dinámica? Una librería dinámica es aquella que
se carga a la hora de arrancar un programa. A diferencia de las bibliotecas
estáticas, las bibliotecas dinámicas utilizan recursos independientes al
ejecutable que las llama.
¿Qué es un Namespace? Es una forma de crear un bloque, y que todas las
funciones que estén dentro del mismo, estén asociadas a ese namespace (o espacio
de nombres), al cual se le asigna un nombre para identificarlo.
Arreglo: Un arreglo es un conjunto de datos, los cuales se almacenan
en memoria de manera y para diferenciar los elementos de un arreglo se
utiliza un índice. En el lenguaje C++, un arreglo es un tipo de dato
compuesto. Los arreglos pueden tener una o varias dimensiones.
Diagrama de Flujo del Programa
Pseudocódigo del Programa
Inicia el Programa
Se Escoge la
palabra
El jugador
escribe una
letra
Si No
Las letras son ¿La letra
El jugador pierde una
reveladas de la está en la
vida
palabra oculta palabra?
No Si
¿Se han
¿Le
revelado
quedan
todas las
vidas al
letras?
jugador?
Si No
Termino el juego, el
Se cierra el Termino el juego, el
jugador ha adivinado la
programa jugador ha perdido
palabra
Proceso ElAhorcado
Definir vidas = 6, opc Como Entero
Definir palabra, pal_oculta, ltr Como Caracter
Definir finDelJuego = false, correcto = false Como Logico
Titulo El Ahorcado;
Color Amarillo sobre negro;
Escribir El Ahorcado;
Escribir Debes adivinar la palabra letra a letra para ganar (no se
puede escribir mas de 1 letra a la vez)
Etiqueta opcion:
Escribir ¿Que palabra quisieras adivinar?
Salto de Párrafo
Escribir Palabra 1
Escribir Palabra 2
Escribir Palabra 3
Salto de Párrafo
Leer opc;
Evaluar (opc){
Opcion 1:
pal_oculta = TRANSMISION; palabra = ___________;
Opcion 2:
pal_oculta = COMPUTADORA; palabra = ___________;
Opcion 3:
pal_oculta = LECHOZA; palabra = _______;
Por Defecto:
Escribir Opcion no valida; Pausa del sistema; Limpiar Pantalla;
ir a Etiqueta opcion;
Mientras (finDelJuego sea Falso)
{ Borra Pantalla
correcto = Falso;
Escribir "Palabra: " Vari
Salto de Párrafo;
Escribir “Vidas: " Escribir vidas;
Escribir Escriba una letra: ;
Leer ltr;
ltr[0] = Mayuscula(ltr[0]);
Si ([Link]ño Mayor que 1)
Entonces Escribir "No se puede ingresar mas de 1 letra a la vez";
Pausa del Sistema;
Si No
Para (Entero a=0; a Menor Que Tamaño pal_oculta; a = a+1)
Entonces Si (ltr[0] Igual a pal_oculta[a])
Entonces palabra[a] = pal_oculta[a]; correcto = Verdadero;
Si (pal_oculta Igual A palabra) Entonces finDelJuego = Verdadero;
Si (correcto Igual a falso)
Entonces vidas = vidas - 1; Escribir "letra incorrecta"; Pausa del
Sistema; correcto = Falso;
Si (vidas Igual a 0) Entonces finDelJuego = Verdadero;
Borrar Pantalla;
Si (pal_oculta Igual a palabra){
Color Celeste sobre Negro;
Escribir “Palabra: " Escribir palabra l;
Escribir "Felicidades, adivinaste la palabra y has ganado el
juego!”}
Si no
{Color del Sistema Rojo);
Escribir “Se termino el juego, no lograstes adivinar la palabra.”;}
Salto de Párrafo;
Pausa del Sistema;
FinProceso
Código Fuente del Programa en C++
#include <iostream>
#include <ctime>
using namespace std;
int vidas = 6, opc;
string palabra, pal_oculta, ltr; /* La variable pal_oculta es la palabra que
tiene que adivinar el jugador,
"ltr" es para las letras escritas por pantalla. */
bool finDelJuego = false, correcto = false; // La variable tipo Bool
decide si el juego ha terminado y si el jugador se ha equivocado.
main (){
system("title El Ahorcado");
system("color 0e");
cout << " El Ahorcado\n" << endl;
cout << "Debes adivinar la palabra letra a letra para ganar\n(no se
puede escribir mas de 1 letra a la vez)" << endl;
opcion: //Este comando hace que el codigo regrese a este punto si
se ingresa una opcion invalida.
cout << "¿Que palabra quisieras adivinar?" << endl;
cout << endl;
cout << "Palabra 1" << endl;
cout << "Palabra 2" << endl;
cout << "Palabra 3" << endl;
cout << endl;
cin >> opc;
switch (opc){ //Selecciona las palabras indicadas por la variable opc
(Opcion).
case 1:
pal_oculta = "TRANSMISION"; palabra = "___________"; break;
case 2:
pal_oculta = "COMPUTADORA"; palabra = "___________"; break;
case 3:
pal_oculta = "LECHOZA"; palabra = "_______"; break;
default:
cout << "Opcion no valida" << endl; system("pause"); system("cls");
goto opcion; break;
//-------------------------------------------------------------------------------------
// A partir de este punto ya empezo el juego
while (finDelJuego == false) //Estas condiciones hacen que el juego
continue hasta que el jugador o la computadora ganan.
{ system("cls"); //Este comando limpia la pantalla cada vez que se
ingresa una letra.
correcto = false;
cout << "Palabra: " << palabra << endl; //Muestra al jugador la
palabra mientras se va completando.
cout << endl;
cout << "Vidas: " << vidas << endl;
cout << "Escriba una letra: ";
cin >> ltr;
ltr[0] = toupper(ltr[0]); //Este comando asegura que la letra sea
mayuscula
if ([Link]() > 1) //Detecta si solo es una letra.
{cout << "No se puede ingresar mas de 1 letra a la vez\n" << endl;
system("pause");
else
for (int a=0; a < pal_oculta.size(); ++a) /*Este Estructura Repetitiva
revisa cada letra de la palabra
hasta que la palabra oculta se revele en
su totalidad*/
{if (ltr[0] == pal_oculta[a])
{palabra[a] = pal_oculta[a]; correcto = true;
if (pal_oculta == palabra) {finDelJuego = true;}
if (correcto == false) /* Si no se detecta una letra dentro de la
palabra oculta se pierde una vida
y si no quedan vidas se termina el juego */
{--vidas; cout << "letra incorrecta\n"; system("pause"); ; correcto =
false;
if (vidas == 0){finDelJuego = true;}
}
//-------------------------------------------------------------------------------------
system("cls");
if (pal_oculta == palabra){ //Una vez salido del bucle detecta si el
jugador gano o perdio.
system("color 0b");
cout << "\nPalabra: " << palabra << endl;
cout << "Felicidades, adivinaste la palabra y has ganado el juego!"
<< endl;}
else
{system("color 0c");
cout << "Se termino el juego, no lograstes adivinar la palabra."<<
endl;}
cout << endl;
system("pause");
}
Capítulo 3
Referencias Bibliográficas
[Link]
mod_resource/content/1/contenido/[Link]
[Link]
[Link]
[Link]
[Link]
[Link]
[Link]
[Link]
[Link]
[Link]
[Link]
[Link]
[Link]
[Link]
[Link]
libro4/41_definicin_de_un_arreglo.html