{-WETT - Der zweite Othello Player - - Das Spielbrett ist ein "Data.Vector Int" mit - Länge 64. 1 ist Weiß, -1 ist Schwarz, 0 ist leer. - Zum Durchsuchen des Spielbaums wird ein Minimax-algorithmus mit - alpha-beta pruning benutzt. Am Anfang wird bis 5 Züge vorausgedacht, - im Midgame bis 6 Züge, - sobald nur noch 10 Züge getut werden können, wird bis zum vollen - Brett gerechnet. - Die Bewertungsfunktion für ein Spielbrett bewertet Mobilität (maximiere - Anzahl der möglichen Moves, minimiere Stein die neben einem leeren Feld - sind) und mag stabile Steine (Steine die nicht mehr umgedreht werden - können). Stabile Steine finden ist tricky und "stabPiec" findet Steine - die stabil sind, aber nicht unbedingt alle stabilen Steine. - - Um überhaupt erstmal Othello in Haskell zu verstehen, hab ich einen - Großteil dieser Implementierung abgeschrieben: - https://github.com/geon/Othello-in-Haskell (siehe Othello_Player_1) - Und natürlich zahlreiche andere Quellen im Internet gelesen. - - Der Beweis, ob mein minimax-alpha-beta Algorithmus wirklich korrekt - arbeitet, sei dem Leser überlassen (denn ich bin mir nicht sicher :)) -}