Proyecto de Programación

61
UNIVERSIDAD TÉCNICA DE MACHALA FACULTAD DE INGENERÍA CIVIL ESCUELA DE INFORMÁTICA PRIMER SEMESTRE PARALELO “A” PROGRAMACIÓN I “El Ahorcado Educativo” Proyecto Final de la Asignatura Autores: Aguilar Pacheco Bryan Stalin Cabanilla Asencio Erwin Enrique Castillo Crespín Jimmy Fernando Romero Correa Jerry Alexander Docente: Ing. Fausto Redrován Castillo, Mg. MACHALA - ECUADOR SEPTIEMBRE, 2013

Transcript of Proyecto de Programación

UNIVERSIDAD TÉCNICA DE MACHALA

FACULTAD DE INGENERÍA CIVILESCUELA DE INFORMÁTICA

PRIMER SEMESTREPARALELO “A”

PROGRAMACIÓN I

“El Ahorcado Educativo”

Proyecto Final de la Asignatura

Autores:

Aguilar Pacheco Bryan StalinCabanilla Asencio Erwin EnriqueCastillo Crespín Jimmy FernandoRomero Correa Jerry Alexander

Docente:

Ing. Fausto Redrován Castillo, Mg.

MACHALA - ECUADOR SEPTIEMBRE, 2013

Proyecto Final de Programación I

“Aguilar Bryan” “Cabanilla Erwin” “Castillo Fernando” “Romero Jerry” Pag. # 1

Proyecto Final de Programación I

AUTORÍA:

Nosotros, [ Aguilar Pacheco Bryan Stalin, Cabanilla Asencio Erwin Enrique, Castillo Crespín Jimmy Fernando, Romero Correa Jerry Alexander], como autores del presente trabajo de investigación, somos responsables de las ideas, conceptos, procedimientos y resultados vertidos en la misma.

f………………………………. f………………………………. [Aguilar Pacheco Bryan Stalin] [Cabanilla Asencio Erwin Enrique] C.I.: [070648236-1 ] C.I.: [0705566297 ]

f………………………………. f………………………………. [Castillo Crespín Jimmy Fernando] [Romero Correa Jerry Alexander] C.I.: [070682911-6] C.I.: [070704232-1]

“Aguilar Bryan” “Cabanilla Erwin” “Castillo Fernando” “Romero Jerry” Pag. # 2

Proyecto Final de Programación I

1 JUSTIFICACIÓN

Uno de los principales factores para que los estudiantes; sea de escuela, colegio y

universidad, no presten atención a las clases o se les dificulte el entendimiento de

alguna materia, es por la falta de motivación por parte del profesor o simplemente

sus clases carecen de dinámicas o juegos de carácter educativo lo cual tornan

aburridas sus cátedras.

Los juegos educativos tiene como fín además de desestresarse de las materias y de

la clase, es de aprender de una forma no convencional, de tal forma, logrando así un

mejor entendimiento del estudiante en algun tema de alguna materia, despertando

su lado creativo.

De ese problema surge nuestro proyecto el Ahorcado educativo, pudimos haber

eligido otro juego, pero nada mejor que el clásico juego del ahorcado, por las

razones de que es un juego popular, la mayoria de las personas lo conocen, no ha

pasado de moda, siempre se lo encuentra en uso en escuelas y colegios y es una

forma divertida de aprender conceptos, palabras y términos sobre alguna materia.

“Aguilar Bryan” “Cabanilla Erwin” “Castillo Fernando” “Romero Jerry” Pag. # 3

Proyecto Final de Programación I

2 Objetivos

2.1 Objetivo General

Desarrollar un juego educativo e interactivo que aparte de ayudar a divertise y

desestrezarse tanto en clases como en cualquier lugar, ayude en en el

proceso de aprendizaje de niños y jovenes.

2.1 Objetivos Especificos

Lograr que los estudiantes mejoren su capacidad de aprendizaje.

Despertar el interes por la materias.

Aumentar el interés por utilizar programas de juegos educativos por parte de

los estudiantes.

“Aguilar Bryan” “Cabanilla Erwin” “Castillo Fernando” “Romero Jerry” Pag. # 4

Proyecto Final de Programación I

3 Antecedentes

3.1 APRENDIZAJE EN LA ACTUALIDAD

El término 'estilo de aprendizaje' se refiere al hecho de que cuando queremos

aprender algo cada uno de nosotros utiliza su propio método o conjunto de

estrategias. Aunque las estrategias concretas que utilizamos varían según lo que

queramos aprender, cada uno de nosotros tiende a desarrollar unas preferencias

globales. Esas preferencias o tendencias a utilizar más unas determinadas maneras

de aprender que otras constituyen nuestro estilo de aprendizaje.

Cuando se trata de rebasar el pensamiento teórico para aplicar los fundamentos

pedagógicos a la práctica, el docente se enfrenta a varios problemas que

trascienden en el proceso educativo. En este sentido, aún los profesores e

investigadores con talento tienen dificultades para comunicar el conocimiento a sus

estudiantes. Lo anterior es debido a deficiencias en la estructura de las interfaces

entre el sujeto que aprende y lo que debe ser aprendido.

“Aguilar Bryan” “Cabanilla Erwin” “Castillo Fernando” “Romero Jerry” Pag. # 5

Ilustración 1: Aprendizaje en la Actualidad

Proyecto Final de Programación I

Esas diferencias en el aprendizaje son el resultado de muchos factores, como por

ejemplo la motivación, el bagaje cultural previo y la edad. Pero esos factores no

explican porque con frecuencia nos encontramos con alumnos con la misma

motivación y de la misma edad y bagaje cultural que, sin embargo, aprenden de

distinta manera, de tal forma que, mientras a uno se le da muy bien redactar, al otro

le resultan mucho más fácil los ejercicios de gramática. Esas diferencias si podrían

deberse, sin embargo, a su distinta manera de aprender.

Los estilos de aprendizaje son los rasgos cognitivos, afectivos y fisiológicos que

sirven como indicadores relativamente estables, de cómo los alumnos perciben

interacciones y responden a sus ambientes de aprendizaje.

En si cada persona aprende de manera distinta a las demás: utiliza diferentes

estrategias, aprende con diferentes velocidades e incluso con mayor o menor

eficacia incluso aunque tengan las mismas motivaciones, el mismo nivel de

instrucción, la misma edad o estén estudiando el mismo tema. Sin embargo más allá

de esto, es importante no utilizar los estilos de aprendizaje como una herramienta

para clasificar a los alumnos en categorías cerradas, ya que la manera de aprender

evoluciona y cambia constantemente.

“Francisco Piedrahita Plata(septiembre 1, 2007)”

“Aguilar Bryan” “Cabanilla Erwin” “Castillo Fernando” “Romero Jerry” Pag. # 6

Proyecto Final de Programación I

3.2 Con respecto al Uso de las TIC en la educación?

Existen dos razones muy importantes por las que los gobiernos deben ir mucho más

allá de dotar las bibliotecas escolares con acceso a la Web.

Por una parte, debido precisamente a los múltiples cambios originados por la

revolución de las TIC, las competencias requeridas a los graduados de los sistemas

escolares de América Latina han cambiado. Y esos sistemas escolares deben

atender esas nuevas demandas para que los jóvenes que pasan por ellos estén

mejor habilitados para llevar una vida personal, productiva y cívica valiosa en el siglo

XXI.

Además, las TIC, con toda la gama de herramientas de hardware y software que

contienen, convertidas en herramientas de la mente, usadas para potenciarla,

facilitan la creación de ambientes de aprendizaje enriquecidos, que se adaptan a

modernas estrategias de aprendizaje, con excelentes resultados en el desarrollo de

las habilidades cognitivas de niños y jóvenes en las áreas tradicionales del currículo.

“UNESCO: Estándares de competencias en tic para docentes, 2008.”

“Aguilar Bryan” “Cabanilla Erwin” “Castillo Fernando” “Romero Jerry” Pag. # 7

Ilustración 2: Tics en la educacion

Proyecto Final de Programación I

4 Marco Teorico

4.1 Entorno gráfico Utilizado para la elaboracion del juego

4.1.1 Blue J

BlueJ 1 utiliza las siguientes caracteristicas:

Caracteristicas

La interfaz de usuario es mucho más simple. Los estudiantes principiantes

generalmente pueden usar el entorno BlueJ de manera competente a los 20

minutos de presentación. A partir de entonces, la enseñanza puede centrarse

en los conceptos importantes a la mano - orientación a objetos y Java - y no

hay tiempo para ser desperdiciado hablando de entornos, sistemas de

archivos, rutas de clases, los comandos de DOS o conflictos de DLL.

1 “es un entorno integrado de desarrollo (de sus siglas en inglés IDE - Integrated Development Environment)

