UNIVERSIDAD CENTRAL DEL ECUADOR
FACULTAD DE INGENIERÍA, CIENCIAS FÍSICAS Y MATEMÁTICA INGENIERÍA EN DISEÑO INDUSTRIAL PROGRAMACIÓN I ING. WAGNER LUCERO TRABAJO DE PROGRAMACIÓN ESTUDIANTES: ALEXANDER MUZO FRANCISCO RUBERTO FRANCISCO ERAZO LUIS CURIPOMA ROBERTO URQUIZO CARLOS LOGROÑO CURSO: PRIMERO PARALELO: PRIMERO
SEMESTRE ABRIL 2015-SEPTIEMBRE 2015
1
Tabla de contenido Introducción ........................................................................................................................................ 4 Objetivo General ................................................................................................................................. 5 Objetivos Específicos ........................................................................................................................... 5 Marco Teórico ..................................................................................................................................... 6 Historia De La Programación ............................................................................................................... 6 Definición ............................................................................................................................................ 7 Características ..................................................................................................................................... 7 Paradigmas En Lenguajes De Programación ....................................................................................... 7 Tendencias Actuales ............................................................................................................................ 8 Clasificación De Los Lenguajes De Programación ............................................................................... 8 Clasificación Según Nivel De Abstracción ........................................................................................ 8 Clasificación Según Paradigma ........................................................................................................ 9 Clasificación Según La Forma De Ejecución .................................................................................. 10 Lenguajes de Programación Visual Basic .......................................................................................... 10 Definición: ..................................................................................................................................... 10 C++ ..................................................................................................................................................... 11 Definición ...................................................................................................................................... 11 Java .................................................................................................................................................... 12 Definición ...................................................................................................................................... 12 Entorno de Desarrollo Integrado ...................................................................................................... 12 Ejemplos de IDES: .............................................................................................................................. 12 Anexos ............................................................................................................................................... 13 Visual Basic ........................................................................................................................................ 13 Desarrollo Del Juego De Ahorcado En Visual Basic ........................ ................................. .................. .................. .................. ................... .......... 13 Código ........................................................................................................................................... 13 C++ ..................................................................................................................................................... 16 Desarrollo Desarr ollo Del Juego De Ahorcado Ahorcad o En C++ ................................... .................. ................................... .................................... .............................. ............ 16 Código ........................................................................................................................................... 17 Java .................................................................................................................................................... 21 Desarrollo Desarr ollo Del Juego De Ahorcado Ahorcad o En Java .................................. ................. ................................... .................................... .............................. ............ 21
2
Código ........................................................................................................................................... 21 Conclusiones ..................................................................................................................................... 23 Recomendaciones ............................................................................................................................. 23 Bibliografía ........................................................................................................................................ 24
3
Introducción
Introducción En la actualidad, el conocimiento de programación se encuentra fuertemente influenciado en la creación de aplicaciones informáticas y videojuegos; este es el proceso en el cual una persona desarrolla y crea un programa utilizando alguna herramienta que le permita escribir el código (el cual puede estar en uno o varios lenguajes, tales como C++, Java y Visual Basic ) y de otra que sea capaz de “traducir” todo ese código, esto es lo que se conoce como compilación y es necesario para que el código pueda ser ejecutado por la plataforma para para la cual haya haya sido creado. creado. El ahorcado es uno de los juegos más conocidos a nivel mundial, consiste en un juego de adivinanzas de lápiz y papel para dos o más jugadores. Un jugador piensa en una palabra, frase u oración y el otro trata de adivinarla por medio de letras, teniendo un número limitado de oportunidades. oportunidades. El objetivo del trabajo es desarrollar un algoritmo para poder jugar El ahorcado en diferentes plataformas, para ello utilizamos 3 de los códigos más conocidos en la programación, programación, que son C++, C++, Visual Basic y Java. Para crear estos programa comenzamos realizando el código en Dev-C++ para luego poder transferirlo transferirlo a los demás programas programas y lenguajes. Después de tener tener una base sólida del algoritmo en dicho programa, vamos a transferir dicho código creado hacia Java y Visual Basic, utilizando herramientas aprendidas en clase, añadiendo facilidades de programación, a lo que se sumó otros dos paradigmas que ya estaba admitidos (programación estructurada y la programación programación orientada orientada a objetos). objetos).
Objetivo General Desarrollar los algoritmos necesarios para la creación del juego del ahorcado en los distintos lenguajes de programación utilizados en clase, que son C++, Visual Basic y Java.
Objetivos Específicos
Explicar de forma detallada el programa a realizarse. Conocer dar un uso correcto a las librerías en los l os programas. Ejecutar de manera óptima los códigos en los distintos programas. programas. Adaptar el juego a los tres lenguajes de programación.
5
Marco Teórico Historia De La Programación Los primeros lenguajes de programación surgieron de la idea de Charles Babagge, la cual se le ocurrió a este hombre a mediados a mediados del siglo XIX. Era un un profesor matemático de la universidad de Cambridge e inventor invento r inglés, que al principio del siglo XIX predijo muchas de las las teorías en en que se basan los actuales ordenadores. Consistía en lo que él denominaba la maquina analítica, pero que por motivos técnicos no pudo construirse hasta mediados del siglo XX. Con él colaboro Ada Lovedby, la cual es considerada como la primera programadora programadora de l a historia, pues realizo realizo programas para aquélla supuesta máquina de Babagge, en en tarjetas perforadas. perforadas. Como la maquina no llego nunca a construirse, los programas de Ada, lógicamente, tampoco llegaron llegaron a ejecutarse, pero si suponen suponen un un punto de de partida de la programación, programación, sobre todo todo si observamos observamos que en cuanto se empezó a programar, programar, los programadores utilizaron las las técnicas diseñadas por Charles Babagge, y Ada, que consistían entre otras, en la programación programación mediante tarjetas perforadas. A pesar de ello, Ada ha permanecido como la primera programadora de la historia. Se dice por tanto que estos dos genios de antaño, se adelantaron un siglo a su época, lo cual describe la inteligencia de la que se hallaban dotados. En 1823 el el gobierno Británico lo apoyo para crear el e l proyecto de una máquina de diferencias, un dispositivo mecánico para efectuar sumas repetidas. Pero Babagge se dedicó al proyecto de la máquina analítica, abandonando la máquina de diferencias, que se pudiera programar con tarjetas tarjetas perforadas, gracias gracias a la creación de Charles Jacquard Jacquard (francés). (francés). Este hombre era un fabricante de d e tejidos y había creado un telar que podía reproducir automáticamente patrones de tejidos, leyendo la l a información codificada en patrones de agujeros perforados perforados en tarjetas de papel rígido. Entonces Babagge intento crear la máquina que se pudiera programar con tarjetas perforadas para efectuar cualquie r cálculo con una precisión de 20 dígitos. Pero la tecnología de de la época no bastaba para hacer realidad sus ideas. Si bien las ideas de Babagge no llegaron a materializarse de forma definitiva, su contribución es decisiva, ya que los ordenadores actuales responden a un esquema análogo al de la máquina analítica. En su diseño, su diseño, la máquina constaba de cinco unidades básicas: •
•
•
•
•
Unidad de entrada, para introducir introduci r datos e instrucciones. Memoria, donde se almacenaban datos y resultados intermedios. intermedios. Unidad de control, de control, para para regular regular la secuencia secuencia de ejecución ejecución de las la s operaciones. operaciones. Unidad Aritmético-Lógica, Aritmético-Lógica, que efectúa las operaciones. Unidad de salida, encargada de comunicar al exterior los resultados.
Charles Babbage, conocido conocido como el "padre de la informática" la informática" no pudo completar en aquella época la la construcción del del computador que había soñado, dado que faltaba algo fundamental: la la electrónica. El camino señalado de Babbage, no fue nunca abandonado y siguiéndolo, se construyeron los primeros computadores. computadores. Cuando surgió el primer ordenador, el famoso ENIAC (Electronic Numerical Integrator And Calculator), su programación se basaba en componentes físicos, o sea, que se programaba, programaba, cambiando directamente e l Hardware de la máquina, exactamente lo que sé hacia era cambiar cables de sitio para conseguir así la programación de la máquina. La entrada y salida de datos se realizaba mediante tarjetas perforadas.
6
Definición Un Un Lenguaje de Programación es e s un conjunto de reglas, notaciones, notaciones , símbolos y/o caracteres que permiten a un programador programado r poder expresar expresar el procesamiento de dato s y sus su s estructuras en la en la computadora. computadora. Cada lenguaje posee sus propias sintaxis. También se puede decir que un programa un programa es un conjunto de órdenes o instrucciones que resuelven un problema específico basado en un Lenguaje de Programación. Programación. Se llama Programación a la implementación de un algoritmo en un determinado lenguaje de programación, para realizar un programa. Algoritmo es una secuencia no ambigua, finita y ordenada de instrucciones que han de seguirse para resolver un problema. El proceso de creación de software es materia de la ingeniería del software, una de las ramas propias de la Ingeniería Informática. Según Niklaus Wirth un programa está formado por algoritmos y estructura de datos. Se han propuesto diversas técnicas de programación, programación, cuyo objetivo es mejorar tanto el proceso de creación de software como su mantenimiento. Entre ellas se pueden mencionar las programaciones lineales, estructurada, estructurada, modular y orientada a objetos.
Características Legibilidad: consiste en si s i el lenguaje tiene tiene una sintaxis sencilla, fáciles de leer y fáciles de compilar Ortogonalidad: permite combinar en una sola instrucción diversas características del lenguaje, de esta manera se consiguen programas programas más cortos y más compactos. Naturalidad para la aplicación: consiste en el lenguaje proporcione herramientas proporcione herramientas adecuadas para el fin para el que está pensado. Soporte a la abstracción: Solucionar tipos de d e problemas y no problemas concretos. Debe permitir que el programador pueda crea r funciones y procedimientos. Entorno de programación: Los lenguajes han de ir acompañados de un entorno donde programar. programar. Portabilidad de los programas: Es un lenguaje que permite crear programas que funcionen en cualquier maquina pertenezca a la plataforma que quiera, distinto fabricante, etc. •
•
•
•
•
•
Paradigmas En Lenguajes De Programación Programación Existen diversos lenguajes y y paradigmas de programación para facilitar la tarea de programación programación en diferentes diferentes ámbitos. ámbitos. Por ejemplo, la programación la programación orientada a objetos es un paradigma dirigido al mejoramiento en la la calidad del del software por software por medio de la la observación de aspectos tales como la corrección, robustez, extensibilidad, compatibilidad y sobre todo la reusabilidad del software. La programación lógica, por su parte, es un paradigma orientado a la expresión de los problemas en términos lógicos para su posterior solución por po r métodos de inferencia y técnicas lógicas. En la práctica, cada paradigma de programación programació n es implementado a través de diversos lenguajes. Solo como un ejemplo, la programación orientada a objetos encuentra recipientes en lenguajes lenguajes JAVA, C++, Eiffel, Objetive c, etc.
7
Tendencias Actuales La evolución de los lenguajes de programación continúa, tanto en l a industria como en investigación. Algunas de las tendencias actuales incluyen: •
•
•
•
•
•
•
Aumentar el soporte para la programación funcional en lenguajes importantes utilizados comercialmente, incluida la programación funcional pura para hacer e l código más fácil de razonar y de paralelizar (tanto en macro como en microniveles). Construir lenguajes para apoyar la programación programación concurrente y distribuida. Mecanismos para añadir al lenguaje verificación en cuanto a seguridad y confiabilidad: chequeo sintáctico extendido, control de flujo de información, seguridad de hilos. Mecanismos alternativos de modularidad: mixins, delegados, aspectos. Desarrollo de software orientado a componentes. Mayor énfasis en cuanto a distribución y movilidad. Integración con bases con bases de datos, incluyendo XML incluyendo XML y bases de datos relacionales.
Clasificación De Los Lenguajes De Programación Los lenguajes de programación programación son clasificados de muchas formas, dentro de estas encuentran:
se
Clas Cl asii f i cación cación Segú Según n N i vel vel D e Abstracció Abstracci ón •
Los lenguajes de bajo nivel: o
•
Los lenguajes de medio nivel: o
•
Son lenguajes de programación que se acercan al funcionamiento de una computadora. El lenguaje de más bajo nivel es, por excelencia, el código máquina. A éste le sigue el lenguaje ensamblador, ya que al programar en ensamblador se trabajan con los lo s registros de memoria de la computadora de forma directa.
Hay lenguajes de programación que son considerados por algunos expertos como lenguajes de medio nivel (como es el caso de l lenguaje C) al tener ciertas características que los acercan a los lenguajes de bajo nivel pero teniendo, al mismo tiempo, mismo tiempo, ciertas cualidades que lo hacen un lenguaje más cercano al humano y, por tanto, de alto nivel.
Los lenguajes de alto nivel: o
o
Los lenguajes de alto nivel son normalmente fáciles de aprender porque están formados por elementos de lenguajes naturales, como el inglés. En BASIC, el lenguaje de alto nivel más conocido, lo s comandos como "IF CONTADOR = 10 THEN STOP" pueden utilizarse para pedir a la computadora que pare si CONTADOR es igual a 10. Por desgracia para muchas personas esta forma de trabajar es un poco frustrante, dado que a pesar de que las la s computadoras parecen comprender un lenguaje natural, lo hacen en realidad de una forma rígida y sistemática.
8
Clas Cl asii f i cación cación Según gún Par adigma •
Paradigma imperativo: o
•
Paradigma declarativo: o
•
La programación orientada a objetos, intenta simular el mundo real a través del significado de objetos que contiene características y funciones. Los lenguajes orientados a objetos se clasifican como lenguajes de quinta generación.
Paradigma funcional: o
•
La programación estructurada se basa en un a metodología de desarrollo de programas llamada llamada refinamientos sucesivos: sucesivos: Se plantea una operación operación como un todo y se divide en segmentos más sencillos o de menor complejidad. Una vez terminado todos los segmentos del programa, se procede a unificar las aplicaciones realizadas por el pool de programadores. programadores.
Paradigma orientado a objetos: objetos: o
•
No se basa en el cómo cómo se hace algo (cómo (cómo se logra un un objetivo paso paso a paso), sino que describe (declara) cómo es algo. En otras palabras, se enfoca en describir las propiedades de la solución buscada, dejando indeterminado e l algoritmo (conjunto (conjunto de instrucciones) usado para encontrar esa solución. Es más complicado de implementar que el paradigma imperativo, tiene desventajas en la eficiencia, la eficiencia, pero ventajas en la solución de determinados problemas.
Paradigma estructurado: o
•
Describe la programación como una secuencia instrucciones o comandos que cambian el cambian el estado de de un programa. El código máquina en general está basado en el paradigma imperativo. Su contrario es el paradigma declarativo. En este paradigma se incluye el paradigma paradigma procedimental procedimental (procedural) (procedural) entre otros. otros.
Este paradigma concibe a la computación la computación como como la la evaluación de funciones funciones matemáticas y evita declarar y cambiar datos. En otras palabras, hace hincapié en la aplicación de las funciones y composición entre ellas, más que en los cambios de estados y la ejecución secuencial de comandos (como lo hace el paradigma procedimental). Permite resolver ciertos problemas de forma elegante y los lenguajes puramente funcionales evitan los efectos secundarios comunes comunes en otro tipo de programaciones.
Paradigma lógico: o
Se basa en la definición de reglas lógicas para luego, a través de un motor de inferencias lógicas, responder preguntas planteadas a l sistema y así resolver los problemas.
9
Clas Cl asii f i cación cación Segú Según n L a For ma De Ej ecució cuci ón •
Lenguajes compilados: o
o
•
Los Los compiladores son son aquellos cuya función cuya función es traducir un programa escrito en un determinado lenguaje a un idioma que la computadora entienda (lenguaje máquina con código binario). Al usar un lenguaje compilado (como lo son los lenguajes del popular Visual Studio de Microsoft), de Microsoft), el el programa desarrollado nunca se ejecuta mientras haya errores, sino hasta que luego de haber compilado el programa, ya no aparecen errores en el código.
Lenguajes interpretados: o
Se puede también utilizar una alternativa diferente de los compiladores para traducir lenguajes de alto nivel. En vez de traducir el programa fuente y grabar en forma permanente el código objeto que se produce durante la corrida de compilación para utilizarlo en una corrida de d e producción f utura, utura, el programador programador sólo carga el programa fuente en la computadora junto con los datos que se van a procesar. A continuación, un programa intérprete, almacenado en el sistema operativo del disco, o incluido de manera permanente dentro de la máquina, convierte cada proposición del programa fuente en lenguaje de máquina conforme vaya siendo necesario durante e l proceso de los datos. No se graba el código objeto para utilizarlo posteriormente.
Lenguajes de Programación Visual Basic Definición:
El lenguaje de programación Visual Basic es uno de los lenguajes de programación que utiliza una interfaz visual es decir que nos permite programar en un entorno gráfico, nos permite realizar un gran número de tareas sin escribir código, simplemente realizando operaciones con el ratón sobre la pantalla de la computadora. computadora. Este lenguaje de programación es uno de los que más interés despiertan entre los programadores. programadores. Porque este lenguaje de programación, programación, el Visual Basic, le facilita la realización de tareas complejas en poco tiempo y a los que están comenzado a programar con Visual Basic ven como son capaces de realizar pequeños programas al poco tiempo de haber comenzado a estudiar este lenguaje de programación. El Visual Basic es un lenguaje de programación que proviene del BASIC. La primera versión de este lenguaje de programación Visual Basic fue presentada en el año 1991. La intención de este primer programa era simplificar la programación utilizando un entorno de trabajo claro que permitiera crear interfaces gráficas facilitando así la programación.
10
Las sintaxis que utiliza utili za este lenguaje de programación programación proviene del conocido BASIC, pero completada con comandos y códigos de otros lenguajes más modernos. Este lenguaje de programación Visual Basic tiene un apartado dedicado a la Programación Orientada a Objetos. Es un lenguaje muy apropiado para el manejo de bases de datos. Muchas empresas lo utilizan para la gestión de sus bases de datos porque su utilización es sencilla y abundan los programadores programadores de este lenguaje. De este lenguaje de programación han surgidos algunos derivados como: El VBScript es un lenguaje predeterminado para el Active Server Pages (ASP) que es un lenguaje de programación programación web. O el Visual Basic.NET que es un lenguaje lenguaje de similares características características a las del C#.
C++ Definición
C es un un lenguaje de programación de propósito general que ofrece ofrece economía sintáctica, sintáctica, control de flujo y estructuras y estructuras sencillas sencillas y un buen buen conjunto de operadores. operadores. No es un lenguaje de muy alto nivel y más bien un lenguaje pequeño, sencillo y no está especializado en ningún tipo de aplicación. Esto lo hace un lenguaje potente, con un campo de aplicación ilimitado y sobre todo, se aprende rápidamente. En poco tiempo, un programador programador puede utilizar la totalidad del lenguaje. lenguaje. Este lenguaje ha sido estrechamente ligado a l sistema operativo UNIX, puesto UNIX, puesto que fueron desarrollados conjuntamente. Sin embargo, este lenguaje no está ligado a ningún sistema o perativo ni a ninguna máquina concreta. Se le suele llamar lenguaje de programación programación de de sistemas debido a su su utilidad para escribir escribir compiladores y sistemas operativos, aunque de igual forma se puede desarrollar cualquier tipo de aplicación. La base del C proviene del BCPL, escrito por Martin Richards, y del B escrito por Ken Thompson en 1970 para el primer sistema UNIX UNI X en un DEC PDP-7. Estos son lenguajes sin tipos, al contrario que el C que proporciona varios tipos de datos. Los tipos que ofrece son caracteres, números enteros y en coma flotante, de varios tamaños. Además se pueden crear tipos derivados mediante la utilización de punteros, vectores, registros y uniones. El primer compilador de C fue escrito por Dennis Ritchie para un DEC PDP-11 y escribió el propio sistema operativo en Introducción Introducción al lenguaje lenguaje C. La base del C proviene del BCPL, escrito por Martin Richards, y del B escrito por Ken Thompson en 1970 para el primer sistema UNIX UNI X en un DEC PDP-7. Estos son lenguajes sin tipos, al contrario que el C que proporciona varios tipos de datos. Los tipos que ofrece son caracteres, números enteros y en coma flotante, de varios tamaños. Además se pueden crear tipos derivados mediante la utilización de punteros, vectores, registros y uniones. El primer compilador de C fue escrito por Dennis Ritchie para un DEC PDP-11 y escribió el propio sistema operativo en C.
11
Java Definición
Es un lenguaje de programación programació n de propósito gener al, al, concurrente, orientado a objetos que que fue diseñado específicamente para tener tan pocas dependencias de implementación como fuera posible. Su intención es permitir que los desarrolladores de aplicaciones escriban el programa una vez y lo ejecuten en cualquier dispositivo (conocido en inglés como WORA, o "write once, run anywhere"), lo que quiere decir que e l código que es ejecutado en una plataforma no tiene que se r recompilado para para correr en otra. Java es, a partir de 2012, uno de los lenguajes lenguajes de programación programación más populares en en uso, particularmen particularmente te para aplicaciones aplicaciones de cliente-servidor de de web, con unos 10 millones de usuarios reportados. reportados .12 El lenguaje de programación programación Java fue originalmente desarrollado desarrollado po r James Gosling de Sun de Sun Microsystems (la (la cual fue adquirida por la compañía Oracle) y publicado en 1995 como un componente fundamental de la l a plataforma Java de Sun Microsystems. Su sintaxis Su sintaxis deriva en gran medida de d e C y C++, y C++, pero pero tiene menos utilidades utilidades de de bajo nivel que cualquiera de ellos. Las aplicaciones de Java son generalmente compiladas generalmente compiladas a bytecode a bytecode (clase (clase Java) Java) que puede ejecutarse ejecutarse en cualquier máquina máquina virtual Java virtual Java (JVM) (JVM) sin importar la la arquitectura de la computadora subyacente. subyacente. La compañía Sun desarrolló la implementación de referencia referenc ia original para los los compiladores de de Java, máquinas virtuales, y librerías y librerías de clases en 1991 y las publicó por primera vez en 1995. A partir de mayo de 2007, en cumplimiento con las especificaciones del del Proceso de la Comunidad Java, Sun volvió a licenciar la mayoría de sus tecnologías de Java bajo la Licencia Pública General de GNU. GN U. Otros también han desarrollado implementaciones alternas alternas a estas tecnologías de Sun, tales como el e l Compilador de Java de GNU y el el GNU Classpath.
Entorno de Desarrollo Integrado Entorno de Desarrollo Integrado (en inglés Integrated Development Environment 'IDE'): Es un programa compuesto por un conjunto de herramientas para un programador. Estos IDE son programas que sirven para programar, ya sea en un lenguaje de programación o en varios lenguajes. Los IDE que permiten crear programas en muchos lenguajes de programación programación permiten usar un solo programa para trabajar en varios lenguajes de programación, programación, es decir no no limitan al programador. programador.
Ejemplos de IDES: •
•
•
•
•
Gambas (lenguaje derivado de BASIC), Eclipse (lenguaje Java), Kdevelop (varios lenguajes), Netbeans (varios (varios lenguajes: lenguajes: java, php , C/C++), C/C++), Visual Studio (varios lenguajes: C, C++, C#, Visual Basic, ASP, Javascript)
12
Anexos Visual Basic Desarr Desarr oll o Del Juego Juego De Ahorcado Ah orcado En Vi sual B asic asic
Al momento de correr el programa nos sale un menú de opciones donde se puede jugar contra la l a maquina o contra otro jugador, las instrucciones del juego y la salida. Ya escogida una opción del juego en este caso la opción uno el computador nos envía un mensaje de bienvenida al juego e inicialización del juego, una vez desarrollado esto el computador elige una palabra aleatoriamente, ingresamos una letra y el computador nos va diciendo el número de aciertos y el número de oportunidades oportunidades restantes para jugar , si acertamos acertamos todas las letras nos envía un mensaje que dice felicidades has ganado , si e caso nos que damos sin oportunidades en la pantalla de Excel se podrá observar la figura del muñeco ahorcado ,la opción 2 nos permite jugar contra otro oponente Si te quedas sin oportunidades oportunidades restantes nos sale un mensaje en el cual dice has perdido y con la palabra correcta que debíamos adivinar Elegida la opción 3 nos sale un mensaje con todas las instrucciones del juego si elegimos la opción cuatro nos permite salir del juego. Código Sub Macro1() ' ' Macro1 Macro ' Dim opciob As Integer opcionb = 0 MsgBox ("Juego del Ahorcado de Palabras") MsgBox (" Menu principal" & vbCrLf & "Seleccione una opción:") While (opcionb < 4) Dim acierto, repeticionletra, letra(300) As String Dim i, j, k, correcto, opcion, ultimo, error, jugador As Integer jugador = InputBox("(1) Jugador 1 vs. Computador" & vbCrLf & "(2) Jugador 1 vs. Jugador 2 " & vbCrLf & "(3) Instrucciones de juego" & vbCrLf & "(4) Salir") While (jugador < 2) If (jugador = 1 Or jugador = 2) Then If (jugador = 1) Then MsgBox ("Jugador 1 vs.Computador") opcion = CInt(Int((11 * Rnd()) + 0)) Select Case (opcion) Case 0: letra(0) = "e" letra(1) = "l" letra(2) = "e" letra(3) = "c" letra(4) = "t" letra(5) = "r" letra(6) = "o" letra(7) = "d" letra(8) = "o" letra(9) = "m" letra(10) = "e" letra(11) = "s" letra(12) = "t" letra(13) = "i" letra(14) = "c" letra(15) = "o" ultimo = 16 Case 1: letra(0) = "j" letra(1) = "u" letra(2) = "g" letra(3) = "a" letra(4) = "r" ultimo = 5 Case 2:
13
letra(0) = "Z" letra(1) = "o" letra(2) = "r" letra(3) = "r" letra(4) = "o" ultimo = 5 Case 3: letra(0) = "p" letra(1) = "r" letra(2) = "o" letra(3) = "g" letra(4) = "r" letra(5) = "a" letra(6) = "m" letra(7) = "a" letra(8) = "c" letra(9) = "i" letra(10) = "o" letra(11) = "n" ultimo = 12 Case 4: letra(0) = "a" letra(1) = "s" letra(2) = "t" letra(3) = "r" letra(4) = "o" letra(5) = "n" letra(6) = "a" letra(7) = "u" letra(8) = "t" letra(9) = "a" ultimo = 10 Case 5: letra(0) = "c" letra(1) = "o" letra(2) = "l" letra(3) = "e" letra(4) = "g" letra(5) = "i" letra(6) = "a" letra(7) = "l" ultimo = 8 Case 6: letra(0) = "c" letra(1) = "o" letra(2) = "m" letra(3) = "p" letra(4) = "u" letra(5) = "t" letra(6) = "a" letra(7) = "d" letra(8) = "o" letra(9) = "r" letra(10) = "a" ultimo = 11 Case 7: letra(0) = "a" letra(1) = "r" letra(2) = "t" letra(3) = "e" letra(4) = "f" letra(5) = "a" letra(6) = "c" letra(7) = "t" letra(8) = "o" ultimo = 9 Case 8: letra(0) = "c" letra(1) = "a" letra(2) = "n" letra(3) = "d" letra(4) = "e" letra(5) = "l" letra(6) = "a" letra(7) = "b" letra(8) = "r" letra(9) = "o" ultimo = 10
14
Case 9: letra(0) = "e" letra(1) = "s" letra(2) = "t" letra(3) = "u" letra(4) = "d" letra(5) = "i" letra(6) = "a" letra(7) = "n" letra(8) = "t" letra(9) = "e" ultimo = 10 Case 10: letra(0) = "p" letra(1) = "r" letra(2) = "e" letra(3) = "f" letra(4) = "e" letra(5) = "c" letra(6) = "t" letra(7) = "u" letra(8) = "r" letra(9) = "a" ultimo = 10 Case 11: letra(0) = "b" letra(1) = "i" letra(2) = "b" letra(3) = "l" letra(4) = "i" letra(5) = "o" letra(6) = "t" letra(7) = "e" letra(8) = "c" letra(9) = "a" ultimo = 10 End Select opcionb = -1 jugador = 5 Else If (jugador = 2) Then ultimo = InputBox("ingrese cuantas letras tiene la palabra") For k = 0 To ultimo - 1 letra(i) = InputBox("ingrese la " & (k + 1) & " letra con comillas") k=k+1 Next k ultimo = ultimo + 1 End If End If End If acierto = ultimo correcto = ultimo i=0 Worksheets("Hoja1").Cells(19, 2).Value = ("¯") Worksheets("Hoja1").Cells(18, 2).Value = ("¦") Worksheets("Hoja1").Cells(17, 2).Value = ("¦") Worksheets("Hoja1").Cells(16, 2).Value = ("¦") Worksheets("Hoja1").Cells(15, 2).Value = ("¦") Worksheets("Hoja1").Cells(14, 2).Value = ("¦") Worksheets("Hoja1").Cells(14, 3).Value = ("=") Worksheets("Hoja1").Cells(14, 4).Value = ("=") Worksheets("Hoja1").Cells(14, 5).Value = ("=") Worksheets("Hoja1").Cells(15, 5).Value = (" ¦") While (i < ultimo) Worksheets("Hoja1").Cells(3, i + 1).Value = ("-") i=i+1 Wend j = 0 While (j < 7) acierto = InputBox("Ingrese una letra") i=0 While (i < ultimo) If (letra(i) = acierto) Then Worksheets("Hoja1").Cells(3, i + 1).Value = (letra(i)) correcto = correcto - 1 repeticionletra = acierto End If i=i+1
15
Wend If (repeticionletra = acierto) Then j = j - 1 error = error - 1 End If If (correcto = 0) Then MsgBox ("usted a ganado") j = 6 End If error = error + 1 j = j + 1 Select Case (error) Case 1: Worksheets("Hoja1").Cells(16, 5).Value = (" ð") Case 2: Worksheets("Hoja1").Cells(17, 5).Value = (" ¦") Worksheets("Hoja1").Cells(18, 5).Value = ("---+----") Worksheets("Hoja1").Cells(18, 4).Value = (" //") Case 3: Worksheets("Hoja1").Cells(18, 6).Value = ("\\") Case 4: Worksheets("Hoja1").Cells(19, 5).Value = (" ¦") Worksheets("Hoja1").Cells(20, 4).Value = (" /") Case 5: Worksheets("Hoja1").Cells(20, 6).Value = ("\") Case 6: MsgBox ("Perdio") j = 7 End Select Wend Wend If (jugador = 3) Then MsgBox ("Instrucciones de juego:") MsgBox ("- Se dibuja en la pantalla una linea por cada letra de la palabra o frase incognita." & vbCrLf & "- Al inicio el jugador pide una letra. Si la letra se encuentra en la palabra, se anota en la pantalla y en todas las casillas de la misma letra.Si no esta, sera sumado un error, tienes hasta 6 intentos de error." & vbCrLf & "- El personaje se consta en 6 partes (cabeza, tronco y extremidades), por este motivo el adivinador tiene 6 posibilidades de fallar." & vbCrLf & "- Gana el adivin ador si descubre la palabra o frase incognita y pierde si comete 6 errores.") opcionb = -1 Else If (jugador = 4) Then opcionb = 4 MsgBox ("Saliendo del juego") opcionb = 4 End If End If Wend ' End Sub
C++ Desarr Desarr oll o Del Juego Juego De Ahorcado Ah orcado En C++
Al momento de correr el programa nos sale un menú de opciones donde se puede jugar contra la l a maquina o contra otro jugador, las instrucciones del juego y la salida. Ya escogida una opción del juego ju ego en este caso la opción uno el computador nos envía un mensaje mensaj e de bienvenida al juego e inicialización del juego, una vez desarrollado esto el computador elige una palabra aleatoriamente, ingresamos una letra y el computador nos va diciendo el número de aciertos y el número de oportunidades oportunidades restantes para jugar jugar , si acertamos todas las letras nos envía un mensaje que dice felicidades has ganado , si e caso perdemos nos sale un mensaje que dice “Perdiste” ,la opción 2 nos permite jugar contra otro oponente Si te quedas sin oportunidades oportunidades restantes nos sale un mensaje en el cual dice has perdido y con la palabra correcta que debíamos adivinar Elegida la opción 3 nos sale un mensaje con todas las instrucciones del juego si elegimos la opción cuatro nos permite salir del juego.
16
Código //Librerías #include #include #include #include #include #include using namespace std; //Inicio del Main int main(int argc, char *argv[]) { int opcionb=0; do { //Declaración de variables char palabraadivinar[60], letrarep[100], lineas[100]; char letra; int longitud = 0, repetido = 0, gano = 0, i = 0, j = 0, inicial = 0, acertado = 0, temp = 0, oportunidades = 7, diccionario=12; int aleatoria, opcion=0, random; //Comienzo del juego cout << "\tJuego del Ahorcado de Palabras\n\n"; system("cls"); //Menú de opciones cout << "\t\tMenu principal\n\nSeleccione una opcion\n\n"; cout << "\n\n(1) Jugador 1 vs. Computador\n\n(2) Jugador 1 vs. Jugador 2\n\n(3) Instrucciones de juego\n\n(4) Salir\n\n"; cin >> opcion; if(opcion==1||opcion==2) { switch (opcion) { case 1: //Generacion de palabra aleatoria para jugar contra el computador system("cls"); printf("Jugador 1 vs.Computador\n\n"); srand(time(NULL)); random = rand(); aleatoria = 3 + rand() % (diccionario - 2); switch (aleatoria) { case 1: strcpy(palabraadivinar, "electrodomestico"); break; case 2: strcpy(palabraadivinar, "jugar"); break; case 3: strcpy(palabraadivinar, "zorro"); break; case 4: strcpy(palabraadivinar, "programacion"); break; case 5: strcpy(palabraadivinar, "astronauta"); break; case 6: strcpy(palabraadivinar, "colegial"); break; case 7: strcpy(palabraadivinar, "computadora"); break; case 8: strcpy(palabraadivinar, "artefacto");
17
break; case 9: strcpy(palabraadivinar, "candelabro"); break; case 10: strcpy(palabraadivinar, "estudiante"); break; case 11: strcpy(palabraadivinar, "prefectura"); break; case 12: strcpy(palabraadivinar, "biblioteca"); break; } system("PAUSE"); opcionb=-1; break; case 2: //Escribir palabra (jugador1) para jugar contra el jugador2 system("cls"); printf("Jugador 1 vs. Jugador 2\n\n"); cout << "Introduzca la palabra a adivinar: \n\n"; cin >> palabraadivinar; system("cls"); system("PAUSE"); opcionb=-1; break; } do { //Recorrido para mostrar en pantalla las lineas de las letras que se deben adivinar system("cls"); temp = 0; if (inicial == 0) { for (i = 0; i
18
for (i = 0; i> letra; }while (oportunidades > 0); //condicion para imprimir si ganaste o perdiste if (gano==1) { cout << "\n\n"; cout << "Enhorabuena, has ganado.\n\n"; system("PAUSE"); } else { if (gano==0) { cout << "\n\n"; cout << "Has perdido."; cout << "\nLa palabra era: " << palabraadivinar << "\n\n"; system("PAUSE"); } } }
19
if(opcion==3) { //Instrucciones system("cls"); printf("Instrucciones de juego:\n"); printf("\n\n- Se dibuja en la pantalla una linea por cada letra de la palabra o frase incognita."); printf("\n\n- Al inicio el jugador pide una letra. Si la letra se encuentra en la palabra, se anota en la pantalla y en todas las casillas de la misma letra.Si no esta, sera sumado un error, tienes hasta 6 intentos de error."); printf("\n\n- El personaje se consta en 6 partes (cabeza, tronco y extremidades), por este motivo el adivinador tiene 6 posibilidades de fallar."); printf("\n\n- Gana el adivinador si descubre la palabra o frase incognita y pierde si comete 6 errores. \n\n"); system("PAUSE"); opcionb=-1; } else { if(opcion==4) { //Salir del juego opcionb=4; cout << "Saliendo del juego"; cout << "\n\n"; system("PAUSE"); } } system("cls"); } while(opcionb<4); return 0; }
20
Java Desarr Desarr oll o Del Juego Juego De Ahorcado Ah orcado En Java
Al momento de correr el programa nos sale un menú de opciones donde se puede jugar contra la l a maquina o contra otro jugador, las instrucciones del juego y la salida. Ya escogida una opción del juego en este caso la opción uno el computador nos envía un mensaje de bienvenida al juego e inicialización del juego, una vez desarrollado esto el computador elige una palabra aleatoriamente, ingresamos una letra y el computador nos va diciendo el número de aciertos y el número de oportunidades oportunidades restantes para jugar jugar , si acertamos todas las letras nos envía un mensaje que dice felicidades has ganado , si e caso nos que damos sin oportunidades en la pantalla de Excel se podrá observar la figura del muñeco ahorcado ,la opción 2 nos permite jugar contra otro oponente Si te quedas sin oportunidades restantes nos sale un mensaje en el cual dice has perdido y con la palabra correcta correcta que debíamos adivinar Elegida la opción 3 nos sale un mensaje con todas las instrucciones del juego si elegimos la opción cuatro nos permite salir del juego. Código
package juegoahorcado; import java.io.PrintStream; import java.util.Scanner; public class JuegoAhorcado { public static void main(String[] args) { String[] palabras= { "electrodomestico", "jugar", "zorro", "programacion", "astronauta", "colegial", "computadora", "artefacto", "candelabro", "estudiante", "prefectura", "biblioteca", }; String linea, palabra=palabras[(int) (Math.random()*palabras.length)]; int i, n = palabra.length(), turnos =0, aciertos = 0, oportunidades=6; char letra, caracter, cabeza=' ', cuerpo = ' ', manoIzquierda = ' ', manoDerecha = ' ', pieIzquierdo= ' ', pieDerecho = ' '; char[] casillas = new char[n]; boolean encontrado; for (i=0; i
21
{ out.print(" " + casillas[i]); } out.println("\nEscriba una letra: "); do { linea = teclado.nextLine(); } while(linea.isEmpty()); letra=linea.charAt(0); encontrado= false; for (i=0; i
22
Conclusiones
El código desarrollado, a pesar de tener dificultades en los distintos lenguajes de programación, programación, funcionó correctamente correctamente en en los distintos lenguajes lenguajes utilizados. Dicho programa sirve como medio de ocio y de entretenimiento de una manera interactiva y puede ser mejorable. Durante el proceso de estructuración e investigación, se obtuvo el conocimiento de más tipos de funciones, librerías y modos de alcanzar los objetivos al finalizar el programa. El propósito de este trabajo fue emplear todas las herramientas proporcionadas por el profesor, para desarrollar un programa que contenga todo lo aprendido, funcionando así de forma exitosa.
Recomendaciones
Se recomienda el uso de librerías que permitan la utilización correcta correcta de las funciones. Si no entiende algún paso puede mirar el video o las diapositivas que fueron elaboradas. Este documento es para aquellas personas que les guste la programación y deseen aprender un poco mas de programación con conceptos fundamentales.
23
Bibliografía
Álvarez, C. (25 de 10 de 2014). Desarrollo y Software. Recuperado el 13 de Julio de 2015, de Genbetadev: http://www.genbetadev.com/actualidad/los-lenguajeshttp://www.genbetadev.com/actualidad/los-lenguajes-de-programacionde-programacionmas-utilizados Díaz, N. (2005). UniCauca. Recuperado el 03 de Julio de 2015, de http://artemisa.unicauca.edu.co/~nediaz/LabII/practica07.htm Kernighan, B. W., & Ritchie, D. M. (s.f.). Lenguaje de Programación. Recuperado el 13 de Julio de 2015, de liquidtelecom: http://mirror.liquidtelecom.com/sourceforge/c/cb/cbookpdf/main.pdf Niemeyer, P. (2013). Learning Java (Vol. 4). O'Reilly. Recuperado R ecuperado el 14 de Julio de 2015, de http://chimera.labs.oreilly.com/books/1234000001805 Programación. (s.f.). Recuperado el 14 de Julio de 2015, de Definición.de: http://definicion.de/programacion/
24