80 likes | 211 Views
Hex. Oplæg til eksamen 28/1-2005. Dagsorden. Introduktion Præsentation af spillet Vores graf Minimax DFS/BFS Disjoint sets. Grafen. Opbygning Pladsforbrug Begrundelse for valg. Minimax. Teorien Evalueringsfunktion Søgetræet Optimering Begrænset søge dybde Tidsfrist
E N D
Hex Oplæg til eksamen 28/1-2005
Dagsorden • Introduktion • Præsentation af spillet • Vores graf • Minimax • DFS/BFS • Disjoint sets
Grafen • Opbygning • Pladsforbrug • Begrundelse for valg
Minimax • Teorien • Evalueringsfunktion • Søgetræet • Optimering • Begrænset søge dybde • Tidsfrist • AlphaBeta-beskæring
DFS/BFS • Valg af DFS • Vores implementering af DFS • Running time DFS • BFS egenskaber • Disjoint sets
DFS pseudokode Check(G) (Svarer til DFS(G)) 1. for each heksagon u in V[G] 2. do algoColor[u] WHITE 3. π[u] NIL 4. for each heksagon u in V[T] 5. do if color[u] = RED 6. then DFSvisitRed(u) DFSvisitRed(u) 1. algoColor[u] GRAY 2. foreach v in Adj[u] 3. do if color[v] = RED && algoColor[v] = WHITE 4. then π[v] u 5. do if v in V[B] 6. Break (der er fundet en vinder). 7. do if v not in V[B] 8. DFSvisitRed(v)
Initialisering: 1. for each heksagon u E V[G] 2. do MAKE-SET(u) Ved tryk på felt: 1. do if color[v] = WHITE 2. color[v] RED/BLUE 3. for each u E Adj[v] 4. do if color[v] = color[u] 5. do if FIND-SET(u) ≠ FIND-SET(v) 6. then UNION(u, v) 7. vinderCheck(color[v]) vinderCheck(color) 1. do if color = RED 2. if FIND-SET(a) = FIND-SET(b) 3. then return TRUE 4. else return FALSE 5. else 6. if FIND-SET(c) = FIND-SET(d) 7. then return TRUE 8. else return FALSE Disjoint sets