para el lenguaje de programación Java, desarrollado principalmente con propósitos educacionales, pero también

es adecuado para el desarrollo de softwarea pequeña escala”

“Aguilar Bryan” “Cabanilla Erwin” “Castillo Fernando” “Romero Jerry” Pag. # 8

Ilustración 3: Blue J

Proyecto Final de Programación I

El entorno compatible con las herramientas de enseñanza importantes no

disponibles en otros entornos. Uno de ellos es la visualización de la estructura

de clases. BlueJ automáticamente muestra un diagrama UML-como

representación de las clases y las relaciones en un proyecto. Visualización de

estos conceptos importantes es una gran ayuda para los profesores y

estudiantes. Es difícil comprender el concepto de un objeto cuando todo lo

que siempre se ve en la pantalla es de líneas de código! La notación de los

diagramas es un simple subconjunto de UML, una vez más adaptados a las

necesidades de los estudiantes principiantes. Esto hace que sea fácil de

entender, pero también permite la migración a la plena UML en cursos

posteriores.

Una de las fortalezas más importantes del entorno BlueJ es la capacidad del

usuario para crear directamente objetos de ninguna clase y, a continuación,

para interactuar con sus métodos. Esto crea la oportunidad para la

experimentación directa con objetos, para poca sobrecarga en el medio

ambiente. Los estudiantes pueden casi "sentir" lo que significa crear un

objeto, llamar a un método, pasar un parámetro o recibir un valor de retorno.

Ellos pueden probar un método inmediatamente después de que ha sido

escrito, sin la necesidad de escribir los conductores de prueba. Esta

instalación es una ayuda muy valiosa para comprender los conceptos

fundamentales y los detalles del lenguaje.

BlueJ es un completo entorno de Java. No es un corte hacia abajo, la versión

simplificada de Java para la enseñanza. Se ejecuta en la parte superior del kit de

desarrollo de Java de Sun Microsystems2, y utiliza el compilador estándar y la

máquina virtual. Esto asegura que siempre se ajusta a la especificación oficial y más

actualizada al día de Java.

Los autores de este libro tienen varios años de experiencia en la enseñanza con el

2 fue una empresa informática que se dedicaba a vender estaciones de trabajo, servidores, componentes

informáticos, software (sistemas operativos) y servicios informáticos. Fue adquirida en el año 2009 por Oracle

Corporation, anteriormente parte de Silicon Valley, fabricante de semiconductores y software.

“Aguilar Bryan” “Cabanilla Erwin” “Castillo Fernando” “Romero Jerry” Pag. # 9

Proyecto Final de Programación I

entorno BlueJ (y muchos más años sin que antes de eso). Ambos hemos

experimentado cómo el uso de BlueJ se ha incrementado la participación, la

comprensión y la actividad de los alumnos de nuestros cursos. Uno de los autores

es también un desarrollador del sistema BlueJ.

4.1.2 Objetos reales primero

Una de las razones para elegir BlueJ fue que permite un enfoque en el que los

maestros realmente hacer frente a los conceptos importantes primero. 'Objetos

temprana "ha sido un grito de guerra para muchos autores de libros de texto y los

maestros durante algún tiempo. Por desgracia, el lenguaje Java no hace esta noble

meta muy fácil. Numerosos obstáculos de la sintaxis y los detalles tienen que ser

superados antes de la primera experiencia con un objeto viviente surge. El

programa mínimo de Java para crear y llamar a un objeto por lo general incluye:

escribir una clase;

escribir un método principal, incluyendo conceptos como métodos estáticos,

parámetros y matrices de la firma;

una declaración para crear el objeto ("nuevo");

una asignación a una variable;

la declaración de variables, incluyendo el tipo de variables;

una llamada a un método, utilizando notación de puntos;

posiblemente, una lista de parámetros.

Como resultado, los libros de texto típicamente ya sea

tienen que trabajar su camino a través de esta lista prohibitiva, y sólo llegar a

los objetos por ahí el capítulo 4, o

utilizar un "Hola, mundo"-estilo de programa con un único método estático

principal como el primer ejemplo, por lo tanto no crear ningún objeto en

absoluto.

“Aguilar Bryan” “Cabanilla Erwin” “Castillo Fernando” “Romero Jerry” Pag. # 10

Proyecto Final de Programación I

Con BlueJ, esto no es un problema. Un estudiante puede crear un objeto y llamar a

sus métodos como la primera actividad! Dado que los usuarios pueden crear e

interactuar con los objetos directamente, conceptos como clases, objetos, métodos y

parámetros se pueden discutir fácilmente de manera concreta antes de mirar a la

primera línea de la sintaxis de Java. En lugar de explicar más sobre esto aquí,

sugerimos que el lector curioso chapuzón en el Capítulo 1 - las cosas se convertirá

rápidamente en claro entonces.

“Barnes, David J.; Kolling, Michael (September 1, 2008)”

4.2 Java

4.2.1 ¿Qué es la tecnología Java y por qué lo necesito?

Java es un lenguaje de programación y la primera plataforma informática creada

porSun Microsystems en 1995. Es la tecnología subyacente que permite el uso de

programas punteros, como herramientas, juegos y aplicaciones de negocios. Java

se ejecuta en más de 850 millones de ordenadores personales de todo el mundo y

en miles de millones de dispositivos, como dispositivos móviles y aparatos de

televisión.

“Aguilar Bryan” “Cabanilla Erwin” “Castillo Fernando” “Romero Jerry” Pag. # 11

Ilustración 4: Java

Proyecto Final de Programación I

4.2.2 ¿Por qué necesito Java?

Existe un gran número de aplicaciones y sitios Web que no funcionan a menos que

Java esté instalado, y muchas más que se crean a diario. Java es rápido, seguro y

fiable. De portátiles a centros de datos, de consolas de juegos a superequipos

científicos, de teléfonos móviles a Internet, Java está en todas partes.

Una de las principales características por las que Java se ha hecho muy famoso es

que es un lenguaje independiente de la plataforma. Eso quiere decir que si hacemos

un programa en Java podrá funcionar en cualquier ordenador del mercado. Es una

ventaja significativa para los desarrolladores de software, pues antes tenían que

hacer un programa para cada sistema operativo, por ejemplo Windows, Linux, Apple,

etc. Esto lo consigue porque se ha creado una Máquina de Java para cada sistema

que hace de puente entre el sistema operativo y el programa de Java y posibilita que

este último se entienda perfectamente.

La independencia de plataforma es una de las razones por las que Java es

interesante para Internet, ya que muchas personas deben tener acceso con

ordenadores distintos. Pero no se queda ahí, Java está desarrollándose incluso para

distintos tipos de dispositivos además del ordenador como móviles, agendas y en

general para cualquier cosa que se le ocurra a la industria.

“Aguilar Bryan” “Cabanilla Erwin” “Castillo Fernando” “Romero Jerry” Pag. # 12

Proyecto Final de Programación I

4.3 Características de los juegos interactivos

4.3.1 PARTICIPACIÓN ACTIVA

Todo niño y niña física y psíquicamente quiere tomar parte activa en el aprendizaje.

Desgraciadamente muchas situaciones didácticas están caracterizadas por la

pasividad, como si éste estuviese sólo para recibir. No hay que extrañarse que

situaciones didácticas de este tipo provoquen apatía y aburrimiento, pues no dejan

espacio alguno a la curiosidad natural de los educandos y a su necesidad de

exploración.

Sintiéndose forzado a aprender cosas que no cuentan con su interés, se defiende

por todos los medios, de los intentos de manipulación de los adultos. Con los juegos

interactivos, en cambio, el educando participa en primera persona, expresa

espontáneamente sus sentimientos, se comunica a través de códigos verbales y no

verbales, interpreta diversos roles, se mueve libremente, establece relaciones, se

enfrenta a situaciones, toma decisiones. Puede experimentar un amplio abanico de

acciones que influyen eficazmente en la vida del grupo. Así se hace sujeto del

proceso educativo y no inerte destinatario de la "sabiduría" del educador.

4.3.2 OBJETIVOS BIEN DEFINIDOS.

Todo juego interactivo acaba con un momento de reflexión en que se discute sobre

lo que ha pasado en el desarrollo del juego. Esto depende del hecho de que el juego

interactivo responde a tiempos y contenidos muy precisos lo que provoca un

despliegue de energías físicas e intelectuales del niño.

La fatiga que el niño siente al término de estas actividades es bien distinta de la

causada por la pasividad y la frustración.

“Aguilar Bryan” “Cabanilla Erwin” “Castillo Fernando” “Romero Jerry” Pag. # 13

Proyecto Final de Programación I

4.3.3 RESULTADOS ABIERTOS

Mientras los objetivos de un juego interactivo son bien definidos, los resultados a

