bishbosh 0.0.0.3 → 0.0.0.4
raw patch · 15 files changed
+47/−47 lines, 15 filesPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
API changes (from Hackage documentation)
- BishBosh.Attribute.WeightedMeanAndCriterionValues: instance (GHC.Classes.Eq criterionValue, GHC.Classes.Eq weightedMean) => GHC.Classes.Eq (BishBosh.Attribute.WeightedMeanAndCriterionValues.WeightedMeanAndCriterionValues weightedMean criterionValue)
- BishBosh.Attribute.WeightedMeanAndCriterionValues: instance (GHC.Show.Show criterionValue, GHC.Show.Show weightedMean) => GHC.Show.Show (BishBosh.Attribute.WeightedMeanAndCriterionValues.WeightedMeanAndCriterionValues weightedMean criterionValue)
- BishBosh.Cartesian.Coordinates: instance (GHC.Classes.Eq y, GHC.Classes.Eq x) => GHC.Classes.Eq (BishBosh.Cartesian.Coordinates.Coordinates x y)
- BishBosh.Component.PieceSquareArray: instance (GHC.Classes.Eq pieceSquareValue, GHC.Classes.Ord y, GHC.Classes.Ord x, GHC.Enum.Enum y, GHC.Enum.Enum x) => GHC.Classes.Eq (BishBosh.Component.PieceSquareArray.PieceSquareArray x y pieceSquareValue)
- BishBosh.Component.PieceSquareArray: instance (GHC.Show.Show pieceSquareValue, GHC.Show.Show y, GHC.Show.Show x, GHC.Classes.Ord y, GHC.Classes.Ord x, GHC.Enum.Enum y, GHC.Enum.Enum x) => GHC.Show.Show (BishBosh.Component.PieceSquareArray.PieceSquareArray x y pieceSquareValue)
- BishBosh.Component.QualifiedMove: instance (GHC.Classes.Eq y, GHC.Classes.Eq x) => GHC.Classes.Eq (BishBosh.Component.QualifiedMove.QualifiedMove x y)
- BishBosh.Component.Zobrist: instance (GHC.Arr.Ix x, GHC.Show.Show y, GHC.Show.Show x, GHC.Show.Show positionHash, GHC.Classes.Ord y, GHC.Enum.Enum y, GHC.Enum.Enum x) => GHC.Show.Show (BishBosh.Component.Zobrist.Zobrist x y positionHash)
- BishBosh.ContextualNotation.PGN: instance (GHC.Classes.Ord y, GHC.Classes.Ord x, GHC.Enum.Enum y, GHC.Enum.Enum x) => GHC.Classes.Eq (BishBosh.ContextualNotation.PGN.PGN x y)
- BishBosh.ContextualNotation.QualifiedMoveForest: instance (GHC.Show.Show y, GHC.Show.Show x) => GHC.Show.Show (BishBosh.ContextualNotation.QualifiedMoveForest.QualifiedMoveForest x y)
- BishBosh.ContextualNotation.StandardAlgebraic: instance (GHC.Show.Show y, GHC.Show.Show x) => GHC.Show.Show (BishBosh.ContextualNotation.StandardAlgebraic.StandardAlgebraic x y)
- BishBosh.Data.Exception: instance GHC.Exception.Exception BishBosh.Data.Exception.Exception
- BishBosh.Evaluation.PositionHashQuantifiedGameTree: instance (GHC.Classes.Eq criterionValue, GHC.Classes.Eq weightedMean, GHC.Classes.Eq positionHash, GHC.Enum.Enum x, GHC.Enum.Enum y, GHC.Classes.Ord x, GHC.Classes.Ord y) => GHC.Classes.Eq (BishBosh.Evaluation.PositionHashQuantifiedGameTree.NodeLabel x y positionHash criterionValue weightedMean)
- BishBosh.Evaluation.PositionHashQuantifiedGameTree: instance (GHC.Classes.Eq positionHash, GHC.Classes.Eq weightedMean, GHC.Classes.Eq criterionValue, GHC.Classes.Ord y, GHC.Classes.Ord x, GHC.Enum.Enum y, GHC.Enum.Enum x) => GHC.Classes.Eq (BishBosh.Evaluation.PositionHashQuantifiedGameTree.PositionHashQuantifiedGameTree x y positionHash criterionValue weightedMean)
- BishBosh.Evaluation.PositionHashQuantifiedGameTree: instance (GHC.Enum.Enum x, GHC.Enum.Enum y, GHC.Classes.Ord x, GHC.Classes.Ord y, GHC.Show.Show x, GHC.Show.Show y, GHC.Show.Show criterionValue, GHC.Show.Show weightedMean, GHC.Show.Show positionHash) => GHC.Show.Show (BishBosh.Evaluation.PositionHashQuantifiedGameTree.NodeLabel x y positionHash criterionValue weightedMean)
- BishBosh.Evaluation.QuantifiedGame: instance (GHC.Classes.Eq weightedMean, GHC.Classes.Eq criterionValue, GHC.Classes.Ord y, GHC.Classes.Ord x, GHC.Enum.Enum y, GHC.Enum.Enum x) => GHC.Classes.Eq (BishBosh.Evaluation.QuantifiedGame.QuantifiedGame x y criterionValue weightedMean)
- BishBosh.Evaluation.QuantifiedGame: instance (GHC.Show.Show weightedMean, GHC.Show.Show criterionValue, GHC.Show.Show y, GHC.Show.Show x, GHC.Classes.Ord y, GHC.Classes.Ord x, GHC.Enum.Enum y, GHC.Enum.Enum x) => GHC.Show.Show (BishBosh.Evaluation.QuantifiedGame.QuantifiedGame x y criterionValue weightedMean)
- BishBosh.Input.EvaluationOptions: instance (GHC.Classes.Eq pieceSquareValue, GHC.Classes.Eq criterionWeight, GHC.Classes.Eq rankValue, GHC.Enum.Enum x, GHC.Enum.Enum y, GHC.Classes.Ord x, GHC.Classes.Ord y) => GHC.Classes.Eq (BishBosh.Input.EvaluationOptions.EvaluationOptions criterionWeight pieceSquareValue rankValue x y)
- BishBosh.Input.EvaluationOptions: instance (GHC.Enum.Enum x, GHC.Enum.Enum y, GHC.Classes.Ord x, GHC.Classes.Ord y, GHC.Show.Show x, GHC.Show.Show y, GHC.Show.Show pieceSquareValue, GHC.Show.Show criterionWeight, GHC.Show.Show rankValue) => GHC.Show.Show (BishBosh.Input.EvaluationOptions.EvaluationOptions criterionWeight pieceSquareValue rankValue x y)
- BishBosh.Input.IOOptions: instance (GHC.Classes.Eq column, GHC.Classes.Eq row) => GHC.Classes.Eq (BishBosh.Input.IOOptions.IOOptions row column)
- BishBosh.Input.NativeUIOptions: instance (GHC.Classes.Eq column, GHC.Classes.Eq row) => GHC.Classes.Eq (BishBosh.Input.NativeUIOptions.NativeUIOptions row column)
- BishBosh.Input.Options: instance (GHC.Classes.Eq row, GHC.Classes.Eq column, GHC.Classes.Eq rankValue, GHC.Classes.Eq criterionWeight, GHC.Classes.Eq pieceSquareValue, GHC.Classes.Ord y, GHC.Classes.Ord x, GHC.Enum.Enum y, GHC.Enum.Enum x) => GHC.Classes.Eq (BishBosh.Input.Options.Options column criterionWeight pieceSquareValue rankValue row x y)
- BishBosh.Input.Options: instance (GHC.Show.Show row, GHC.Show.Show column, GHC.Show.Show rankValue, GHC.Show.Show criterionWeight, GHC.Show.Show pieceSquareValue, GHC.Show.Show y, GHC.Show.Show x, GHC.Classes.Ord y, GHC.Classes.Ord x, GHC.Enum.Enum y, GHC.Enum.Enum x) => GHC.Show.Show (BishBosh.Input.Options.Options column criterionWeight pieceSquareValue rankValue row x y)
- BishBosh.Input.PieceSquareTable: instance (GHC.Classes.Eq pieceSquareValue, GHC.Classes.Ord y, GHC.Classes.Ord x, GHC.Enum.Enum y, GHC.Enum.Enum x) => GHC.Classes.Eq (BishBosh.Input.PieceSquareTable.PieceSquareTable x y pieceSquareValue)
- BishBosh.Input.PieceSquareTable: instance (GHC.Show.Show pieceSquareValue, GHC.Show.Show y, GHC.Show.Show x, GHC.Classes.Ord y, GHC.Classes.Ord x, GHC.Enum.Enum y, GHC.Enum.Enum x) => GHC.Show.Show (BishBosh.Input.PieceSquareTable.PieceSquareTable x y pieceSquareValue)
- BishBosh.Model.GameTree: instance (GHC.Show.Show y, GHC.Show.Show x, GHC.Classes.Ord y, GHC.Classes.Ord x, GHC.Enum.Enum y, GHC.Enum.Enum x) => GHC.Show.Show (BishBosh.Model.GameTree.GameTree x y)
- BishBosh.Notation.Coordinate: instance (GHC.Classes.Eq y, GHC.Classes.Eq x) => GHC.Classes.Eq (BishBosh.Notation.Coordinate.Coordinate x y)
- BishBosh.Notation.ICCFNumeric: instance (GHC.Classes.Eq y, GHC.Classes.Eq x) => GHC.Classes.Eq (BishBosh.Notation.ICCFNumeric.ICCFNumeric x y)
- BishBosh.Search.DynamicMoveData: instance (GHC.Classes.Eq y, GHC.Classes.Eq x) => GHC.Classes.Eq (BishBosh.Search.DynamicMoveData.KillerMoveKey x y)
- BishBosh.Search.DynamicMoveData: instance (GHC.Classes.Ord y, GHC.Classes.Ord x) => GHC.Classes.Ord (BishBosh.Search.DynamicMoveData.KillerMoveKey x y)
- BishBosh.Search.DynamicMoveData: instance (GHC.Show.Show y, GHC.Show.Show x) => GHC.Show.Show (BishBosh.Search.DynamicMoveData.KillerMoveKey x y)
- BishBosh.State.MaybePieceByCoordinates: instance (GHC.Classes.Ord y, GHC.Classes.Ord x, GHC.Enum.Enum y, GHC.Enum.Enum x) => GHC.Classes.Eq (BishBosh.State.MaybePieceByCoordinates.MaybePieceByCoordinates x y)
- BishBosh.State.MaybePieceByCoordinates: instance (GHC.Classes.Ord y, GHC.Classes.Ord x, GHC.Enum.Enum y, GHC.Enum.Enum x) => GHC.Classes.Ord (BishBosh.State.MaybePieceByCoordinates.MaybePieceByCoordinates x y)
+ BishBosh.Attribute.WeightedMeanAndCriterionValues: instance (GHC.Classes.Eq weightedMean, GHC.Classes.Eq criterionValue) => GHC.Classes.Eq (BishBosh.Attribute.WeightedMeanAndCriterionValues.WeightedMeanAndCriterionValues weightedMean criterionValue)
+ BishBosh.Attribute.WeightedMeanAndCriterionValues: instance (GHC.Show.Show weightedMean, GHC.Show.Show criterionValue) => GHC.Show.Show (BishBosh.Attribute.WeightedMeanAndCriterionValues.WeightedMeanAndCriterionValues weightedMean criterionValue)
+ BishBosh.Cartesian.Coordinates: instance (GHC.Classes.Eq x, GHC.Classes.Eq y) => GHC.Classes.Eq (BishBosh.Cartesian.Coordinates.Coordinates x y)
+ BishBosh.Component.PieceSquareArray: instance (GHC.Enum.Enum x, GHC.Enum.Enum y, GHC.Classes.Ord x, GHC.Classes.Ord y, GHC.Classes.Eq pieceSquareValue) => GHC.Classes.Eq (BishBosh.Component.PieceSquareArray.PieceSquareArray x y pieceSquareValue)
+ BishBosh.Component.PieceSquareArray: instance (GHC.Enum.Enum x, GHC.Enum.Enum y, GHC.Classes.Ord x, GHC.Classes.Ord y, GHC.Show.Show x, GHC.Show.Show y, GHC.Show.Show pieceSquareValue) => GHC.Show.Show (BishBosh.Component.PieceSquareArray.PieceSquareArray x y pieceSquareValue)
+ BishBosh.Component.QualifiedMove: instance (GHC.Classes.Eq x, GHC.Classes.Eq y) => GHC.Classes.Eq (BishBosh.Component.QualifiedMove.QualifiedMove x y)
+ BishBosh.Component.Zobrist: instance (GHC.Enum.Enum x, GHC.Enum.Enum y, GHC.Classes.Ord y, GHC.Show.Show positionHash, GHC.Show.Show x, GHC.Show.Show y, GHC.Arr.Ix x) => GHC.Show.Show (BishBosh.Component.Zobrist.Zobrist x y positionHash)
+ BishBosh.ContextualNotation.PGN: instance (GHC.Enum.Enum x, GHC.Enum.Enum y, GHC.Classes.Ord x, GHC.Classes.Ord y) => GHC.Classes.Eq (BishBosh.ContextualNotation.PGN.PGN x y)
+ BishBosh.ContextualNotation.QualifiedMoveForest: instance (GHC.Show.Show x, GHC.Show.Show y) => GHC.Show.Show (BishBosh.ContextualNotation.QualifiedMoveForest.QualifiedMoveForest x y)
+ BishBosh.ContextualNotation.StandardAlgebraic: instance (GHC.Show.Show x, GHC.Show.Show y) => GHC.Show.Show (BishBosh.ContextualNotation.StandardAlgebraic.StandardAlgebraic x y)
+ BishBosh.Data.Exception: instance GHC.Exception.Type.Exception BishBosh.Data.Exception.Exception
+ BishBosh.Evaluation.PositionHashQuantifiedGameTree: instance (GHC.Enum.Enum x, GHC.Enum.Enum y, GHC.Classes.Ord x, GHC.Classes.Ord y, GHC.Classes.Eq positionHash, GHC.Classes.Eq weightedMean, GHC.Classes.Eq criterionValue) => GHC.Classes.Eq (BishBosh.Evaluation.PositionHashQuantifiedGameTree.NodeLabel x y positionHash criterionValue weightedMean)
+ BishBosh.Evaluation.PositionHashQuantifiedGameTree: instance (GHC.Enum.Enum x, GHC.Enum.Enum y, GHC.Classes.Ord x, GHC.Classes.Ord y, GHC.Classes.Eq positionHash, GHC.Classes.Eq weightedMean, GHC.Classes.Eq criterionValue) => GHC.Classes.Eq (BishBosh.Evaluation.PositionHashQuantifiedGameTree.PositionHashQuantifiedGameTree x y positionHash criterionValue weightedMean)
+ BishBosh.Evaluation.PositionHashQuantifiedGameTree: instance (GHC.Enum.Enum x, GHC.Enum.Enum y, GHC.Classes.Ord x, GHC.Classes.Ord y, GHC.Show.Show positionHash, GHC.Show.Show x, GHC.Show.Show y, GHC.Show.Show weightedMean, GHC.Show.Show criterionValue) => GHC.Show.Show (BishBosh.Evaluation.PositionHashQuantifiedGameTree.NodeLabel x y positionHash criterionValue weightedMean)
+ BishBosh.Evaluation.QuantifiedGame: instance (GHC.Enum.Enum x, GHC.Enum.Enum y, GHC.Classes.Ord x, GHC.Classes.Ord y, GHC.Classes.Eq weightedMean, GHC.Classes.Eq criterionValue) => GHC.Classes.Eq (BishBosh.Evaluation.QuantifiedGame.QuantifiedGame x y criterionValue weightedMean)
+ BishBosh.Evaluation.QuantifiedGame: instance (GHC.Enum.Enum x, GHC.Enum.Enum y, GHC.Classes.Ord x, GHC.Classes.Ord y, GHC.Show.Show x, GHC.Show.Show y, GHC.Show.Show weightedMean, GHC.Show.Show criterionValue) => GHC.Show.Show (BishBosh.Evaluation.QuantifiedGame.QuantifiedGame x y criterionValue weightedMean)
+ BishBosh.Input.EvaluationOptions: instance (GHC.Enum.Enum x, GHC.Enum.Enum y, GHC.Classes.Ord x, GHC.Classes.Ord y, GHC.Classes.Eq rankValue, GHC.Classes.Eq criterionWeight, GHC.Classes.Eq pieceSquareValue) => GHC.Classes.Eq (BishBosh.Input.EvaluationOptions.EvaluationOptions criterionWeight pieceSquareValue rankValue x y)
+ BishBosh.Input.EvaluationOptions: instance (GHC.Enum.Enum x, GHC.Enum.Enum y, GHC.Classes.Ord x, GHC.Classes.Ord y, GHC.Show.Show rankValue, GHC.Show.Show criterionWeight, GHC.Show.Show x, GHC.Show.Show y, GHC.Show.Show pieceSquareValue) => GHC.Show.Show (BishBosh.Input.EvaluationOptions.EvaluationOptions criterionWeight pieceSquareValue rankValue x y)
+ BishBosh.Input.IOOptions: instance (GHC.Classes.Eq row, GHC.Classes.Eq column) => GHC.Classes.Eq (BishBosh.Input.IOOptions.IOOptions row column)
+ BishBosh.Input.NativeUIOptions: instance (GHC.Classes.Eq row, GHC.Classes.Eq column) => GHC.Classes.Eq (BishBosh.Input.NativeUIOptions.NativeUIOptions row column)
+ BishBosh.Input.Options: instance (GHC.Enum.Enum x, GHC.Enum.Enum y, GHC.Classes.Ord x, GHC.Classes.Ord y, GHC.Classes.Eq rankValue, GHC.Classes.Eq criterionWeight, GHC.Classes.Eq pieceSquareValue, GHC.Classes.Eq row, GHC.Classes.Eq column) => GHC.Classes.Eq (BishBosh.Input.Options.Options column criterionWeight pieceSquareValue rankValue row x y)
+ BishBosh.Input.Options: instance (GHC.Enum.Enum x, GHC.Enum.Enum y, GHC.Classes.Ord x, GHC.Classes.Ord y, GHC.Show.Show rankValue, GHC.Show.Show criterionWeight, GHC.Show.Show x, GHC.Show.Show y, GHC.Show.Show pieceSquareValue, GHC.Show.Show column, GHC.Show.Show row) => GHC.Show.Show (BishBosh.Input.Options.Options column criterionWeight pieceSquareValue rankValue row x y)
+ BishBosh.Input.PieceSquareTable: instance (GHC.Enum.Enum x, GHC.Enum.Enum y, GHC.Classes.Ord x, GHC.Classes.Ord y, GHC.Classes.Eq pieceSquareValue) => GHC.Classes.Eq (BishBosh.Input.PieceSquareTable.PieceSquareTable x y pieceSquareValue)
+ BishBosh.Input.PieceSquareTable: instance (GHC.Enum.Enum x, GHC.Enum.Enum y, GHC.Classes.Ord x, GHC.Classes.Ord y, GHC.Show.Show x, GHC.Show.Show y, GHC.Show.Show pieceSquareValue) => GHC.Show.Show (BishBosh.Input.PieceSquareTable.PieceSquareTable x y pieceSquareValue)
+ BishBosh.Model.GameTree: instance (GHC.Enum.Enum x, GHC.Enum.Enum y, GHC.Classes.Ord x, GHC.Classes.Ord y, GHC.Show.Show x, GHC.Show.Show y) => GHC.Show.Show (BishBosh.Model.GameTree.GameTree x y)
+ BishBosh.Notation.Coordinate: instance (GHC.Classes.Eq x, GHC.Classes.Eq y) => GHC.Classes.Eq (BishBosh.Notation.Coordinate.Coordinate x y)
+ BishBosh.Notation.ICCFNumeric: instance (GHC.Classes.Eq x, GHC.Classes.Eq y) => GHC.Classes.Eq (BishBosh.Notation.ICCFNumeric.ICCFNumeric x y)
+ BishBosh.Search.DynamicMoveData: instance (GHC.Classes.Eq x, GHC.Classes.Eq y) => GHC.Classes.Eq (BishBosh.Search.DynamicMoveData.KillerMoveKey x y)
+ BishBosh.Search.DynamicMoveData: instance (GHC.Classes.Ord x, GHC.Classes.Ord y) => GHC.Classes.Ord (BishBosh.Search.DynamicMoveData.KillerMoveKey x y)
+ BishBosh.Search.DynamicMoveData: instance (GHC.Show.Show x, GHC.Show.Show y) => GHC.Show.Show (BishBosh.Search.DynamicMoveData.KillerMoveKey x y)
+ BishBosh.State.MaybePieceByCoordinates: instance (GHC.Enum.Enum x, GHC.Enum.Enum y, GHC.Classes.Ord x, GHC.Classes.Ord y) => GHC.Classes.Eq (BishBosh.State.MaybePieceByCoordinates.MaybePieceByCoordinates x y)
+ BishBosh.State.MaybePieceByCoordinates: instance (GHC.Enum.Enum x, GHC.Enum.Enum y, GHC.Classes.Ord x, GHC.Classes.Ord y) => GHC.Classes.Ord (BishBosh.State.MaybePieceByCoordinates.MaybePieceByCoordinates x y)
- BishBosh.Attribute.MoveType: nPiecesMutator :: Enum nPieces => MoveType -> (nPieces -> nPieces)
+ BishBosh.Attribute.MoveType: nPiecesMutator :: Enum nPieces => MoveType -> nPieces -> nPieces
- BishBosh.Component.PieceSquareArray: type FindPieceSquareValue x y pieceSquareValue = LogicalColour The piece's logical colour. -> Rank The piece's rank. -> Coordinates x y The piece's location. -> pieceSquareValue
+ BishBosh.Component.PieceSquareArray: type FindPieceSquareValue x y pieceSquareValue = LogicalColour " The piece's logical colour." -> Rank " The piece's rank." -> Coordinates x y " The piece's location." -> pieceSquareValue
- BishBosh.Notation.MoveNotation: showNotation :: (ShowNotation a) => MoveNotation -> a -> String
+ BishBosh.Notation.MoveNotation: showNotation :: ShowNotation a => MoveNotation -> a -> String
- BishBosh.UI.Command: RollBack :: (Maybe NMoves) -> Command x y
+ BishBosh.UI.Command: RollBack :: Maybe NMoves -> Command x y
Files
- README.markdown +1/−1
- bishbosh.cabal +8/−8
- bishbosh.spec +4/−4
- changelog.markdown +4/−1
- copyright +2/−2
- man/man1/bishbosh.1 +2/−2
- src-lib/BishBosh/Attribute/MoveType.hs +2/−4
- src-lib/BishBosh/ContextualNotation/StandardAlgebraic.hs +1/−1
- src-lib/BishBosh/Model/Game.hs +14/−14
- src-lib/BishBosh/Model/GameTree.hs +1/−1
- src-lib/BishBosh/State/Board.hs +2/−2
- src-lib/BishBosh/State/EnPassantAbscissa.hs +2/−3
- src-lib/BishBosh/State/MaybePieceByCoordinates.hs +2/−2
- src-test/BishBosh/Test/HUnit/Input/Options.hs +1/−1
- src-test/BishBosh/Test/QuickCheck/Model/GameTree.hs +1/−1
README.markdown view
@@ -21,7 +21,7 @@ ## Bug-reporting -Bug-reports should be emailed to <bishbosh@functionalley.eu>.+Bug-reports should be emailed to <bishbosh@functionalley.com>. ## Testing
bishbosh.cabal view
@@ -14,7 +14,7 @@ -- along with BishBosh. If not, see <http://www.gnu.org/licenses/>. Name: bishbosh-Version: 0.0.0.3+Version: 0.0.0.4 Cabal-version: >= 1.10 Copyright: (C) 2018 Dr. Alistair Ward License: GPL@@ -25,10 +25,10 @@ Build-type: Simple Description: A chess-game which can be rendered in a terminal (emulator) in raw ASCII, or used as an engine by xboard. Category: Game-Tested-with: GHC == 8.0, GHC == 8.2, GHC == 8.4-Homepage: https://functionalley.eu/BishBosh/bishbosh.html-Maintainer: mailto:bishbosh@functionalley.eu-Bug-reports: mailto:bishbosh@functionalley.eu+Tested-with: GHC == 8.0, GHC == 8.2, GHC == 8.4, GHC == 8.6+Homepage: https://functionalley.com/BishBosh/bishbosh.html+Maintainer: mailto:bishbosh@functionalley.com+Bug-reports: mailto:bishbosh@functionalley.com -- Files which can be located by the application using 'Paths_bishbosh.datadir'. Data-files:@@ -217,7 +217,7 @@ GHC-prof-options: -fprof-auto -fprof-cafs if impl(ghc >= 8.0)- GHC-options: -j -Wredundant-constraints+ GHC-options: -Wredundant-constraints else GHC-prof-options: -auto-all -caf-all @@ -283,7 +283,7 @@ GHC-prof-options: -fprof-auto -fprof-cafs -rtsopts -with-rtsopts=-H100M if impl(ghc >= 8.0)- GHC-options: -j -Wredundant-constraints+ GHC-options: -Wredundant-constraints else GHC-prof-options: -auto-all -caf-all @@ -417,7 +417,7 @@ GHC-prof-options: -fprof-auto -fprof-cafs -rtsopts -with-rtsopts=-H100M if impl(ghc >= 8.0)- GHC-options: -j -Wredundant-constraints+ GHC-options: -Wredundant-constraints else GHC-prof-options: -auto-all -caf-all
bishbosh.spec view
@@ -24,13 +24,13 @@ Summary: BishBosh is a chess-game. Name: bishbosh-Version: 0.0.0.3+Version: 0.0.0.4 Release: 1 License: GPLv3 # From '/usr/share/doc/packages/rpm/GROUPS'. Group: Amusements/Games-# Source0: https://functionalley.eu/Downloads/sdist/%tarBall-URL: https://functionalley.eu/BishBosh/%name.html+# Source0: https://functionalley.com/Downloads/sdist/%tarBall+URL: https://functionalley.com/BishBosh/%name.html Prefix: /usr BuildRequires: haskell-platform @@ -72,6 +72,6 @@ %attr(0644, root, root) %doc %_mandir/man5/%name.5.gz %changelog-* Thu Jul 04 2013 Alistair Ward <bishbosh@functionalley.eu> 0.0.0.1-1+* Thu Jul 04 2013 Alistair Ward <bishbosh@functionalley.com> 0.0.0.1-1 First cut.
changelog.markdown view
@@ -1,4 +1,4 @@-# 2018-01-01 Dr. Alistair Ward <bishbosh@functionalley.eu>+# 2018-01-01 Dr. Alistair Ward <bishbosh@functionalley.com> ## 0.0.0.1 * First version of the package.@@ -8,3 +8,6 @@ ## 0.0.0.3 Added **Paths_bishbosh** to **Other-modules** section of cabal file.++## 0.0.0.4+Changed references to author's domain-name.
copyright view
@@ -1,11 +1,11 @@ Author:- Dr. Alistair Ward <bishbosh@functionalley.eu>.+ Dr. Alistair Ward <bishbosh@functionalley.com>. Copyright: Copyright (C) 2018 Dr. Alistair Ward. All Rights Reserved. Home-page:- https://functionalley.eu/BishBosh/bishbosh.html+ https://functionalley.com/BishBosh/bishbosh.html License: GNU GENERAL PUBLIC LICENSE Version 3; see '/usr/share/common-licenses/GPL-3' or '/usr/share/doc/licenses/gpl-3.0.txt' where available, or the local packaged file 'LICENSE'.
man/man1/bishbosh.1 view
@@ -164,7 +164,7 @@ .IP \(bu Performance is uncompetitive with imperative implementions of similar algorithms. .SS "REPORTING BUGS"-Report bugs to "\fBbishbosh@functionalley.eu\fR".+Report bugs to "\fBbishbosh@functionalley.com\fR". .SH COPYRIGHT Copyright \(co 2018 Dr. Alistair Ward .PP@@ -175,7 +175,7 @@ You should have received a copy of the GNU General Public License along with this program. If not, see \fBhttps://www.gnu.org/licenses/\fR . .SH "SEE ALSO" .IP \(bu-Home-page: \fBhttps://functionalley.eu/BishBosh/bishbosh.html\fR+Home-page: \fBhttps://functionalley.com/BishBosh/bishbosh.html\fR .IP \(bu .B https://hackage.haskell.org/package/bishbosh .IP \(bu
src-lib/BishBosh/Attribute/MoveType.hs view
@@ -156,7 +156,7 @@ -> Maybe Attribute.Rank.Rank -- ^ The /rank/ to which a @Pawn@ was just promoted. -> Maybe MoveType -- ^ Maybe the required /move-type/. mkMaybeNormalMoveType maybeTakenRank maybePromotionRank- | Data.Maybe.maybe True {-nothing taken-} (/= Attribute.Rank.King) maybeTakenRank+ | maybeTakenRank /= Just Attribute.Rank.King , Data.Maybe.maybe True {-nothing promoted-} ( `elem` Attribute.Rank.promotionProspects ) maybePromotionRank = Just $ Normal maybeTakenRank maybePromotionRank@@ -168,9 +168,7 @@ -> Maybe Attribute.Rank.Rank -- ^ The /rank/ to which a @Pawn@ is to be promoted. -> MoveType mkNormalMoveType maybeTakenRank maybePromotionRank = Control.Exception.assert (- Data.Maybe.maybe True {-nothing taken-} (- /= Attribute.Rank.King- ) maybeTakenRank && Data.Maybe.maybe True {-nothing promoted-} (+ maybeTakenRank /= Just Attribute.Rank.King && Data.Maybe.maybe True {-nothing promoted-} ( `elem` Attribute.Rank.promotionProspects ) maybePromotionRank ) $ Normal maybeTakenRank maybePromotionRank
src-lib/BishBosh/ContextualNotation/StandardAlgebraic.hs view
@@ -473,7 +473,7 @@ Component.QualifiedMove.mkQualifiedMove (Component.Move.mkMove source destination) . Attribute.MoveType.mkNormalMoveType Nothing {-capture-} ) `fmap` Control.Applicative.optional promotionParser ) . Data.List.find (- Data.Maybe.maybe False {-no piece-} (== piece) . getMaybePiece+ (== Just piece) . getMaybePiece ) . Data.Maybe.catMaybes . take 2 {-maximum Pawn-advance-} . tail {-drop the original-} $ iterate ( >>= Cartesian.Coordinates.maybeRetreat nextLogicalColour ) $ Just destination
src-lib/BishBosh/Model/Game.hs view
@@ -494,7 +494,7 @@ getAvailableQualifiedMovesByLogicalColour = Data.Map.fromAscList [ (logicalColour, mkAvailableQualifiedMovesFor logicalColour game) | logicalColour <- Attribute.LogicalColour.range,- Data.Maybe.maybe True (/= logicalColour) $ getMaybeChecked game -- Define the available qualified moves for unchecked players only.+ getMaybeChecked game /= Just logicalColour -- Define the available qualified moves for unchecked players only. ], -- List-comprehension. getMaybeTerminationReason = inferMaybeTerminationReason game }@@ -677,7 +677,7 @@ (pawnCoordinates, oppositePiece) | let oppositePiece = Component.Piece.mkPiece opponentsLogicalColour sourceRank, pawnCoordinates <- Cartesian.Coordinates.getAdjacents destination,- Data.Maybe.maybe False (== oppositePiece) . State.MaybePieceByCoordinates.dereference pawnCoordinates $ State.Board.getMaybePieceByCoordinates board -- Find any opposing Pawn which can capture En-passant.+ State.MaybePieceByCoordinates.dereference pawnCoordinates (State.Board.getMaybePieceByCoordinates board) == Just oppositePiece -- Find any opposing Pawn which can capture En-passant. ] {-list-comprehension-} else id ) $ kingsByCoordinates {-moves available to either King may be constrained or liberated, even if misaligned with move-endpoints-} ++ [@@ -704,9 +704,9 @@ (blockingCoordinates, blockingPiece) <- Data.Maybe.maybeToList $ ( \pair@(coordinates, _) -> if coordinates /= destination then Just pair- else {-blocker is destination-} if Data.Maybe.maybe False (== direction) $ Cartesian.Vector.toMaybeDirection (+ else {-blocker is destination-} if Cartesian.Vector.toMaybeDirection ( Cartesian.Vector.measureDistance kingsCoordinates source :: Cartesian.Vector.VectorInt- )+ ) == Just direction then Nothing else findBlockingPieceFrom coordinates -- Look through the destination to the previous blocker; which might be the source. ) =<< findBlockingPieceFrom kingsCoordinates@@ -731,7 +731,7 @@ destination' <- Component.Piece.findAttackDestinations source' piece', State.MaybePieceByCoordinates.isVacant destination' maybePieceByCoordinates', uncurry (&&) . (- Data.Maybe.maybe False {-unoccupied-} (== Property.Opposable.getOpposite piece') . (+ (== Just (Property.Opposable.getOpposite piece')) . ( `State.MaybePieceByCoordinates.dereference` maybePieceByCoordinates' ) &&& (== move) . Component.Move.mkMove (Cartesian.Coordinates.advance logicalColour destination') ) $ Cartesian.Coordinates.retreat logicalColour destination', -- Did an opposing Pawn just double-advance to the expected position ?@@ -742,7 +742,7 @@ Attribute.MoveType.mkNormalMoveType maybeTakenRank maybePromotionRank ) | (destination', maybeTakenRank) <- State.MaybePieceByCoordinates.listDestinationsFor source' piece' maybePieceByCoordinates',- Data.Maybe.maybe True {-unoccupied-} (/= Attribute.Rank.King) maybeTakenRank, -- This move can never be made; the option will either be immediately removed or check-mate declared.+ maybeTakenRank /= Just Attribute.Rank.King, -- This move can never be made; the option will either be immediately removed or check-mate declared. isSafeDestination destination', maybePromotionRank <- listMaybePromotionRanks destination' piece' ] {-list-comprehension-} of@@ -927,7 +927,7 @@ State.MaybePieceByCoordinates.isOccupied destination maybePieceByCoordinates, showString "taking a '" $ shows opponentsPawn "' en-passant, requires a move to a vacant square" ), (- Data.Maybe.maybe True {-unoccupied-} (/= opponentsPawn) $ State.MaybePieceByCoordinates.dereference opponentsCoordinates maybePieceByCoordinates,+ State.MaybePieceByCoordinates.dereference opponentsCoordinates maybePieceByCoordinates /= Just opponentsPawn, shows "en-passant" . showString " requires a '" $ shows opponentsPawn "' to be taken" ), ( Data.Maybe.maybe True {-zero previous turns-} (@@ -1032,7 +1032,7 @@ ] -- List-comprehension. ) ++ [ (- Data.Maybe.maybe False {-not in check-} (== sourceLogicalColour) maybeChecked,+ maybeChecked == Just sourceLogicalColour, "it can't castle out of check" ), ( any (@@ -1046,7 +1046,7 @@ if Component.Piece.isKing sourcePiece then showString "it" else showString "your '" . shows (Component.Piece.mkKing sourceLogicalColour) . showChar '\''- ) $ if Data.Maybe.maybe False (== sourceLogicalColour) maybeChecked+ ) $ if maybeChecked == Just sourceLogicalColour then ( State.Board.isKingChecked sourceLogicalColour $ State.Board.movePiece move (Just moveType) board, -- CAVEAT: don't perform an unvalidated move at the Game-level. " remains checked"@@ -1193,7 +1193,7 @@ getAvailableQualifiedMovesByLogicalColour = Data.Map.fromAscList [ (logicalColour, mkAvailableQualifiedMovesFor logicalColour game') | logicalColour <- Attribute.LogicalColour.range,- Data.Maybe.maybe True (/= logicalColour) maybeChecked'+ maybeChecked' /= Just logicalColour ], -- List-comprehension. getMaybeTerminationReason = Nothing }@@ -1222,7 +1222,7 @@ getBoard = board, getMaybeChecked = maybeChecked }- | Data.Maybe.maybe False (== logicalColour) maybeChecked = let+ | maybeChecked == Just logicalColour = let kingsCoordinates = State.CoordinatesByRankByLogicalColour.getKingsCoordinates logicalColour coordinatesByRankByLogicalColour in [ Component.QualifiedMove.mkQualifiedMove move moveType |@@ -1245,7 +1245,7 @@ ) Attribute.MoveType.enPassant | Component.Move.isPawnDoubleAdvance opponentsLogicalColour lastMove, source <- Cartesian.Coordinates.getAdjacents lastDestination,- Data.Maybe.maybe False {-unoccupied-} (== pawn) $ State.MaybePieceByCoordinates.dereference source maybePieceByCoordinates+ State.MaybePieceByCoordinates.dereference source maybePieceByCoordinates == Just pawn ] -- List-comprehension. ) . Component.QualifiedMove.getMove . Component.Turn.getQualifiedMove ) $ maybeLastTurn game -- The King is checked by a Pawn, which must also have been the last piece to move.@@ -1283,7 +1283,7 @@ destination <- Component.Piece.findAttackDestinations source pawn, State.MaybePieceByCoordinates.isVacant destination maybePieceByCoordinates, let opponentsCoordinates = Cartesian.Coordinates.retreat logicalColour destination,- Data.Maybe.maybe False {-unoccupied-} (== Property.Opposable.getOpposite pawn) $ State.MaybePieceByCoordinates.dereference opponentsCoordinates maybePieceByCoordinates,+ State.MaybePieceByCoordinates.dereference opponentsCoordinates maybePieceByCoordinates == Just (Property.Opposable.getOpposite pawn), Data.Maybe.maybe False {-zero previous turns-} ( uncurry (&&) . ( (== opponentsCoordinates) . Component.Move.getDestination &&& (@@ -1297,7 +1297,7 @@ ) $ Attribute.MoveType.mkNormalMoveType maybeTakenRank maybePromotionRank | (source, piece) <- State.CoordinatesByRankByLogicalColour.findPiecesOfColour logicalColour coordinatesByRankByLogicalColour, (destination, maybeTakenRank) <- State.MaybePieceByCoordinates.listDestinationsFor source piece maybePieceByCoordinates,- Data.Maybe.maybe True {-unoccupied-} (/= Attribute.Rank.King) maybeTakenRank, -- This move can never be made; the option will either be immediately removed or check-mate declared.+ maybeTakenRank /= Just Attribute.Rank.King, -- This move can never be made; the option will either be immediately removed or check-mate declared. maybePromotionRank <- listMaybePromotionRanks destination piece ] -- List-comprehension. )
src-lib/BishBosh/Model/GameTree.hs view
@@ -216,7 +216,7 @@ => GameTree x y -> [Component.Turn.Turn x y] -- ^ The data against which, nodes from the tree should be matched. -> Maybe [Model.Game.Game x y] -- ^ Returns 'Nothing' on match-failure.-traceRoute MkGameTree { deconstruct = bareGameTree } = Data.RoseTree.traceRoute (\turn -> Data.Maybe.maybe False (== turn) . Model.Game.maybeLastTurn) bareGameTree+traceRoute MkGameTree { deconstruct = bareGameTree } = Data.RoseTree.traceRoute (\turn -> (== Just turn) . Model.Game.maybeLastTurn) bareGameTree -- | Focus the underlying type. type MoveFrequency x y = Model.MoveFrequency.MoveFrequency (Component.Move.Move x y)
src-lib/BishBosh/State/Board.hs view
@@ -425,11 +425,11 @@ ) maybePromotionRank, getNPawnsByFileByLogicalColour = if Component.Piece.isPawn sourcePiece && ( Cartesian.Coordinates.getX source /= Cartesian.Coordinates.getX destination {-includes En-passant-} || Attribute.MoveType.isPromotion moveType- ) || Data.Maybe.maybe False (== Attribute.Rank.Pawn) (Attribute.MoveType.getMaybeExplicitlyTakenRank moveType)+ ) || Attribute.MoveType.getMaybeExplicitlyTakenRank moveType == Just Attribute.Rank.Pawn then State.CoordinatesByRankByLogicalColour.countPawnsByFileByLogicalColour coordinatesByRankByLogicalColour' else getNPawnsByFileByLogicalColour board, getNPieces = Attribute.MoveType.nPiecesMutator moveType nPieces,- getPassedPawnCoordinatesByLogicalColour = if Component.Piece.isPawn sourcePiece {-includes En-passant & promotion-} || Data.Maybe.maybe False (== Attribute.Rank.Pawn) (Attribute.MoveType.getMaybeExplicitlyTakenRank moveType)+ getPassedPawnCoordinatesByLogicalColour = if Component.Piece.isPawn sourcePiece {-includes En-passant & promotion-} || Attribute.MoveType.getMaybeExplicitlyTakenRank moveType == Just Attribute.Rank.Pawn then State.CoordinatesByRankByLogicalColour.findPassedPawnCoordinatesByLogicalColour coordinatesByRankByLogicalColour' else getPassedPawnCoordinatesByLogicalColour board }
src-lib/BishBosh/State/EnPassantAbscissa.hs view
@@ -43,7 +43,6 @@ import qualified BishBosh.State.MaybePieceByCoordinates as State.MaybePieceByCoordinates import qualified Control.DeepSeq import qualified Data.Array.IArray-import qualified Data.Maybe -- | Defines the file on which an En-passant option currently exists. newtype EnPassantAbscissa x = MkEnPassantAbscissa {@@ -71,8 +70,8 @@ | Component.Turn.isPawnDoubleAdvance (Property.Opposable.getOpposite nextLogicalColour) lastTurn , let destination = Component.Move.getDestination . Component.QualifiedMove.getMove $ Component.Turn.getQualifiedMove lastTurn , any (- Data.Maybe.maybe False {-unoccupied-} (- == Component.Piece.mkPawn nextLogicalColour+ (+ == Just (Component.Piece.mkPawn nextLogicalColour) ) . ( `State.MaybePieceByCoordinates.dereference` maybePieceByCoordinates )
src-lib/BishBosh/State/MaybePieceByCoordinates.hs view
@@ -365,7 +365,7 @@ -> [(Cartesian.Coordinates.Coordinates x y, Maybe Attribute.Rank.Rank)] -- ^ The destination & the rank of any piece taken. {-# SPECIALISE listDestinationsFor :: Cartesian.Coordinates.Coordinates T.X T.Y -> Component.Piece.Piece -> MaybePieceByCoordinates T.X T.Y -> [(Cartesian.Coordinates.Coordinates T.X T.Y, Maybe Attribute.Rank.Rank)] #-} listDestinationsFor source piece maybePieceByCoordinates@MkMaybePieceByCoordinates { deconstruct = byCoordinates } = Control.Exception.assert (- Data.Maybe.maybe False (== piece) $ byCoordinates ! source+ byCoordinates ! source == Just piece ) $ if Component.Piece.getRank piece `elem` Attribute.Rank.fixedAttackRange then {-P,N,K-} let findDestinations predicate = [@@ -555,7 +555,7 @@ -> MaybePieceByCoordinates x y -> [Cartesian.Coordinates.Coordinates x y] findProximateKnights logicalColour destination MkMaybePieceByCoordinates { deconstruct = byCoordinates } = filter (- Data.Maybe.maybe False (== knight) . (byCoordinates !)+ (== Just knight) . (byCoordinates !) ) $ Component.Piece.findAttackDestinations destination knight where knight = Component.Piece.mkKnight logicalColour
src-test/BishBosh/Test/HUnit/Input/Options.hs view
@@ -81,7 +81,7 @@ \path -> do optionsList <- HXT.runX {-which returns a list-} $ HXT.setTraceLevel maximumTraceLevel >>> HXT.xunpickleDocument HXT.xpickle inputSysConfig path - Data.Maybe.maybe False (== head optionsList) (+ (== Just (head optionsList)) ( (HXT.unpickleDoc HXT.xpickle . HXT.pickleDoc HXT.xpickle) =<< Data.Maybe.listToMaybe ( optionsList :: [ Input.Options.Options T.Y {-column-} T.CriterionWeight T.PieceSquareValue T.RankValue T.X {-row-} T.X T.Y
src-test/BishBosh/Test/QuickCheck/Model/GameTree.hs view
@@ -56,7 +56,7 @@ f :: Test.QuickCheck.Model.Game.Game -> Test.QuickCheck.Property f = Test.QuickCheck.label "GameTree.prop_traceRoute" . ( \turns -> Data.Maybe.maybe False (- Data.Maybe.maybe False (== turns) . mapM Model.Game.maybeLastTurn+ (== Just turns) . mapM Model.Game.maybeLastTurn ) $ Model.GameTree.traceRoute Data.Default.def turns ) . Model.Game.listTurnsChronologically in Test.QuickCheck.quickCheckWithResult Test.QuickCheck.stdArgs { Test.QuickCheck.maxSuccess = 64 } f