úÎ#Ë™7      !"#$%&'()*+,-./0123456 Safe-Inferred !"(024=K=Map from board positions to the team occupying that position.!The corner where the team starts.-The six corners of a star-shaped halma board.XNumbers of fields on each straight edge of a star-shaped halma board of the given size.:Total number of fields on a halma board of the given size.ÖFrom the point of view of the given corner: On which row lies the given field? The row through the center is row zero, rows nearer to the corner have positive, rows nearer to the opposite corner negative numbers.S The corner corresponding to a direction on a star-shaped board of the given size.5The position of the corner field where a team starts..The position of the end zone corner of a team.'The start positions of a team's pieces.The end zone of the given team."Construct halma boards. Satisfies 2fromMap (getGrid board) (toMap board) = Just board.8Lookup whether a position on the board is occupied, and vMove a piece on the halma board. This function does not check whether the move is valid according to the Halma rules.*7 89start position end position:;<=>?@A !  7   89:;<=>?@ANone!May pieces be moved backwards?",May pieces be moved into other star corners?'(Computes all possible moves for a piece.(.Has a team all of it's pieces in the end zone? !"#$%&BCDE'(F  !"#$%&'( #&%$ !"'(  !"#&%$BCDE'(FNone3=K*jRender the board using the helper function for drawing the fields. Supports querying for field positions.+URender the board using the given team colors. Supports querying for field positions.)*+)*+)*+)*+None ,-./01234GH ,-./01234 01,/.-234,/.-01234GHNoneIJ555IJ5NoneKLM6NOPQ66KLM6NOPQR      !"#$%&&'()*+,-./01232456789::;<=>?@ABCDEFGHIJKLMNOPQRSTU halma-0.2.0.0Game.Halma.BoardGame.Halma.RulesGame.Halma.Board.DrawGame.Halma.AI.BaseGame.Halma.AI.IgnorantGame.Halma.AI.Competitive HalmaBoardgetGridtoMapTeamHalmaDirection Northwest SouthwestSouth Southeast NortheastNorth HalmaGrid LargeGrid SmallGrid HalmaGridSizeLS sideLengthnumberOfFieldsoppositeDirectionleftOfrowsInDirectioncorner startCorner endCorner startFields endFieldsfromMaplookupHalmaBoard movePiece initialBoard RuleOptionsmovingBackwardsinvadingMoveRestriction Forbidden TemporarilyAllowed possibleMoves hasFinisheddefaultTeamColours drawBoard' drawBoardRatingLossInWinInMoveoutcome teamRating allOwnPieces allLegalMovesaiMovegetDirs neighbour'$fShowHalmaBoard$fBoundedGridHalmaGrid$fFiniteGridHalmaGrid$fFiniteGridHalmaGrid0$fGridHalmaGrid$fShowHalmaGrid$fOrdHalmaGrid $fEqHalmaGrid filterForwardfilterNonInvadingpossibleStepMovespossibleJumpMoves$fDefaultRuleOptions$fBoundedRating $fOrdRatingignorantFixedDepthbeingSomewhatGreedy Perspective flipPerspratingprunedMinMaxSearchisWin flipRating pushRating