que puede conducir son abiertos y también esto tiene gran importancia. En un juego

interactivo no se dan soluciones acertadas y equivocadas. Cada uno juzga, guiado

por sus sensaciones y por la retroalimentación que recibe de sus compañeros, es

decir, si un determinado comportamiento es adecuado o no a la finalidad.

4.3.4 INTERACCIÓN

Muchos juegos interactivos aprovechan precisamente aquellas energías que

normalmente se consideran un obstáculo al aprendizaje, por ejemplo, las ganas de

hablar y de moverse propias del educando. Algunos educadores pretenden que los

niños sepan concentrarse, limitando al máximo el movimiento y la interacción con los

compañeros.

Los juegos interactivos, en cambio, tienen en cuenta las necesidades del niño, que

pueda moverse libremente, establecer contactos verbales o no verbales, dar libre

escape a sus energías. Igualmente importantes son los procesos de comunicación

que se establecen en el grupo, en el que cada uno aprende en contraste con los

otros miembros, probablemente de modo más intenso y motivado que cuando todo

se centra en el docente. Existen pocas estrategias didácticas que favorezcan tanto

las dinámicas interactivas.

El deseo natural de comunicación del niño es considerado frecuentemente como un

atentado a la disciplina. Por el contrario, los juegos interactivos utilizan para el

aprendizaje las necesidades y energías naturales del niño, en vez de reprimirlos con

fatiga y, a fin de cuentas sin ningún resultado.

4.3.5 COMPETITIVIDAD Y COLABORACIÓN

Muchos juegos interactivos tienen un componente de competitividad. Responden así

a una necesidad natural del niño o la niña que hay que encauzar a objetivos

constructivos, si no se quiere crear tensiones latentes que amenacen el clima del

grupo. Por otra parte casi todos los juegos interactivos incentivan el espíritu de

“Aguilar Bryan” “Cabanilla Erwin” “Castillo Fernando” “Romero Jerry” Pag. # 14

Proyecto Final de Programación I

colaboración. Muchas actividades suponen trabajos por parejas o en pequeños

grupos. Se tiene así en cuenta la disposición natural del educando a colaborar

constructivamente.

4.3.6 POSIBILIDAD DE PARTICIPACIÓN PARA TODOS.

En todo grupo hay sujetos particularmente dotados en que se polarizan las

expectativas de los compañeros, que esperan de esta pequeña elite los mejores

resultados, las ideas más brillantes. Quien no forma parte de este grupo privilegiado

asume las más de las veces actitudes de renuncia que aumentan notablemente las

probabilidades de fracaso.

Los juegos interactivos ofrecen nuevas posibilidades a estos sujetos que ven como

soluciones espontáneas y originales, son con frecuencia más apreciadas y eficaces

que las respuestas estandarizadas. La facilidad de palabra, casi siempre garantía de

éxito, no es la única que se valora: son igualmente importantes la capacidad de

trabar relaciones, la apertura y el espíritu de iniciativa, la osadía y la sensibilidad

empática. Todo esto lo captan pronto los chicos, que pueden así concentrar

serenamente su atención en el juego y no en la pregunta de si van a tener éxito.

4.3.7 COHESIÓN DE GRUPO

Frecuentemente a través de las normales técnicas didácticas es casi imposible

convertir un cierto número de niños y niñas, que se encuentran casi al azar, en un

verdadero grupo. Precisamente es esta una nueva fuerza de los juegos interactivos,

que favorecen la cohesión y el acuerdo. Cada componente toma conciencia de ser

parte del grupo, no sólo porque asume un determinado rol, sino en cuanto persona.

Sintiéndose aceptado, se capacita para aceptar y apreciar a los otros. Satisfecha su

necesidad de pertenencia, puede orientar su energía psíquica e intelectual al logro

de los objetivos del grupo.

“Aguilar Bryan” “Cabanilla Erwin” “Castillo Fernando” “Romero Jerry” Pag. # 15

Proyecto Final de Programación I

4.3.8 EL ROL DEL EDUCADOR

En el juego interactivo la función del guía o educador queda delegada a la misma

estructura del juego.

Los niños y niñas experimentan que el grupo es quien los estimula y sostiene, y

descubren que pueden hacer experiencias significativas aun sin la ayuda del

educador. Esto resulta particularmente importante para aquellos educandos que

manifiestan actitudes de excesiva dependencia de la autoridad o de injustificada

rebeldía. No teniéndose que preocupar de las reacciones del educador, están más

libres para compartir con los compañeros la responsabilidad para el resultado del

juego. El alternar situaciones de aprendizaje centradas exclusivamente en el grupo,

con otras en que el grupo aprende con la ayuda del educador (fase de evaluación) o

con situaciones de aprendizaje centradas en el educador (fase de introducción)

permite a los niños y niñas, desarrollar una relación más elástica con la autoridad.

4.4 Conclusión de la interatividad de un juego educativo

Los juegos interactivos, por su naturaleza, estimulan a los educandos a

aprender, despertando el interés y el gusto por un aprendizaje fundado en la

realidad.

A través de estas actividades lúdicas, se crea un mayor equilibrio entre los

educandos más activos y los menos activos, que se sienten estimulados a una

más intensa participación.

Los juegos interactivos facilitan la introducción de nuevos códigos de

comunicación y de comportamiento, con frecuencia descuidados en la cultura

corriente.

Ayudan al educando a verse a sí mismo y a los demás de modo más

completo.

A través de los juegos interactivos, los educandos ejercitan otras actitudes

psicosociales: aprende a comunicarse abiertamente, a proponer iniciativas, a

tomar decisiones, a ayudar a los compañeros, a colaborar y también a lograr

colaboraciones; aprende a defender sus posiciones y a hacerse responsable de

“Aguilar Bryan” “Cabanilla Erwin” “Castillo Fernando” “Romero Jerry” Pag. # 16

Proyecto Final de Programación I

sus opciones.

Los juegos interactivos, precisamente porque el educando los toma como

juegos, permiten abandonar aquellas defensas que frecuentemente se levantan

ante los nuevos compromisos y nuevas exigencias.

Estas técnicas pueden ser usadas aun en grupos bastante numerosos.

Los juegos interactivos reducen, sobre todo en la fase inicial, el miedo y la

inseguridad y facilitan la cohesión del grupo. Es decir, ayudan a desarrollar las

Inteligencias Personales de los individuos.

“Aguilar Bryan” “Cabanilla Erwin” “Castillo Fernando” “Romero Jerry” Pag. # 17

Proyecto Final de Programación I

4.5 Funciones de los juegos interactivosEntre los once y los trece años los conocimientos de los niños y niñas se amplían

notablemente. Comienzan a asimilar conceptos abstractos, a pensar lógicamente y a

crearse su sistema de valores. En el camino relacional, pueden ya percibir con

mayor objetividad los puntos de vista, las necesidades y los sentimientos de los

otros. Toman conciencia de los diversos roles sociales y de sus efectos.

Una visión más amplia del ambiente en que viven les empuja a explorar la realidad

de modo cada vez más autónomo. A diferencia de los más pequeños, los

muchachos de esta edad buscan crearse su propia competencia, sienten el orgullo

de lo que logran hacer, de su agilidad intelectual y de su capacidad física. Sobre

estos elementos se van construyendo el sentido de autoestima, que en la fase

precedente dependía sobre todo de la relación con los padres.

Al mismo tiempo que el educando comienza a tomar conciencia de la multiplicidad

de las relaciones en que está inmerso, a proponerse autónomamente objetivos, a

definir sus competencias, comienza a crearse sus convicciones y sus valores. A este

respecto se muestra particularmente importante la confrontación con el grupo de los

de su edad. Los muchachos y muchachas, entre los once y trece años de edad, se

interesan mucho por temas como el poder, el éxito, liderazgo, las relaciones con el

mundo de los adultos, etc. Además vienen a conocer situaciones familiares y

sociales diversas de las suyas, caracterizadas por diferentes criterios de

comportamiento y estilos de vida. En este sentido hay que entender los objetivos

educativos que pasamos a describir brevemente y que se pueden lograr con la

ayuda de los juegos interactivos.

4.5.1 DESARROLLO DE LA CAPACIDAD PERCEPTIVA.

Es la capacidad de percibir de modo más diferenciado y puntual las propias

sensaciones, estados de ánimo, pensamientos, ideas, deseos, temores y al mismo

tiempo la disponibilidad para acoger los estados de ánimo de las personas con las

que vivimos.

“Aguilar Bryan” “Cabanilla Erwin” “Castillo Fernando” “Romero Jerry” Pag. # 18

Proyecto Final de Programación I

4.5.2 DESARROLLO DEL SENTIDO DE LA RESPONSABILIDAD.

