Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad


Algoritmo minimo y maximo, Esquemas y mapas conceptuales de Inteligencia Artificial

Descripcion del algoritmo minmax aplicado a la realidad

Tipo: Esquemas y mapas conceptuales

2017/2018

Subido el 20/04/2025

jefferson-rivera-2
jefferson-rivera-2 🇵🇪

1 documento

1 / 4

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
AlgoritmoMinimax
Alumno:JeffersonRiveraSulla
Código:14200151
Características:
Algoritmousadoenlosjuegosdondehaydoscompetidores(elhumanoyla
máquina)endondeeljugadorpuedeinducirconlospreviosmovimientosqué
jugadahacer.
IntegradoporlosjugadoresMAXyMINyconunestadoenespecíficoylos
resultadosquesegenerancondiferentesoperacionesdisponibles,segenera
unárbolminimax.
Código:
;Secrealalistainicialconelementosvacios
(defuntablerovacio()
(listnilnilnilnilnilnilnilnilnil))
(defvarinicionil)
(setqinicio(tablerovacio))
pf3
pf4

Vista previa parcial del texto

¡Descarga Algoritmo minimo y maximo y más Esquemas y mapas conceptuales en PDF de Inteligencia Artificial solo en Docsity!

AlgoritmoMinimax Alumno:JeffersonRiveraSulla Código: 14200151 Características: Algoritmousadoenlosjuegosdondehaydoscompetidores(elhumanoyla máquina)endondeeljugadorpuedeinducirconlospreviosmovimientosqué jugadahacer. IntegradoporlosjugadoresMAXyMINyconunestadoenespecíficoylos resultadosquesegenerancondiferentesoperacionesdisponibles,segenera unárbolminimax. Código: ;Secrealalistainicialconelementosvacios (defuntablerovacio() (listnilnilnilnilnilnilnilnilnil)) (defvarinicionil) (setqinicio(tablerovacio))

;Sedefinelafuncionhacer-movenunaposiciónpos,unjugadorsea‘xu‘oy unmovimientoentre 0 y 8 (defunhacer-mov(posjugadormovimiento) (unless(nthmovimientopos) (let((b(copy-listpos))) (setf(nthmovimientob)jugador) b))) ;Secrealafunciónmovimientogenqueconlaayudadelaposiciónyeljugador, generatodoslosestadosposiblesquesepuedenhacer (defunmovimientogen(posjugador) (loopform from 0 to 8 unless(nthm pos) collect(hacer-movposjugadorm))) ;Funcióndeevaluaciónsisehaganado,retornaverdadsiseestáenuna posicióndevictoriaodelocontrariodevuelvefendondeestánlas combinacionesquesepuedenganar (defunganoono(posjugador) (or(and(eq(nth 0 pos)jugador) (eq(nth 1 pos)jugador) (eq(nth 2 pos)jugador)) (and(eq(nth 3 pos)jugador) (eq(nth 4 pos)jugador) (eq(nth 5 pos)jugador)) (and(eq(nth 6 pos)jugador) (eq(nth 7 pos)jugador) (eq(nth 8 pos)jugador)) (and(eq(nth 0 pos)jugador) (eq(nth 3 pos)jugador) (eq(nth 6 pos)jugador)) (and(eq(nth 1 pos)jugador) (eq(nth 4 pos)jugador) (eq(nth 7 pos)jugador)) (and(eq(nth 2 pos)jugador) (eq(nth 5 pos)jugador) (eq(nth 8 pos)jugador)) (and(eq(nth 0 pos)jugador) (eq(nth 4 pos)jugador) (eq(nth 8 pos)jugador)) (and(eq(nth 2 pos)jugador) (eq(nth 4 pos)jugador) (eq(nth 6 pos)jugador)))) ;FunciónempatequeretornaTsiesunaposicióndeempatedondeyanose

(loopforsuccinsucesoresdo (let*((result-succ(minimaxsucc( 1 +profundidad) (opuestojugador))) (nuevval(-(carresult-succ)))) (when(>nuevvalmejor) (setqmejornuevval) (setqcaminsucc)))) (consmejorcamin))))))) (defvarvareva 0 ) ;Funciondeminimaxqueseinvocará (defunminimaxprinc(posprofundidadjugador) (minimaxposprofundidadjugador)) ;Funciondejuego (defunjugar() (let((binicio)) (setqvareva 0 ) (do() ((or(ganoonob'x)(ganoonob'o)(empateb)) (formatt"Posicionfinal:~%") (tablerob) (cond((ganoonob'o)(formatt"Ogano.~%")) ((ganoonob'x)(formatt"Xgano.~%")) (t(formatt"Empate~%"))) vareva) (tablerob) (formatt"~amovimientodex:"vareva) (setqb(minimaxprincb 0 'x)) (when(and(not(empateb)) (not(ganoonob'o)) (not(ganoonob'x))) (tablerob) (setqb(minimaxprincb 0 'o)) (if(and(not(empateb)) (not(ganoonob'o))) (formatt"~amovimientode 0 :"vareva)))))) ;Alejecutarserealiza(jugar)