6[-ؕ      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~Safe2     None %&59:;DR[#A move of piece on a (Halma) board.start position3end position, must be different from start position=Map from board positions to the team occupying that position.Halma gaming pieceplayernumber between 1 and 15!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.+SThe 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.0#Construct halma boards. Satisfies 2fromMap (getGrid board) (toMap board) = Just board.17Lookup whether a position on the board is occupied, and2vMove a piece on the halma board. This function does not check whether the move is valid according to the Halma rules.4 !"#$%&'()*+,-./0123456789:;<=>?@$ "!#$%&'()*+,-./0123&#$%&' !"()*+,-./0123# !"#$%&'()*+,-./0123456789:;<=>?@None:DRSjRender the board using the helper function for drawing the fields. Supports querying for field positions.TURender the board using the given team colors. Supports querying for field positions.RSTRSTRSTRSTNone %&2349:;ATUVWXYZ[\]^_`abcdefghiUWVXYZ[\]^_`abcdeXYZ[\]UVWVW^_`abcdeUVWXYZ[\]^_`abcdefghiNonevMay pieces be moved backwards?w,May pieces be moved into other star corners?y'moves of this kind of field are allowedz2the player can pass the field but cannot occupy it{)the player can't pass or occupy the field|(Computes all possible moves for a piece.}.Has a team all of it's pieces in the end zone?tuvwxyz{|}~ tuvwxyz{|} xyz{tuvw|} tuvwxyz{|}~None  None@The perspective of the first team as opposed to the second team.7Find the best move or one that reaches the given bound.None       !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyzz{|}~[$halma-0.3.0.0-E77mvIbb0PoJib7Qr9ou7JGame.TurnCounterGame.Halma.BoardGame.Halma.Board.DrawGame.Halma.ConfigurationGame.Halma.RulesGame.Halma.AI.BaseGame.Halma.AI.CompetitiveGame.Halma.AI.Ignorant TurnCounter tcPlayers tcCounternewTurnCounternextTurn nextTurnWith previousTurnpreviousTurnWith currentPlayer nextPlayerpreviousPlayer currentRound$fEqTurnCounter$fShowTurnCounter$fFunctorTurnCounterMovemoveFrommoveTo HalmaBoardgetGridtoMapPiece pieceTeam pieceNumberTeamHalmaDirectionNorth Northeast SoutheastSouth Southwest Northwest HalmaGrid SmallGrid LargeGrid sideLengthnumberOfFieldsoppositeDirectionleftOfrowsInDirectioncorner startCorner endCorner startFields endFieldsfromMaplookupHalmaBoard movePiece initialBoard$fFromJSONMove $fToJSONMove$fFromJSONHalmaBoard$fToJSONHalmaBoard$fFromJSONPiece $fToJSONPiece$fBoundedGridHalmaGrid$fFiniteGridHalmaGrid$fGridHalmaGrid$fFromJSONHalmaDirection$fToJSONHalmaDirection$fFromJSONHalmaGrid$fToJSONHalmaGrid $fEqHalmaGrid$fShowHalmaGrid$fOrdHalmaGrid$fEqHalmaDirection$fShowHalmaDirection$fReadHalmaDirection$fOrdHalmaDirection$fBoundedHalmaDirection$fEnumHalmaDirection$fGenericHalmaDirection $fShowPiece $fEqPiece $fOrdPiece$fEqHalmaBoard$fShowHalmaBoard $fShowMove$fEqMovedefaultTeamColours drawBoard' drawBoard ConfigurationconfigurationGridconfigurationPlayers HalmaPlayers TwoPlayers ThreePlayers FourPlayers FivePlayers SixPlayers configurationtwoPlayersOnSmallGridthreePlayersOnSmallGridplayersOnLargeGrid setSmallGrid setLargeGridaddPlayerToConfignewGame$fFromJSONConfiguration$fToJSONConfiguration$fFromJSONHalmaPlayers$fToJSONHalmaPlayers$fEqHalmaPlayers$fShowHalmaPlayers$fFunctorHalmaPlayers$fFoldableHalmaPlayers$fTraversableHalmaPlayers$fEqConfiguration$fShowConfiguration$fFunctorConfiguration$fFoldableConfiguration$fTraversableConfiguration RuleOptionsmovingBackwardsinvadingMoveRestrictionAllowed Temporarily Forbidden possibleMoves hasFinished$fDefaultRuleOptions$fFromJSONRuleOptions$fToJSONRuleOptions$fFromJSONMoveRestriction$fToJSONMoveRestriction$fShowMoveRestriction$fEqMoveRestriction$fShowRuleOptions$fEqRuleOptionsRatingWinInLossInoutcomerateTeam allOwnPieces allLegalMoves$fBoundedRating $fOrdRating $fShowRating $fEqRatingaiMovegetDirs neighbour' getPlayers filterForwardfilterNonInvadingpossibleStepMovespossibleJumpMoves PerspectiveprunedMinMaxSearch flipPersprateisWin flipRating pushRatingignorantFixedDepthbeingSomewhatGreedy