Se trata de desarrollar una importante actitud interior: la capacidad de no justificar y

a toda costa la propia conducta, sino de reconocer los errores y asumir la propia

responsabilidad ante las opciones que se toman. Así nos descubrimos cada vez más

protagonistas de nuestro propio destino.

4.5.3 EXPRESIÓN FUNCIONAL DE LAS SENSACIONES.

A través de los juegos interactivos, los educandos experimentan que la expresión de

las emociones y sentimientos no sólo es algo permitido, sino que positivamente se

estimula. Así pueden concentrarse en sus propias sensaciones, tomar conciencia de

ellas, y, si lo desean, también expresarlas a través de gestos y palabras.

4.5.4 TOMA DE CONCIENCIA DE LAS PROPIAS MOTIVACIONES.

¿Qué me induce a comportarme de determinada manera? ¿Cuáles son mis

objetivos? ¿Qué valores determinan mi comportamiento? Los educandos se

ejercitan en compararse con los otros y otras y en reflexionar de manera cada vez

más crítica sobre los motivos de sus actos.

4.5.5 ACEPTACIÓN DE SÍ MISMO.

El objetivo es que los muchachos y muchachas aprendan a aceptarse, desarrollen

un mayor respeto hacia sí mismos y se vean como personas capaces de crecer y de

aprender. La conciencia del propio valer permite relativizar las expectativas de los

mayores. La autoestima encuentra así su fundamento en uno mismo y ya no

depende, de los juicios externos y de la adhesión a modelos de comportamiento.

4.5.6 ACEPTACIÓN DE LOS OTROS.

El muchacho y la muchacha deben entender que no se puede crecer sino en

relación con los demás. Se trata de suscitar en ellos el interés por la comunicación y

la colaboración, en un equilibrio armónico de cercanía y distancia de los coetáneos y

los adultos.

“Aguilar Bryan” “Cabanilla Erwin” “Castillo Fernando” “Romero Jerry” Pag. # 19

Proyecto Final de Programación I

4.6. Qué es un Juego Educativo?

El juego educativo es el juego que tiene un objetivo educativo implícito o explícito

para que los niños aprendan algo específico. Un objetivo que explícitamente

programa el maestro con un fin educativo, o la persona que lo diseña, ya sea el

educador, el maestro, el profesor de apoyo, los padres, los hermanos mayores, los

abuelos, los amigos, etc., y está pensado para que un niño o unos niños aprendan

algo concreto de forma lúdica.

4.7. Características esenciales de los programas educativos

Los programas educativos pueden tratar las diferentes materias (matemáticas,

idiomas, geografía, dibujo...), de formas muy diversas (a partir de cuestionarios,

facilitando una información estructurada a los alumnos, mediante la simulación de

fenómenos...) y ofrecer un entorno de trabajo más o menos sensible a las

circunstancias de los alumnos y más o menos rico en posibilidades de interacción;

Son materiales elaborados con una finalidad didáctica, como se desprende

de la definición.

Utilizan el ordenador como soporte en el que los alumnos realizan las

actividades que ellos proponen.

Son interactivos, contestan inmediatamente las acciones de los estudiantes

y permiten un diálogo y un intercambio de informaciones entre el ordenador y

los estudiantes.

Individualizan el trabajo de los estudiantes, ya que se adaptan al ritmo de

trabajo cada uno y pueden adaptar sus actividades según las actuaciones de

los alumnos.

Son fáciles de usar. Los conocimientos son mínimos, aunque cada programa

tiene unas reglas de funcionamiento que es necesario conocer.

“Pere Marquès(2010), El software educativo: Características esenciales de los

programas educativos. Universidad Autónoma de Barcelona”

“Aguilar Bryan” “Cabanilla Erwin” “Castillo Fernando” “Romero Jerry” Pag. # 20

Proyecto Final de Programación I

4.8 El Ahorcado

4.8.1 Investigación acerca del código del juego

4.8.2 Obtener texto no escriptado utilizando JpasswordField

JpasswordField es un componente ligero que permite la edición de una sola línea de

texto en la vista indica algo que se ha escrito, pero no muestra los caracteres

originales. Puede encontrar más información y ejemplos de cómo utilizar los campos

de texto , una sección en el Tutorial Java.

JpasswordField se pretende que sea el código compatible con java.awt.TextField

utilizado con echoChar conjunto. Se proporciona por separado para que sea más

fácil cambiar de forma segura la interfaz de usuario para el JtextField sin afectar las

entradas de contraseñas.

NOTA: Por defecto, desactiva JPasswordField métodos de entrada, de lo contrario,

los caracteres de entrada podrían ser visibles mientras estaban compuestas

utilizando los métodos de entrada. Si una aplicación necesita el soporte de métodos

de entrada, por favor, utilice el método heredado,enableInputMethods (true).

http://docs.oracle.com/javase/6/docs/api/javax/swing/JPasswordField.htm

l

“Aguilar Bryan” “Cabanilla Erwin” “Castillo Fernando” “Romero Jerry” Pag. # 21

Proyecto Final de Programación I

4.8.3.- JoptionPane en java

Un cuadro de diálogo no es más que una ventana que nos permite mostrar

mensajes, por ejemplo de error, de advertencia o de información, o para pedir el

ingreso de un valor, además nos permite solicitar al usuario su intervención para

decidir si se realizará o no una acción, como ser los mensajes de confirmación.

JOptionPane es una clase de la biblioteca Swing (que contiene las librerías de

interfaz gráfica de usuario), para poder usar sus métodos es necesario importarla:

import javax.swing.JOptionPane;

Podemos mencionar que JOptionPane tiene básicamente 4 métodos, que definen la

manera y la funcionalidad con la que se mostrará un cuadro de diálogo:

showMessageDialog():muestra un cuadro de diálogo al usuario, normalmente de

carácter informativo, como mínimo recibe 2 parámetros: el componente padre (que

puede ser null) y una cadena de caracteres que corresponde al mensaje a ser

mostrado. También puede recibir como parámetro una cadena que irá como título del

cuadro y el tipo de mensaje a mostrarse (determinado por una constante de la clase

JOptionPane).

Parámetros:

* Component componentePadre: el componente al que pertenece.

* Object mensaje = es el objeto que corresponde al mensaje (texto) a mostrarse.

* String titulo = texto que será el título del cuadro de diálogo.

* int tipoDeMensaje = definido por una constante de la clase JOptionPane

“Aguilar Bryan” “Cabanilla Erwin” “Castillo Fernando” “Romero Jerry” Pag. # 22

Proyecto Final de Programación I

Sintaxis:

JOptionPane.showMessageDialog(this, "Este es un mensaje simple");

Aquí se le envía como componente padre el objecto actual; es interesante esta

práctica ya que de esta manera el formulario se bloqueará mientras esté abierto el

cuadro de mensaje, impidiendo que se efectúen otras acciones, en cambio si se le

pasa null en vez de un objeto el formulario (padre) al que pertenece estará

disponible para otras acciones (lo que estaría incorrecto).

Resultado:

Ilustración 5: Mensaje-JOptionPane

Nombre del método

Descripción

showConfirmDialog

Hace una pregunta que confirma, como sí / no / cancelar.

showInputDialog Preguntar por alguna entrada.

showMessageDialog

Dígale al usuario sobre algo que ha sucedido.

showOptionDialog

La Gran Unificación de los tres anteriores.

Tabla 1: Metodos de JOptionPane

“Aguilar Bryan” “Cabanilla Erwin” “Castillo Fernando” “Romero Jerry” Pag. # 23

Proyecto Final de Programación I

4.8.4. Qué es el Ahorcado?

El ahorcado (también llamado colgado) es un juego de lápiz y papel, en el que el

objetivo es adivinar una palabra o frase.

Al comenzar el juego se dibuja una base, y una raya en lugar de cada letra (dejando

los espacios si corresponden). Por ejemplo:, si la frase es “LOBO MARINO” se

escribírá:

Como ayuda suele darse una definición o ayuda o las letras de comienzo de cada

palabras (o las últimas), por ejemplo:

L O B O M A R I N O ——> L _ _ _ M _ _ _ _ _

Si las letras de comienzo están repetidas en el medio de la palabra deberán

completarse; por ejemplo:

A R A Ñ A ——> A _ A _ A

Luego el jugador restante (o los jugadores, en turno) deberán ir diciendo letras que

les parece que puede contener la frase. Si aciertan, se escriben todas las letras

coincidentes. Si la letra no está, se escribe la letra arriba y se agrega una parte al

cuerpo (cabeza, brazo, etc.). La cantidad de partes a dibujar puede cambiarse según

la dificultad de la palabra o de los jugadores. Pueden ver un ejemplo en la imagen

animada.

Se gana el juego si se completa la frase, y se pierde si se completa el cuerpo antes

