“AÑO DE LA INTEGRACIÓN NACIONAL Y EL RECONOCIMIENTO DE NUESTRA DIVERSIDAD"
“INTELIGENCIA ARTIFICIAL”
PROYECTO:
JUEGO
DE TRES EN RAYA
INTEGRANTES:
·
ARENAZA CURI, EDGAR
BALTAZAR
LICAS, NEAL
CHAVEZ
SHICA, PERCYENRRIQUEZ VALVERDE, LENIN
DOCENTE:
SAUL MATEO PEREZ VEGA
TURNO:
NOCHE
CICLO: VII
CICLO: VII
ESCUELA:
INGENIERÍA DE SISTEMAS
LIMA – PERU
2012
ESTRUCTURA
DEL MODELO DEL INFORME FINAL
1.
RESUMEN……………………………………………………………3
2.
INTRODUCCIÓN………………………………………………….....4
3.
OBJETIVOS…………………………………………………………5
4.
PROBLEMA………………………………………………………….5
5.
MARCO
TEÓRICO………………………………………………….7
6.
METODOLOGÍA…………………………………………………...13
7.
RECURSO
HUMANOS…………………………………………….15
8.
CONCLUSIÓN………………………………………………………16
9.
REFERENCIAS……………………………………………………..17
1.
RESUMEN
La planificación de
nuestro proyecto primeramente comienza en la recolección de información acerca
sobre este juego ya que nuestro trabajo de investigación está basado en la
creación de un programa implementando el juego de tres en raya, para comenzar a
resumir nuestro proyecto comenzaremos con la introducción donde aquí se hablara
detalladamente sobre el juego de tres en raya además de los beneficios que nos
brindara, también que llevaremos este juego en el programa Visual Prolog que es
una herramienta fundamental para crear nuestro juego, después de haber
realizado nuestra introducción nos basaremos en los objetivos que son pieza
clave para obtener un mejor enfoque a lo que queremos lograr como estudiantes
también de innovar nuevos métodos para la creación del proyecto, también se
encuentra el problema donde se menciona sobre la realidad de los usuarios que
actualmente no alimentan su mente con juegos de calidad como el de tres en
raya, que además es un juego muy entretenido, educativo y de experiencia ya que
al usuario le tocara jugar con un conocimiento artificial. Después viene el
marco teórico donde se detalla la problemática que hay en las empresas o
programadores en no innovar juegos sanos y
divertidos a la vez y prefiriendo más esos juegos que llevan hacia la adicción,
En la metodología del proyecto utilizaremos aquellos métodos que han servido de
enseñanza por nuestro docente del curso de Inteligencia Artificial (IA) como listas,
recursividad, etc. Después nos basaremos en los recursos donde se muestra que
aporte hiso cada estudiante. Para terminar la estructura de nuestro proyecto
acabaremos con las conclusiones hecho de
manera grupal y las importantes referencias.
Tablero tres en raya
2.
INTRODUCCIÓN
El proyecto “programa inteligente para el
juego de tres en raya” propone una mejor forma de realizar un proceso mental
para las personas que desean jugarlo ya que nuestro propósito es crear este
programa en el software “Visual Prolog” para que el usuario pueda jugar de
manera cómoda desde su ordenador y pueda utilizar sus propias estrategias en el
transcurso del juego, también se busca que los usuarios que utilicen esta
aplicación hagan uso de su inteligencia ya que este programa tiene su propia
racionalidad y sus propias estrategias o técnicas de juego y pueda darle
competitividad al entorno entre el usuario – máquina, de manera que el programa
brindará al usuario una forma muy interesante y entretenida de jugar contra
este agente inteligente(programa inteligente de juego de tres en raya).
La creación de juegos
ha ido en aumento cada vez, hoy por hoy, no sólo existen centenas de estos sino
más bien se menciona millones. Lo curioso de la forma en las que fueron creados
nos hace pensar muchas veces en la idea de tú mismo crear tus propios juegos,
pero muchas veces no se tiene conocimiento sobre cómo hacerlos, pues bien he
aquí una forma que construimos para realizar un pequeño juego considerando que
estamos inicializando en el estudio de los mismos, y es posible que en base a
los aspectos que mencionaremos más adelante Usted podría aplicar diversas
herramientas y técnicas más para la creación de otros.
Utilizando como base
diferentes conceptos vistos en el curso de Programación Lógica y complementadas
con el estudio de algunas técnicas de Inteligencia Artificial en la creación de
juegos entre adversarios, hemos realizado el presente juego a utilizar para una
pc como modo de entretenimiento y experiencia.
Esperando no sea la última vez que me dirijo
hacia Usted haciéndole llegar algún aporte, le presento el Manual de Desarrollo
del “Tres en Raya”
3.
OBJETIVOS
·
Brindar un excelente programa para que los usuarios
puedan tener una satisfacción al momento de jugar tres en raya
·
Controlar la
capacidad de ansiedad sobre el juego
·
Agilizar la
inteligencia del usuario.
·
Incentivar
al mercado a incorporarse nuevos programas donde incluyan esta clase de juegos
racionales y no los juegos de acción.
·
Incentivar a
las empresas a implementar este tipo de programas entretenidos.
·
Hacer más
competitiva la visión de nuestro proyecto.
·
Crear en los
usuarios esa facilidad de manejo y entendimiento con el programa inteligente
del juego de tres en raya.
·
Evitar el
vicio de los usuarios sobre el juego
·
Crear en los
usuario una mayor competitividad mental frente a la maquina en el momento del
juego.
4.
PROBLEMA
El
juego de 3 en raya, a diferencia de los juegos como el ajedrez, póker y otros se basa en un juego de
competencia requiriendo la presencia de dos o más competidores. La solución o
victoria del agente no se da en cuestión de segundos, pues requiere de los
datos que el humano ingrese al juego, pudiendo durar un tiempo considerable la
finalización del juego. Por esta razón el trabajo consiste en buscar una
estrategia de plantear este problema considerando los métodos de búsquedas
estudiados y presentes en la bibliografía para su desarrollo. También lograr en
los usuarios una mejor capacidad mental, de manera que cuando el usuario este
frente al conocimiento artificial y pueda lograr su competitividad además que
si el usuario tiene una duración de mayor tiempo durante el transcurso del
juego nos dará a entender que el nivel de inteligencias del usuario es de una
persona con habilidades mentales ya que jugar frente un conocimiento virtual
que tiene sus propias estrategias de como vencer al usuario no es nada sencillo.
Hoy en día los usuarios están hastiados de
jugar en sus computadoras esas aplicaciones que vienen con su sistema operativo
como por ejemplo Windows que incluye juegos de póker, de ajedrez, etc. de
manera que muchos de los usuarios ya no desean jugar estas aplicaciones y por
esa causa prefieren juegos menos educativos como los que actualmente hay en cada cabina de
internet de nuestro país, otro de estos motivos es que las empresas o
programadores ya no diseñan nuevas aplicaciones donde incluyan juegos
entretenidos y educativos a la vez para los usuarios. Actualmente hay muchas
personas que desean entretenerse con juegos educativos además que el usuario
puede hacer gran uso de su capacidad mental frente a nuevos programas que
incluyan un conocimiento lógico y racional. Pero actualmente hay programadores y empresas que diseñan
juegos de acción y de aventura u otra categoría y lo que no se han percatado es
que ocasionan un daño a la mentalidad de los usuarios porque esta clase de
juegos llevan hacia la adicción y generan un cambio de conducta y disminución
de capacidad mental, de manera que los usuarios decaen con el tiempo al
utilizar estos juegos.
De esta
manera nosotros nos hemos propuesto en la creación de un programa inteligente
que es el juego de tres en raya siempre y cuando sea un juego entretenido y
educativo para la parte mental del usuario. También en incentivar en las
cabinas de internet y empresas sobre la implementación de este programa para
que las personas puedan entretenerse y a la vez aumentar su nivel de
inteligencia de todas las personas que requieren de este juego.
1
Se
desarrollará un software que trata de un popular juego: “Tres en Raya”, que
será capaz de interactuar con el usuario y divertirlo por intermedio de una
jugada desde la misma computadora.
2
El software tendrá 2 opciones de juego: que
la máquina empiece o el usuario empiece; a la vez el software tiene que validar
las posibles jugadas, tanto del participante (usuario) como de él mismo, así
como mostrar cuando hay ganador y cuando hay empate.
3
Todo lo anterior presentado será implementado
utilizando las técnicas de programación lógica con algunas de inteligencia
artificial y un esquema de diseño de un buen software.
5.
MARCO TEORICO
5.1. VISUAL
PROLOG
Visual Prolog es un lenguaje de programación multi
paradigma basado en el lenguaje Prolog lógico. El objetivo de Visual
Prolog es facilitar soluciones programáticas de problemas de conocimiento
complejos hincapié.
Visual Prolog es un potente con seguridad de tipos
lenguaje de programación de alto nivel que combina las mejores características
de los paradigmas lógicos de programación funcional y orientada a objetos de
una manera coherente y elegante.
Con Visual Prolog puede crear aplicaciones para
Microsoft Windows 32/64 plataformas.Es compatible con soluciones avanzadas de
cliente-servidor y de tres niveles. Visual Prolog es especialmente
adecuado para abordar los conocimientos complejos.
Al utilizar el sistema de objetos poderosos son
capaces de diseñar su aplicación muy rígida y al mismo tiempo beneficiarse de
acoplamiento muy flojo. Esto le permitirá reducir los costes de desarrollo
y mantenimiento aún más.
5.2.
Características de Visual Prolog:
·
conceptos
lógicos de programación (retroceso, búsqueda de patrones)
·
tipos
de datos algebraicos
·
un
sistema único objeto
·
multi-threading
(apoyado en la edición comercial)
·
polimorfismo
paramétrico
·
Soporte
Unicode
·
gestión
automática de memoria (recolección de basura)
5.3.
INTRODUCCIÓN:
Prolog
es un lenguaje de programación diseñado para representar y utilizar el
conocimiento que se tiene sobre un determinado dominio. Los programas en
Prolog responden preguntas sobre el tema
del cual tienen conocimiento. Forma
parte de lo que se conoce como programación declarativa. En lenguajes
tradicionales se indica cómo resolver un problema, en la programación lógica se
establecen hechos reales y reglas para así no saber cómo resolver el problema,
sino que hacer para resolverlo. La popularidad de este lenguaje se debe a su
capacidad de deducción y además es un lenguaje fácil de usar por su semántica y
sintaxis. Sólo busca relaciones entre los objetos creados, las variables y las
listas, que son su estructura básica. En este artículo se dará una reseña
histórica, para entender los orígenes del Prolog, una pequeña descripción del
programa, así como las estructuras básicas y algunos operadores. También se
mencionaran algunas ventajas y desventajas de Prolog, así como casos de uso.
Por último se mostrarán tres ejemplos para mostrar la sintaxis y funcionamiento
de Prolog.
5.4. HISTORIA
Los
inicios de la programación lógica se dan gracias a los primeros trabajos de
inteligencia artificial. Los cuales originaron el primer lenguaje de
programación que contempla los mecanismos de inferencia necesarios para la
demostración automática de teoremas. El lenguaje de programación Prolog se
originó del trabajo hecho por Robert A. Kowalski en la Universidad de
Edinburgh y Alain Colmeraur en la
Universidad de Aix-Marseille (Francia) en los años 70. La investigación de
Kowolski en el área de deducción automatizada, llevó al desarrollo con
Colmerauer al uso formal de lógica como un lenguaje de programación. Kowolski
proporcionó la base teórica y Colmerauer inició la programación de Prolog.
Colmeraur y Phillipe Roussel desarrollaron el primer intérprete, y David Warren
de la Universidad de Edinburgh desarrolló el primer compilador Prolog. La
mayoría de las implementaciones comerciales de Prolog usan la misma sintaxis
desarrollada en Edinburgh. Su nombre proviene de las palabras en inglés
“Programming in Logic”. Desde su
creación, Prolog ha crecido en popularidad en Europa, América y Japón.
5.5. DESCRIPCIÓN:
Prolog
es un lenguaje de programación simple, pero poderoso. Se basa en nociones
matemáticas de relaciones de inferencia. Es un lenguaje declarativo e
interpretado, esto quiere decir que el lenguaje se usa para representar
conocimientos sobre un determinado dominio y las relaciones entre objetos de
ese dominio. Un programa en Prolog consiste de una base de datos de relaciones
lógicas y detalles que se cumplen para la aplicación. Dicha base de datos no
tiene una estructura impuesta, ni un procedimiento o clase principal. Los datos
y relaciones de un programa en Prolog se escriben en un único archivo, el cual es consultado por el
programa cuando se le hace una pregunta.
Escribir
un programa en Prolog consiste en declarar el conocimiento disponible acerca de
los objetos, además de sus relaciones y sus reglas. En lugar de correr en un
programa para obtener una solución, se hace una pregunta, el programa revisa la
base de datos para encontrar la solución a la pregunta. Si existe más de una
solución, Prolog hace backtracking para encontrar soluciones distintas. El
propio sistema es el que deduce las respuestas a las preguntas que se le
plantean, dichas respuestas las deduce del conocimiento obtenido por el
conjunto de reglas dadas. La ejecución de Prolog consiste en una búsqueda en profundidad de un árbol conteniendo todas
las posibles soluciones. Para cada una de ellas se evaluará su validez. Más
adelante se explicará el funcionamiento
de un árbol de deducción relacionado con un ejemplo. La estructura de un
programa en Prolog es lógica y directa. Se explican cada una de sus partes y
operadores disponibles a continuación.
5.6. ESTRUCTURA DE UN PROGRAMA EN PROLOG
La
sintaxis Prolog incluye:
Hechos: es
un hecho del lenguaje cotidiano. En lenguaje normal, una proposición puede ser
“hace calor”.
Reglas: las
capacidades del programa. Estas son consultadas al hacer una consulta para
verificar su validez o invalidez.
Variables:
Representan objetos que el mismo Prolog determina. Una variable puede estar
instanciada o no instanciada.
Consultas: es
la acción de hacerle una pregunta al programa sobre la información contenida en
la base de datos.
5.7. VENTAJAS Y DESVENTAJAS
5.7.1
Ventajas
Una
ventaja desde el punto de vista del usuario es la facilidad para programar ya
que se pueden escribir programas
rápidamente, con pocos errores originando programas claramente legibles, aun si
no se conoce muy bien el lenguaje.
Otra
ventaja de este tipo de lenguajes frente a otros, como Java o C++, es que no
hay que pensar demasiado en la solución del problema, ya que Prolog infiere sus
respuestas basándose en las reglas declaradas dentro del programa.
5.7.2. Desventajas
La
resolución automática no siempre es eficiente, por lo que eventualmente se
podría dar una respuesta incorrecta a una consulta.
Ciertos
problemas están ligados a la representación del conocimiento, que Prolog no
posee.
Prolog
es algunas veces es incapaz de reconocer
que un problema es (para su propio conocimiento) inaplicable o
insuficiente. Si el programa no contiene suficiente información para contestar
una consulta, es incapaz de reconocerlo.
5.8. Inteligencia
artificial
La
IA es un campo de la ciencia y la ingeniería que se ocupa de la comprensión,
desde un punto de vista informático, de lo que denomina comúnmente
comportamiento inteligente. También se ocupa de la creación de artefactos que
exhiben este comportamiento.
En ciencias de computación se denomina inteligencia artificial (IA) a la capacidad de razonar de un agente no vivo.
Es la ciencia e ingeniería de hacer máquinas inteligentes,
especialmente programas de cómputo inteligentes.
5.9. Los
Juegos.
Una definición sencilla sería lo
siguiente: " Los juegos son es el ejercicio recreativo sometido a
reglas, y en el cual se gana o se pierde" (RAE).
En inteligencia artificial los
juegos son bastante utilizados en la teoría de Juegos, ya que da
posibilidad a un conjunto infinito de evaluaciones.
"La naturaleza abstracta de los
juegos los hacen un tema atractivo de estudiar. El estado de un juego es fácil
de representar y los agentes están restringidos, por lo general, a un pequeño
número de acciones y cuyos resultados están definidos por reglas
precisas." (Russell y Norvig)
5.10. Clasificación de los Juegos
Los Juegos
se clasifican según ciertas propiedades presentes en todos ellos, facilitando
así la decisión de qué algoritmo utilizar para vencer.
La primera
de las propiedades a tener en cuenta será el número de jugadores, la segunda
será el orden de los movimientos, saber si por ejemplo los jugadores mueven
alternativamente o por azar
5.11. Juego Tres en Raya
El tres en línea, también conocido como tres en raya, es un juego, en nuestro caso desarrollado en Visual prolog, entre dos jugadores: X y Y, que marcan los espacios de un tablero de 3×3 alternadamente. Un jugador gana si consigue tener una línea de tres de sus símbolos: la línea puede ser horizontal, vertical o diagonal.
5.12. Estrategia a seguir
La idea
básica cuando buscas vencer computacionalmente un adversario es intentar
predecir todos los posibles movimientos, todas las posibles situaciones desde
tu turno hasta el final de la partida, y elegir la que prometa mejores
resultados. Esta idea se la conoce como la de “generar todo el árbol de
búsqueda”.
6. METODOLOGÍA
7.
RELACIÓN DE RECURSOS HUMANOS
71. Roles
y actividades de los integrantes:
Nuestro grupo está conformado por 2 estudiantes, a continuación los
integrantes y los aportes de cada uno de ellos en la elaboración del proyecto:
§ ARENAZA CURI, EDGAR
Se encargó de
la recolección de información sobre el marco teórico y las conclusiones del
proyecto.
§ BALTAZAR LICAS, NEAL
El alumno se encargó de la documentación del proyecto y en la creación
de listas para el programa inteligente del juego de tres en raya.
·
CHAVEZ
SHICA, PERCY
Se encargó de
la codificación y creación de listas del proyecto además además que también el
alumno aportará en la documentación del presente trabajo.
·
ENRRIQUEZ
VALVERDE, LENIN WILLIAM
Se encargó de
la codificación y creación de listas del proyecto además que también el alumno
aportará en la documentación del presente trabajo.
7.2. Software y Hardware:
Para el
desarrollo del proyecto se hará uso de:
·
Un Computador Dual Core con SO Windows 7.
·
Microsoft Office Word 2010.
·
Visual Prolog.
·
Memoria USB
8.
CONCLUSIÓN
·
La metodología empleada en el juego es la más
idóneo puesto que nos permite realizar los flujos de trabajo en varias
iteraciones.
·
El desarrollo del software en su fase de
construcción se logró llevar a cabo gracias
a la flexibilidad del manejo del
visual.
9.
REFERENCIAS
Ø RUSSELL, Stuart y
NORVIG Peter. Inteligencia Artificial –
Un Enfoque Moderno 2ª.edición.España: Pearson Educación S. A, 2006.
1240 p.
ISBN 84-205-4003-X
Ø ESCOLANO, Francisco, CAZORLA, Miguel,
GALIPIENSO, Isabel. Inteligencia Artificial – Modelos, Técnicas y áreas de
aplicacion2ª.edición.España: International Thomson Ediciones Spain, 2003. 367 p.
ISBN 84-9732-183-9




