0% encontró este documento útil (0 votos)
18 vistas7 páginas

Mini Proyecto IA

El documento describe la construcción de un juego de Ahorcado utilizando el lenguaje de programación Python y la biblioteca pygame, con los objetivos de explicar la representación del conocimiento y la lógica para construir motores de inferencia, y revisar el desarrollo de la inteligencia artificial desde la imitación del comportamiento humano hasta los agentes racionales. Se discute el uso del algoritmo de poda alpha-beta para optimizar el algoritmo minimax utilizado en el juego de Ahorcado para reducir el tiempo de computación y permitir la búsqueda en niveles más profundos del árbol de juego.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
18 vistas7 páginas

Mini Proyecto IA

El documento describe la construcción de un juego de Ahorcado utilizando el lenguaje de programación Python y la biblioteca pygame, con los objetivos de explicar la representación del conocimiento y la lógica para construir motores de inferencia, y revisar el desarrollo de la inteligencia artificial desde la imitación del comportamiento humano hasta los agentes racionales. Se discute el uso del algoritmo de poda alpha-beta para optimizar el algoritmo minimax utilizado en el juego de Ahorcado para reducir el tiempo de computación y permitir la búsqueda en niveles más profundos del árbol de juego.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Mini Proyecto

Objetivo: Hacer un juego de IA - Ahorcado utilizando Python (pygame)

Objetivo del laboratorio:

Explicar a los estudiantes los problemas básicos de la representación del conocimiento y la lógica para poder construir

motores de inferencia.

Objetivo del curso:

Para revisar las diferentes etapas de desarrollo del campo de la IA, desde el comportamiento humano hasta

Agentes racionales.

Teoría:

Algoritmo utilizado: Algoritmo de Poda Alpha-beta

En cada etapa, estamos adivinando la letra (no previamente adivinada) que ocurre en la mayor cantidad.
número de palabras posibles restantes. Hay cierta motivación para gustar de este algoritmo - estamos
siempre mínimamente propenso a perder una vida. Pero, me parece que esta no es necesariamente la mejor solución:
si estamos tratando de adivinar la palabra (dentro de un cierto número de vidas), no es necesariamente siempre la
caso en que la letra que ocurre con mayor frecuencia es la letra más útil para distinguir entre el
palabras disponibles restantes.

Poda alfa-beta:

La poda alfa-beta es unaalgoritmo de búsquedaque busca disminuir el número de nodos que están
evaluado por elalgoritmo minimaxen suárbol de búsqueda.Es un algoritmo de búsqueda adversarial utilizado
comúnmente para el juego de dos jugadores por máquina. Deja de evaluar un movimiento cuando al menos uno
se ha encontrado una posibilidad que prueba que el movimiento es peor que un movimiento examinado previamente.

Tales movimientos no necesitan ser evaluados más. Cuando se aplican a un árbol minimax estándar, devuelve el
el mismo movimiento que minimax haría, pero poda ramas que no pueden influir en el resultado final
decisión.

La poda Alpha-Beta no es en realidad un nuevo algoritmo, sino una técnica de optimización para minimax.
algoritmo. Reduce el tiempo de cálculo en un gran factor. Esto nos permite buscar mucho más rápido.
y incluso profundizar en niveles más profundos en el árbol del juego. Corta ramas en el árbol del juego que necesitan

no se buscará porque ya existe un mejor movimiento disponible. Se llama Alpha-Beta


poda porque pasa 2 parámetros adicionales en la función minimax, a saber, alfa y beta.
Salida:
Cuando se ejecuta en el símbolo del sistema

2
3

4
Código Fuente:-
importar aleatorio
importar os
hangmanpics = ['''

+---+
| |
|
|
|
|
|
=========== ''','''
+---+
| |
O
|
|
|
|
=========== ''','''
+---+
| |
O
| |
|
|
|
=========== ''','''
+---+
| |
O
/| |
|
|
|
=========== ''','''
+---+
| |
O |
/|\ |
|
|
|
=========== ''','''
+---+
| |
O
/|\ |
/ |
|
|
=========== ''','''
+---+
| |
O
/|\ |
/\|
|
|
=========== ''']