de terminar la frase. El ganador es el siguiente en elegir la frase o palabra, o el

mismo jugador que la anterior vez si no acertó nadie.

Cita textual: “Fernando Castillo”

“Aguilar Bryan” “Cabanilla Erwin” “Castillo Fernando” “Romero Jerry” Pag. # 24

Proyecto Final de Programación I

5 MARCO METODOLÓGICO

5.1 Análisis de resultados

Limpiar Palabra

i i<palabra_aux.length I<palabra.length palabra_aux[i]

0 si '_'

1

0 si '_'

1

Tabla 2: Prueba de escritorio - Limpiar Pantalla

menu

op op>5 opcion Opcion!=3 Op < 3

0 no 0 si si <= definir palabra

1 1

2 si <= iniciar juego

3 si <= Salir

Tabla 3: Prueba de escritorio - Menu Principal

“Aguilar Bryan” “Cabanilla Erwin” “Castillo Fernando” “Romero Jerry” Pag. # 25

Proyecto Final de Programación I

Jugar PC

palabra descrpcion aleatorio respuesta x X<palabra intentos

1 1 1 1 0 no 8

1

cont2 salir i a q i<palabra puntaje

0 0 0 1 0 no 100

2 1 1 1 si

0 0 si

2 1

0

2

Tabla 4: Prueba de escritorio - Jugar con la Pc

Definir palabra

pass palabra i

1 1 0

1

Tabla 5: Prueba de escritorio - Defenir Palabra

Buscar letra en palabra

i i<palabra c palabra_aux[i] = c

0 no 1 1

1

Tabla 6: Prueba de escritorio - Buscar letra en palabra

“Aguilar Bryan” “Cabanilla Erwin” “Castillo Fernando” “Romero Jerry” Pag. # 26

Proyecto Final de Programación I

5.2 Solución

El problema que intenta resolver el programa.

Resolver la falta de interés de los estudiantes por aprender conceptos relevantes de

distintas materias, y aumentar el bajo déficit por utilizar programas de juegos

interactivos educativos por parte de los estudiantes.

Cómo se diseñó la interfaz de usuario (las pantallas). Incluir y numerar

imágenes de las pantallas, y colocar un epígrafe.

Este juego no presenta GUI debio a que solo se realizó por consola, pero entre las

interfaz de usuario que utilizamos se encuentran las siguientes

“Aguilar Bryan” “Cabanilla Erwin” “Castillo Fernando” “Romero Jerry” Pag. # 27

Proyecto Final de Programación I

Cómo se implementaron los algoritmos en Java. Hacer referencia a la

codificación, pero presentarla en los Anexos.

“Aguilar Bryan” “Cabanilla Erwin” “Castillo Fernando” “Romero Jerry” Pag. # 28

Proyecto Final de Programación I

6 Conclusiones

Consegir resultados, luego de dar los pasos necesarios para tal propósito,

entusiasma a quien se embarca en algpun proyecto y pretende hallar

respuestas que sastifagan su curiosidad en los juegos educativos, será útil

herramienta para iniciarse en el estudio de los demás conocimientos.

La mente del estudiante debe permanecer siempre abierta, ser dinámica y

una manera de mantener viva su capacidad mental es a través de los juegos,

dentro del cual se reta a inteligencia y la sabiduría del estudiante.

Actualmente podemos decir que los juegos está directamente relacionado con

la programación informática, no podemos olvidar que es necesario nuestra

creatividad, ingenio y utilizar el sentido común.

El aprendizaje de la programación requiere de un gran esfuerzo, para

cimentar el interés por la computación porque no hacerlo mediante los juegos

educativos que son entretenidos, dinámicos que con la práctica vendrá la

perfección.

“Aguilar Bryan” “Cabanilla Erwin” “Castillo Fernando” “Romero Jerry” Pag. # 29

Proyecto Final de Programación I

7 Recomendaciones

Poner en práctica el ingenio en los juegos educativos, que gracias a ello

reavitaliza el ánimo y fortalece la confianza en sí mismo.

Ser persistentes en la práctica de los juegos podemos descubrir el alcance

lógico y desarrollar nuestras habilidades mentales.

Debemos procurar desarrollar conceptualizaciones en los juegos para una

mejor entendimiento y desarrollo del mismo.

Es necesario que el estudiante tome interés en investigar e indagar de

manera que el estudiante pueda seguir paso a paso el desarrollo del

problema en forma gráfica y llegar con éxito a la solución.

“Aguilar Bryan” “Cabanilla Erwin” “Castillo Fernando” “Romero Jerry” Pag. # 30

Proyecto Final de Programación I

8 Bibliografia

Francisco Piedrahita Plata (septiembre 1, 2007) , ultima

modificacion( septiembre 1, 2007) , Uso de las Tic en la actualidad.

http://www.eduteka.org/PorQueTIC.php

Barnes, David J.; Kolling, Michael (September 1, 2008),Objects Firts witch

Java: A practical Introduction using Blue J (4ta edicion)

http://www.bluej.org/objects-first/description.html

Oracle(2013), Java: Qué es Java?

http://www.java.com/es/download/faq/whatis_java.xml

Pere Marquès(2010), El software educativo: Características esenciales de

los programas educativos. Universidad Autónoma de Barcelona

http://www.lmi.ub.es/te/any96/marques_software/#capitol2

UNESCO: Estándares de competencias en tic para docentes, 2008.

http://www.eduteka.org/pdfdir/UNESCOEstandaresDocentes.pdf , Londres

Oracle(2013) Java 6, documentos API, JPasswordField

http://docs.oracle.com/javase/6/docs/api/javax/swing/JPasswordField.htm

l

Oracle (2013) Clase JoptionPane, JoptionPane.

http://docs.oracle.com/javase/7/docs/api/javax/swing/JOptionPane.html

“Aguilar Bryan” “Cabanilla Erwin” “Castillo Fernando” “Romero Jerry” Pag. # 31

Proyecto Final de Programación I

10 Anexos

Bibliotecas usadas en el programa

import java.util.Scanner;

import javax.swing.JLabel;

import javax.swing.JOptionPane;/

import javax.swing.JPasswordField;

import java.io.IOException; // Señales de que se ha producido una excepción de E / S de algún tipo.

import java.io.RandomAccessFile; // implementa un archivo de acceso aleatorio. Puede ser usada tanto para lectura como para escritura de bytes.

import java.io.FileInputStream; // obtiene bytes de entrada de un archivo en un sistema de archivos.

import java.io.DataInputStream; // permite una aplicación leer tipos de datos primitivos de Java a partir de un flujo de entrada subyacente de una manera independiente de la máquina.

import java.io.BufferedReader; // Lee texto a partir de una secuencia de caracteres de entrada, almacenamiento en búfer caracteres a fin de proporcionar para la lectura eficiente de caracteres, matrices, y líneas.

import java.io.InputStreamReader;

“Aguilar Bryan” “Cabanilla Erwin” “Castillo Fernando” “Romero Jerry” Pag. # 32

Proyecto Final de Programación I

Declaracion de variablespublic class ahorcadoFinal

