![]() StartingPoints Referenced by Homepages
|
Ha Go
Keywords: Software
HaGo is a go playing program written in the functional programming language OK, enough technical details. What are the cons and pros? Cons:
Pros:
generateMove :: Game -> Move
generateMove g = produceMove (toMove g) g stdMoveGenerator
stdMoveGenerator :: MoveGenerator?
stdMoveGenerator = inOrder $ map (filterMG notOnKoPoint)
[ saveMyAtariGroups
, takeHisAtariGroups
, filterMG inBigLiberty allMoves `allBecause`
"I'm just a stupid computer, I'll play in a large lib"
, alWaysPass `allBecause` "Can't find a move, so
I'll pass" ]
(You might have to learn Haskell, but it beats C IMHO) The standard move generator first tries to save strings in Atari by extending or capturing surrounding groups, then takes any oppposing strings in Atari. When neither of these yields a plausible move, the computer will play randomly inside of a 'big' liberty or pass (when there are no big liberties left).
If you are interested in obtaining a version, you can send This is a copy of the living page "Ha Go" at Sensei's Library. ![]() |