india australia africa rusia inglaterra pakistán afganistán bután birmania


bangkok bangalore hyderabad nueva york shanghai berlín calcuta mumbai
Shahrukh Khan Gandhi Hitler Nehru Jackie Brucelee Salman Khan

def Países():
tendrás que adivinar el nombre de un País
devolver País

def Ciudades():
Deberás adivinar el nombre de una ciudad
devolver Ciudad

def Famoso():
Tendrás que adivinar esta personalida famosa
retornar Famoso

def err():
Recibirás una palabra aleatoria de las 3 anteriores.
regresar País + Ciudad + Famoso

def NotaDeBienvenida():

Selecciona una categoría


print(' 1: Países')
imprimir(' 2: Ciudades')
imprimir(' 3: Personalidades Famosas')
4: Aleatorio

{
Países
Ciudades
Famoso

elegir = entrada()
retornar elección.get(elige, err)().dividir()

def obtenerPalabraAleatoria(listaDePalabras):
índice_de_palabra = random.randint(0,len(lista_de_palabras)-1)
devuelve wordlist[wordindex]

def mostrar(imageneshangman, letrasfaltantes, letrascorrectas, palabrasecreta):


os.system('cls')
print(hangmanpics[len(missedletters)])
print()

print("Letras Perdidas:", end = ' ')


por letra en letrasperdidas:
imprimir(letra, final=' ')
imprimir()
imprimir()
blanks = '_' * len(secretword)

para i en rango(len(palabrasecreta)):
si secretword[i] en correctletters:
blanks = blanks[:i] + secretword[i] + blanks[i+1:]

por letra en espacios en blanco:


imprimir(letra, final=' ')

imprimir()
imprimir()

def obtener_sugerencia ya_adivinada):


mientras True:
imprimir(' Adivina una letra ')
entrada
adivinar = adivinar.lower()
si len(guess) != 1:
print('Por favor, introduce letras individuales')
elif guess in alreadyguessed:
Esta letra ya ha sido adivinada, elige una nueva letra
de lo contrario:
devolver suposición

def jugarDeNuevo():
print('¿Quieres jugar de nuevo? (Sí o No)')
return input().lower().startswith('y')

print(' Bienvenido a H A N G M A N de Troll')


imprimir(hangmanpics[6])
Nota de bienvenida()
missedletters
correctletters
obtenerPalabraAleatoria(words)

hecho

mientras True:
mostrar(hangmanpics, letras perdidas, letras correctas, palabra secreta)
suposición = obtener_suposición(letras_perdidas + letras_correctas)

si la conjetura está en la palabra secreta:

correctletters = correctletters + guess


found = True
para i en rango(len(palabrasecreta)):
si secretword[i] no está en correctletters:
found = False
romper

si se encuentra:

print('Ganaste el juego ')


print('La palabra secreta era -----> ' + secretword.upper())
done = True
sino:
missedletters = missedletters + adivinar
si len(letrasperdidas) == len(imageneshangman)-1 :
mostrar(picsdelahoracangrejera, letrasfaltantes, letrascorrectas, palabraescondida)
print('Has perdido el juego, la palabra era :' + secretword)
done = True

si hecho:
si jugarotravez():
os.system('cls')
NotaDeBienvenida()
missedletters
correctletters
done = False
obtenerPalabraAleatoria(palabras)
sino:
descanso

Conclusión:
Pudimos ejecutar el código y preparar un juego utilizando Python IDLE y la poda Alpha-beta.
algoritmo donde la computadora es configurada para hacer cada movimiento y así ganar el juego.

Resultados de laboratorio:

Alcanza la capacidad de representar diversos dominios de problemas de la vida real utilizando técnicas basadas en la lógica.

y usar esto para realizar inferencias o planificación.

Resultados del curso:

Adquirir la capacidad de representar varios dominios de problemas de la vida real utilizando técnicas basadas en la lógica

y usar esto para realizar inferencias o planificación.

También podría gustarte