udg-propro-spring-2020 / projecte-2020-a3

projecte-2020-a3 created by GitHub Classroom
0 stars 1 forks source link

Setmana 30 de Març a 5 d'Abril #9

Closed joanplaja closed 4 years ago

joanplaja commented 4 years ago

Aquesta setmana de moment he fet: Un fitxer java per provar de forma simple l'algorisme minMax i comprovar el seu funcionament.

La pròxima setmana: Ara demanaré al meu company @DavidNagisa333 que em fagi unes funcions a la classe Chess que ell desenvolupa. Afegiré ara a l'issue actual el que necessito. Començaré a pensar diverses formes d'encarar el coneixement com et vaig comentar i desenvolupar el bàsic que veigi que s'ha de fer.

@miquelbofill si et pots mirar el fitxer de prova que penjat a la carpeta test. He provat per diferents nivells podant i sense podar el temps i el nombre de nodes per veure l'eficiencia real.

També deixo aquí un petit resum i petits esquemes que he fet perquè quedi documentat i pugui ajudar a comprendre el meu plantejament: La següent imatge representa un desenvolupament d'una partida fins a una partida fins a una profunditat 3 en la qual hi ha 2 jugadors, el jugador 1 (el qual és la CPU) té una fitxa la 1 i el jugador 2 té dues fitxes la 1 i la 2. Per poder-ho provar en el codi he forçat que cada fitxa sempre tingui 2 moviments possibles el moviment 0 que dóna 0 punts i el moviment 1 que dóna els mateixos punts com el número de la fitxa. (aquesta prova està en el testcpu.java)

TREE-Page-1

L'algorisme minmax funciona suposant que els dos jugadors juguen de manera òptima. Suposem que els punts del jugador 2 seran negatius pel jugador 1 per tant si el jugador 2 guanya 2 punts el jugador 1 en perdrà dos. Si sumem aquests punts a cada node fins a les fulles tindrem els mateixos valors que hi ha a les fulles de la imatge. Ara per tant començant des de baix el que es fa és que el jugador 1 sempre escollirà la puntuació més alta i el jugador 2 escollirà la més baixa, ja que hem convertit els valors en negatius. El color verd significa la puntuació que escull el jugador 1 (CPU) "Max". El color vermell significa la puntuació que escull el jugador 2 "Min".

TREE-Page-2

Per últim i per no tenir un text molt llarg explicant deixo la foto amb les indicacions que seguit per podar.

TREE-Page-3

miquelbofill commented 4 years ago

Hola @joanplaja, està molt bé que t'hagis atrevit amb això. L'explicació és molt clara (sabent mínimament en què consisteix el MiniMax). Pel que respecta al codi, no tinc res a dir-hi. Com a prototipus el veig bé. L'única cosa és que el temps surt sempre zero. Has de fer (float)temps/1000000000.