Download - 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