{

/** Variable maximo de letras ingresadas*/

public static final int maximoLetras = 25; //declaracion de la variable del maximo de letras, el final sirve para indicar que ya no puede ser cambiado una vez declarado.

/** Variable maximo de intentos*/

public static final int maximoIntentos = 10; // declaracion de los maximos intentos

/** Variable maximo de intentos*/

public static int intentos = 0; //declaracion de los intentos

/** Variable para saber si la letra fue o no encontrada*/

public static boolean encontradaLetra = false; // declaracion de la letra encontrada se inicializa en falso

/** Variable del arreglo de la palabra original*/

public static char[] palabraOriginal = new char[maximoLetras]; // arreglo de caracteres de la palabra original ingresada que contiene a maximo de letras

/** Variable del arreglo de la palabra auxiliar*/

public static char[] palabraAuxiliar = new char[maximoLetras]; // arreglo de la palabra auxiliar que ocntiene a maximo de letras

/** Variable ingreso por teclado*/

public static Scanner sc = new Scanner(System.in);

/** Variable para las palabras a adivinar en el juego del ahorcado*/

public static String palabra;

/** Variable de puntaje que inicializa en 1000*/

public static int puntaje=1000; // declaracion de puntaje inicializa en 1000

/** Variable para los numeros de errores inicializa en 0*/

public static int errores=0; /

“Aguilar Bryan” “Cabanilla Erwin” “Castillo Fernando” “Romero Jerry” Pag. # 33

Proyecto Final de Programación I

10.1 Algoritmo para limpiar palabra auxiliar public static void limpiarPalabraAux()

{

for (int i = 0; i < palabraAuxiliar.length; i++)

palabraAuxiliar[i] = ' ';

for (int i = 0; i < palabra.length(); i++)

palabraAuxiliar[i] = '_';

}

10.2. Algoritmo que contiene el menú principal del juego public static void menu()

{

int opcion=0;

do

{

System.out.println("*********************************************************************************");

System.out.println("****************** EL AHORCADO EDUCATIVO - MENU PRINCIPAL **********************");

System.out.println("******************************************************************************* \n");

System.out.println("Escoga una opcion:");

System.out.println("1.Jugar con otra persona\n" +

"2. Jugar con la pc\n" +

"3. Guardar\n"+

"4. Presentar puntajes archivados\n"+

"5. Salir\n");

JOptionPane.showMessageDialog(null, "\t\t\t INTRUCCIONES DEL JUEGO \n" +

"El juego comienza con cinco opciones como usted podra ver son las siguientes\n" +

"Juego con Pc, Jugar con otra persona, guardar, presentar puntajes y salir, \n" +

"solo puede elegir un numero que se encuentre en el menu, caso contrario\n" +

"se le volvera a pedir ingresar un numero del menu");

“Aguilar Bryan” “Cabanilla Erwin” “Castillo Fernando” “Romero Jerry” Pag. # 34

Proyecto Final de Programación I

/* mientras el ingreso sea mayor que 5 volvera a pedir

* ingreso de numero del menu

*/

do

{

//muestra un cuadro de diálogo al usuario

//como mínimo recibe 2 parámetros: el componente padre (que puede ser null)

//y una cadena de caracteres que corresponde al mensaje a ser mostrado.

JOptionPane.showMessageDialog(null, "Debe Ingresar un numero del Menu" );

//se asigna a la variable opcion , un numero del menu

// es necesario hacer una transformacion de string a entero

//porque el JOptionPane.showInputDialog recibe tipo de datos String

opcion= Integer.parseInt(JOptionPane.showInputDialog("Ingrese un numero del menu"));

}while(opcion > 5);

switch(opcion)

{

case 1:

int opcion2 = 0;

do {

System.out.println("************************************************************************");

System.out.println("************* Menu DE JUGAR CON OTRA PERSONA***************");

System.out.println("************************************************************************* \n");

System.out.println(" 1) Definir palabra.");

System.out.println(" 2) Iniciar Juego.");

System.out.println(" 3) Salir. ");

opcion= Integer.parseInt(JOptionPane.showInputDialog("Ingrese la opcion que desea escojer"));

switch (opcion)

{

case 1:

definirPalabra(); // metodo definir palabra

break;

case 2:

iniciarJuego(); //metodo inicio del juego

“Aguilar Bryan” “Cabanilla Erwin” “Castillo Fernando” “Romero Jerry” Pag. # 35

Proyecto Final de Programación I

break;

case 3:

System.out.println("Ejecucion terminada!!!"); // salir

break;

}

} while (opcion != 3 );

break;

case 2:

nivel1(); // metodo de jugar con la pc primer nivel del juego

break;

case 3:

try{ // para evitar errores durante la ejecucion del programa

guardar();

}catch(Exception e){

}

menu(); // regresa al metodo menu

break;

case 4:

presentar(); // metodo que presenta los datos guardados

menu(); // regresa al menu

break;

case 5:

JOptionPane.showMessageDialog(null, "Gracias por haber jugado" );

System.exit(0);

break;

}

}while(opcion < 5);

“Aguilar Bryan” “Cabanilla Erwin” “Castillo Fernando” “Romero Jerry” Pag. # 36

Proyecto Final de Programación I

10.3 Algoritmo para definir la palabra en el primer nivel

public static void definirPalabra()

{

JPasswordField palabraAdivinar = new JPasswordField();

JLabel titulo = new JLabel ("Ingrese la palabra a adivinar"); //titulo del ingreso

JOptionPane.showConfirmDialog (null, new Object[]{titulo, palabraAdivinar}, "Ingres0", JOptionPane.OK_CANCEL_OPTION);

char password[] = palabraAdivinar.getPassword();

String contrasena = new String(password);

palabra = contrasena;

encontradaLetra= false;

for (int i = 0; i < palabra.length(); i++)

{

palabraOriginal[i] = palabra.charAt(i);

palabraAuxiliar[i] = '_';

}

JOptionPane.showMessageDialog(null, "Palabra definida exitosamente¡¡" );

descripcion= JOptionPane.showInputDialog("Ingrese Descripcion o pista");

JOptionPane.showMessageDialog(null, "Descripcion ingresada exitosamente" );

}

“Aguilar Bryan” “Cabanilla Erwin” “Castillo Fernando” “Romero Jerry” Pag. # 37

Proyecto Final de Programación I

10.4 Algoritmo para el nivel 1 del juego public static void nivel1()

{

String palabra[]={"adicion","resta","multiplicacion","matematica","division","fraccion","angulo", "agudo", "obtuso", "baricentro"}; // arreglo que contiene las palabras a adivinar

String descripcion[]={"es una operación básica por su naturalidad, que se representa con el signo (+)","Es la operación inversa de la suma","es una operación matemática que consiste en sumar un número tantas veces como indica otro número","es una ciencia, hallada dentro de las ciencias exactas, que se basa en principios de la lógica", "es una operación aritmética de descomposición que consiste en averiguar cuántas veces un número está contenido en otro número","expresión de una cantidad dividida entre otra cantidad","Es una figura formada por dos rayos con un punto final común","Es cualquier ángulo cuya medida es entre 0º y 90º","Es cualquier ángulo cuya medida es entre 90º y 180º","Es el punto donde se cortan las medianas de un triángulo"}; //arreglo que contiene la descripcion de las palabras a adivinar

int aleatorioPalabra;//se declara un entero para que genere numeros aleaotios del arreglo palabra

aleatorioPalabra=(int)(Math.random()*10);//aqui aleatorioPalabra es = a buscar la palabra aleatoriamente de 10 numeros

String respuesta; //variable para la respuesta

String letrasIngresadas= ""; // variable para letras ingresadas

char prueba[]= new char [palabra[aleatorioPalabra].length()];//el char solo es para una variable o letra.

String soga[] = new String [8];// el numero 8 dira en cuantas oportunidades mostrara el mucheco ahorcado.

soga[7]="-|";//soga significa el muñeco de ahorcado.

soga[6]="-|\n 6";

soga[5]="-|\n 0";

soga[4]="-|\n 0\n |";

soga[3]="-|\n 0\n/|";

soga[2]="-|\n 0\n/|\\";

soga[1]="-|\n 0\n/|\\\n/^";

soga[0]="-|\n 0\n/|\\\n/^\\";

for(int x=0;x<palabra[aleatorioPalabra].length();x++)/*recuerde que en un arreglo inicia con cero y sera menor a una palabra aleatoriamente y segun la palabra lo guardara

para luego mostrar los _*/

{

prueba[x]='_';//tiene que llevar las ' ' asi por que prueba en char y prueba tomara el valor de '_'

}

int intentos=8;//esto sirve para el muñeco ahorcado siendo el contador = 8

“Aguilar Bryan” “Cabanilla Erwin” “Castillo Fernando” “Romero Jerry” Pag. # 38

Proyecto Final de Programación I

int cont2=0;//esto sirve para el contador incia en 0

int salir=0;//al salir

System.out.println("**************************************************************************");

System.out.println("*********** Menu DE JUGAR CON LA COMPUTADORA - nivel 1*************");

System.out.println("************************************************************************* \n");

System.out.println("Bienvenidos al juego del ahorcado");

System.out.println("usted tiene 8 intentos para adivinar");

System.out.println("la palabra. \n");

System.out.println(descripcion[aleatorioPalabra]);

for(int i=0; i<palabra[aleatorioPalabra].length(); i++)//imprime _ y espacios.

{

System.out.print(prueba[i]+" ");

}

System.out.println("");//son espacios de renglones

System.out.println("");

System.out.println("");

while(intentos>=1) // mientras intentos sea mayor o igual q 1

{

respuesta=JOptionPane.showInputDialog("Ingrese Una Letra"); //ingreso de una letra por JoptionPane

char vocal=respuesta.charAt(0);

if(!(vocal>64&&vocal<91||vocal>96&&vocal<123))

{

JOptionPane.showMessageDialog(null,"Caracter incorrecto"); // mensaje que esta incorrecto la letra ingresada

}

letrasIngresadas= letrasIngresadas + respuesta.charAt(0); // esto sirve para reconcer y mostrar las lestras ingresadas de abajo

System.out.println("LAS LETRAS INGRESADAS SON: "+ letrasIngresadas);//imprime las letras que has ingresado.

System.out.println(descripcion[aleatorioPalabra]); // sirve para mostrar la descripcion de la palabra a adivinar

System.out.println("");//imprime renglones de espacios.

for(int q=0; q<palabra[aleatorioPalabra].length(); q++)//verifica si la letra ingresada existe.

{

if(respuesta.charAt(0)==palabra[aleatorioPalabra].charAt(q))

“Aguilar Bryan” “Cabanilla Erwin” “Castillo Fernando” “Romero Jerry” Pag. # 39

Proyecto Final de Programación I

{

puntaje=puntaje+100; // si la letra existe puntaje aumenta en 100

prueba[q]=palabra[aleatorioPalabra].charAt(q);//si existe si no salta has el if de abajo.

cont2++;

}

}

System.out.println("");//imprime renglones de espacio

if(cont2<1)//como logica aqui es si no existe la letra.

{

intentos--; //intentos disminuye

puntaje-=100; // puntaje disminuye

if(puntaje==0){

JOptionPane.showMessageDialog(null,"su puntaje ha llegado a cero ");

menu();

}

errores++; //errores aumentan

System.out.println("");

System.out.println("Esa letra no existe por favor intente de nuevo");

System.out.println("Le quedan "+ intentos +" intentos");//muestra los intentos que faltan

System.out.println("");

System.out.println(soga[intentos]);//imprime el muñeco de ahorcado

cont2=0;

}

else //logica de que si exite.

{

System.out.println("La letra existe ");

System.out.println("Ahora ingrese una nueva ");

cont2=0;

}

for(int i=0; i<palabra[aleatorioPalabra].length(); i++)//imprime _ y espacio mas la letra ingresada tantas veces que esta.

{

System.out.print(prueba[i]+" ");

}

System.out.println("");//imprime renglon de espacio.

“Aguilar Bryan” “Cabanilla Erwin” “Castillo Fernando” “Romero Jerry” Pag. # 40

Proyecto Final de Programación I

for(int i=0; i<palabra[aleatorioPalabra].length(); i++) //verifica si estan las letras de las palabras para saber si gano o perdio

{

if(palabra[aleatorioPalabra].charAt(i)==prueba[i])

{

salir++; // exite todas las letras en las palabras

}

else

{

salir=0; //no exite, salta a cont2 y sigue verificando hasta que inicie de nuevo el programa

}

if(salir==palabra[aleatorioPalabra].length())//al ser salir = a la palabra aleatoria imprimira que a ganado

{

System.out.println("");

System.out.println("--------------------------");

System.out.println("Usted ha Ganado el juego ");

System.out.println("Sus puntajes son: ");

System.out.println("Puntaje: "+puntaje);

System.out.println("Errores: "+errores);

System.out.println("--------------------------");

nivel2();// pasa al nivel 2

intentos=0;

//igual a cero para que no vueva a repetirse el if

}

cont2=0;//contador para que inicie nuevamente el for.

}

}

if(salir<palabra[aleatorioPalabra].length())//imprime que ah perdido.

{

System.out.println("");//imprime renglones de espacios

System.out.println("--------------------------");

System.out.println("la palabra era "+palabra[aleatorioPalabra]);//muestra la palabra que era.

“Aguilar Bryan” “Cabanilla Erwin” “Castillo Fernando” “Romero Jerry” Pag. # 41

Proyecto Final de Programación I

System.out.println("--------------------------");

System.out.println("");//imprime renglones de espacios

System.out.println("");

System.out.println("Usted ha sido ahorcado ");

System.out.println("desea volver a jugar?");

String opcion=sc.next();

puntaje=1000;

errores=0;

if (opcion.equals("si"))

{

menu();

}

else

{

JOptionPane.showMessageDialog(null, "Gracias por haber jugado" );

menu();

}

}

}

“Aguilar Bryan” “Cabanilla Erwin” “Castillo Fernando” “Romero Jerry” Pag. # 42

Proyecto Final de Programación I

10.5 Algoritmo para el segundo nivel del juego public static void nivel2(){

String palabra[]={"derivada","integrales","geometria","maximo","minimo","asintotas","logaritmos", "trigonometria", "trinomio", "proporcion"};

String descripcion[]={"resultado de un límite y representa la pendiente de la recta tangente a la gráfica de la función en un punto","es una generalización de la suma de infinitos sumandos, infinitamente pequeños","estudiar las propiedades y las medidas de una figura en un plano o en un espacio","Punto de una gráfica en donde el valor de una función es mayor que el de los puntos circundantes","Punto en una gráfica en donde el valor de una función es menor al de todos los puntos circundantes","rectas a las cuales la función se va aproximando indefinidamente, cuando por lo menos una de las variables (x o y) tienden al infinito","exponente al que hay que elevar la base para que nos de dicho número.","se ocupa del cálculo de triángulos, comprendiendo sus seis elementos, los tres lados y los tres ángulos"+ "Es la suma indicada de tres monomios","Proposición de igualdad entre dos razones."};

int aleatorioPalabra;//entero

aleatorioPalabra=(int)(Math.random()*10);//aqui aleatorios es = buscar la palabra aleatoriamente.

String respuesta;

String ingresadas= "";

char prueba[]= new char [palabra[aleatorioPalabra].length()];//el char solo es para una variable o letra.

String soga[] = new String [8];// el numero 8 dira en cuantas oportunidades mostrara el mucheco ahorcado.

soga[7]="-|";//soga significa el muñeco de ahorcado.

soga[6]="-|\n 6";

soga[5]="-|\n 0";

soga[4]="-|\n 0\n |";

soga[3]="-|\n 0\n/|";

soga[2]="-|\n 0\n/|\\";

soga[1]="-|\n 0\n/|\\\n/^";

soga[0]="-|\n 0\n/|\\\n/^\\";

for(int x=0;x<palabra[aleatorioPalabra].length();x++)/*recuerde que en un arreglo inicia con cero y sera menor a una palabra aleatoriamente y segun la palabra lo guardara

para luego mostrar los _*/

{

prueba[x]='_';//tiene que llevar las ' ' asi por que prueba en char y tienen que ir simples.

}

int cont=8;//esto sirve para el muñeco ahorcado siendo el contador = 8

“Aguilar Bryan” “Cabanilla Erwin” “Castillo Fernando” “Romero Jerry” Pag. # 43

Proyecto Final de Programación I

int cont2=0;//esto sirve para el contador incia en 0

int salir=0;//al salir

System.out.println("**************************************************************************");

System.out.println("****************** Menu DE JUGAR CON LA COMPUTADORA - nivel 2 ***********");

System.out.println("************************************************************************* \n");

System.out.println("****************Bienvenidos al juego del ahorcado*************************");

System.out.println("************Usted tiene 8 intentos para adivinar la palabra \n**********************");

System.out.println(descripcion[aleatorioPalabra]);

for(int i=0; i<palabra[aleatorioPalabra].length(); i++)//imprime _ y espacios.

{

System.out.print(prueba[i]+" ");

}

System.out.println("");//son espacios de renglones

System.out.println("");

System.out.println("");

while(cont>=1)

{

respuesta=JOptionPane.showInputDialog("Ingrese Una Letra");

char vocal=respuesta.charAt(0);

if(!(vocal>64&&vocal<91||vocal>96&&vocal<123)) // si vocal es mayor que 64 y menor que 91 significa que son vocales minusculas segun el codigo ASCII ( 64

{

JOptionPane.showMessageDialog(null,"Caraccter incorrecto");

}

ingresadas= ingresadas + respuesta.charAt(0); // esto sirve para reconcer y mostrar las lestras ingresadas de abajo

System.out.println("LAS LETRAS INGRESADAS SON: "+ingresadas);//imprime las letras que has ingresado.

System.out.println(descripcion[aleatorioPalabra]);

System.out.println("");//imprime renglones de espacios.

for(int q=0; q<palabra[aleatorioPalabra].length(); q++)//verifica si la letra ingresada existe.

{

if(respuesta.charAt(0)==palabra[aleatorioPalabra].charAt(q))

{

prueba[q]=palabra[aleatorioPalabra].charAt(q);//si existe si no salta has el if de abajo.

“Aguilar Bryan” “Cabanilla Erwin” “Castillo Fernando” “Romero Jerry” Pag. # 44

Proyecto Final de Programación I

cont2++;

}

}

System.out.println("");//imprime renglones de espacio

if(cont2<1)//como logica aqui es si no existe la letra.

{

puntaje-=200;

if(puntaje==0){

JOptionPane.showMessageDialog(null,"su puntaje ha llegado a cero ");

menu();

}

errores++;

cont--;

System.out.println("");

System.out.println("Esa letra no existe por favor intente de nuevo");

System.out.println("Le quedan "+cont+" intentos");//muestra los intentos que faltan

System.out.println("");

System.out.println(soga[cont]);//imprime el muñeco de ahorcado

cont2=0;

}

else //logica de que si exite.

{

System.out.println("La letra existe ");

System.out.println("Ahora ingrese una nueva ");

cont2=0;

puntaje+=100;

}

for(int i=0; i<palabra[aleatorioPalabra].length(); i++)//imprime _ y espacio mas la letra ingresada tantas veces que esta.

{

System.out.print(prueba[i]+" ");

}

“Aguilar Bryan” “Cabanilla Erwin” “Castillo Fernando” “Romero Jerry” Pag. # 45

Proyecto Final de Programación I

System.out.println("");//imprime renglon de espacio.

for(int i=0; i<palabra[aleatorioPalabra].length(); i++) //verifica si estan las letras de las palabras para saber si gano o perdio

{

if(palabra[aleatorioPalabra].charAt(i)==prueba[i])

{

salir++; // exite todas las letras en las palabras

}

else

{

salir=0; //no exite, salta a cont2 y sigue verificando hasta que inicie de nuevo el programa

}

if(salir==palabra[aleatorioPalabra].length())//al ser salir = a la palabra aleatoria imprimira que a ganado xd

{

System.out.println("");

System.out.println("--------------------------");

System.out.println("Usted ha Ganado el juego ");

System.out.println("Sus puntajes son: ");

System.out.println("Puntaje: "+puntaje);

System.out.println("Errores: "+errores);

System.out.println("--------------------------");

//nivel2();

cont=0; //igual a cero para que no vueva a repetirse el if

}

cont2=0;//contador para que inicie nuevamente el for.

}

}

if(salir<palabra[aleatorioPalabra].length())//imprime que ah perdido.

{

System.out.println("");//imprime renglones de espacios

System.out.println("--------------------------");

“Aguilar Bryan” “Cabanilla Erwin” “Castillo Fernando” “Romero Jerry” Pag. # 46

Proyecto Final de Programación I

System.out.println("la palabra era "+palabra[aleatorioPalabra]);//muestra la palabra que era.

System.out.println("--------------------------");

System.out.println("");//imprime renglones de espacios

System.out.println("");

System.out.println("Usted ha sido ahorcado ");

System.out.println("Puntaje: "+puntaje);

System.out.println("Errores: "+errores);

System.out.println("desea volver a jugar?");

puntaje=1000;

errores=0;

String op=sc.next();

if (op.equals("si"))

{

menu();

}

else

{

JOptionPane.showMessageDialog(null, "Gracias por haber jugado" );

menu();

}

}

}

“Aguilar Bryan” “Cabanilla Erwin” “Castillo Fernando” “Romero Jerry” Pag. # 47

Proyecto Final de Programación I

10.6 Algoritmo para el incio del juego del primer nivel del ahoracado

static String op;

public static void iniciarJuego()

{

limpiarPalabraAux(); //llama el metodo limpiar palabra auxiliar

char letra;

encontradaLetra=false;

do

{

System.out.println("\n");

//Muestro la palabra

for (char longitud : palabraAuxiliar)

{

if ((int) longitud != 0)

{

System.out.print(" " + longitud);

}

}

System.out.println();

System.out.println("Descripcion de palabra: "+ descripcion +"\n"+"\n Ingrese una letra : ");

letra = new String(sc.next()).charAt(0);

buscaLetraEnPalabra(letra);// un mentodo llamado buscaletraenpalabra que tiene como parametros la variable letra

compararPalabras();

intentos++;

System.out.println(" Intentos " + intentos + " Max intentos " + maximoIntentos + "\n \n");

} while (intentos < maximoIntentos && !encontradaLetra);

if (intentos < maximoIntentos && encontradaLetra)

{

JOptionPane.showMessageDialog(null, "Felicidades la palabra a adivinar era: " + palabra + "\n" +

“Aguilar Bryan” “Cabanilla Erwin” “Castillo Fernando” “Romero Jerry” Pag. # 48

Proyecto Final de Programación I

"---------- GANASTE SUPER¡¡ FELICITACIONES --------" + "\n" +

"Numero de intentos requeridos : " + intentos );

op=JOptionPane.showInputDialog( null, " desea volver a jugar? " );

if (op.equals("si"))

{

descripcion="";

intentos=0;

palabra="";

encontradaLetra=false;

menu();

}

else

{

JOptionPane.showMessageDialog(null, "Gracias por haber jugado" );

menu();

}

}

else

{

JOptionPane.showMessageDialog(null, "Lo siento perdiste no adivinaste la palabra pero" + "\n" +

"te agradecemos por haber usado nuestro programa" + "\n" +

"La palabra correcta era : " + palabra );

op=JOptionPane.showInputDialog( null, " desea volver a jugar? " );

descripcion="";

intentos=0;

palabra="";

encontradaLetra=false;

if (op.equals("si"))

{

descripcion="";

intentos=0;

palabra="";

encontradaLetra=false;

“Aguilar Bryan” “Cabanilla Erwin” “Castillo Fernando” “Romero Jerry” Pag. # 49

Proyecto Final de Programación I

menu();

}

else

{

JOptionPane.showMessageDialog(null, "Gracias por haber jugado" );

menu();

}

}

}

“Aguilar Bryan” “Cabanilla Erwin” “Castillo Fernando” “Romero Jerry” Pag. # 50

Proyecto Final de Programación I

10.7 Algoritmo que contiene el metodo main public static void main(String[] args)

{

menu();

}

10.8 Algoritmo que busca una letra en la palabra original public static void buscaLetraEnPalabra(char letra)

{

System.out.println(" Letra ingresada " + letra);

for (int i = 0; i < palabraOriginal.length; i++)

{

if (letra == palabraOriginal[i])

{

palabraAuxiliar[i] = letra;

}

}

}

“Aguilar Bryan” “Cabanilla Erwin” “Castillo Fernando” “Romero Jerry” Pag. # 51

Proyecto Final de Programación I

10.9. Algortimo que compara la palabra orginal con la auxiliar public static void compararPalabras()

{

for (int i = 0; i < palabraOriginal.length; i++)

{

if ((int) palabraOriginal[i] != 0)

{

if (palabraOriginal[i] == palabraAuxiliar[i])

{

encontradaLetra = true;

}

else

{

encontradaLetra = false;

break;

}

}

}

}

“Aguilar Bryan” “Cabanilla Erwin” “Castillo Fernando” “Romero Jerry” Pag. # 52

Proyecto Final de Programación I

10.10 Algoritmo para guardar el puntaje y errores public static void guardar()throws IOException{

String nombre=JOptionPane.showInputDialog("Ingrese su nombre");

RandomAccessFile archivo=new RandomAccessFile("juego.txt","rw");

archivo.seek(archivo.length());

archivo.writeBytes(nombre+" "+ puntaje +" puntos y "+ errores + " errores\n");

archivo.close();

}

10.11 Algoritmo para presentar datos guardados public static void presentar(){

try{

System.out.println("************** Puntaje de Juegos ***************");

// Abrimos el archivo

FileInputStream fstream = new FileInputStream("juego.txt");

// Creamos el objeto de entrada

DataInputStream entrada = new DataInputStream(fstream);

// Creamos el Buffer de Lectura

BufferedReader buffer = new BufferedReader(new InputStreamReader(entrada));

String strLinea;

// Leer el archivo linea por linea

while ((strLinea = buffer.readLine()) != null) {

// Imprimimos la línea por pantalla

System.out.println (strLinea);

}

// Cerramos el archivo

entrada.close();

}catch (Exception e){ //Catch de excepciones

System.err.println("Ocurrio un error: " + e.getMessage());

}

}

“Aguilar Bryan” “Cabanilla Erwin” “Castillo Fernando” “Romero Jerry” Pag. # 53

Proyecto Final de Programación I

9 Documentacion Fotográfica

“Aguilar Bryan” “Cabanilla Erwin” “Castillo Fernando” “Romero Jerry” Pag. # 54

Proyecto Final de Programación I

“Aguilar Bryan” “Cabanilla Erwin” “Castillo Fernando” “Romero Jerry” Pag. # 55

Proyecto Final de Programación I

“Aguilar Bryan” “Cabanilla Erwin” “Castillo Fernando” “Romero Jerry” Pag. # 56

Proyecto Final de Programación I

“Aguilar Bryan” “Cabanilla Erwin” “Castillo Fernando” “Romero Jerry” Pag. # 57

Proyecto Final de Programación I

“Aguilar Bryan” “Cabanilla Erwin” “Castillo Fernando” “Romero Jerry” Pag. # 58

Proyecto Final de Programación I

“Aguilar Bryan” “Cabanilla Erwin” “Castillo Fernando” “Romero Jerry” Pag. # 59

Proyecto Final de Programación I

“Aguilar Bryan” “Cabanilla Erwin” “Castillo Fernando” “Romero Jerry” Pag. # 60