hola q tal amigo... muy bueno sus proyecto,,, me podrias envia el codigo abierto y la aplicacion a mi correo franco_0_16@hotmail.com ya que em gustaria estudiar la logica que emplearon y las tecnicas en ella,, soy estudiante de ing de sistemas y en este semestre estoy viendo el curso de IA... de antemano ,,muchas gracias
ResponderEliminarMe parece genial, podrias por favor enviarme tu documentacion y los links de tu app y codigo para explorarlo, tambien soy estudiante de Ing de sistemas. gracias.
ResponderEliminarmail: angel_clasic@hotmail.com
muy bueno el proyecto me podrías enviar el código este es mi correo ximena_2252@hotmail.com te lo agradezco de antemano
ResponderEliminarHola amigo me parecio chevere tu proyecto me podrías enviar el código a jcinteligente@gmail.com para ver como lo realizaste
ResponderEliminarHola amigo me parecio chevere tu proyecto me podrías enviar el código a jcinteligente@gmail.com para ver como lo realizaste
ResponderEliminarHola amigo me parecio chevere tu proyecto me podrías enviar el código a jcinteligente@gmail.com para ver como lo realizaste
ResponderEliminarTe mandaron el código?
EliminarTe mandaron el código?
Eliminarhola podrias ayudarme facilitando el codigo del juego 3 en raya por favor ? es para un proyecto escolar . Mi correo es
ResponderEliminaradan_0993@hotmail.com
Este comentario ha sido eliminado por el autor.
ResponderEliminarEste comentario ha sido eliminado por el autor.
ResponderEliminaralguien tiene el codigo enserio lo necesito
ResponderEliminarpor favor
ResponderEliminarporfa envien
ResponderEliminarme puede facilitar el codigo del prolog por favor
ResponderEliminaral correo jhulianamendoza@hotmail.com
ResponderEliminar