public TileMover(LegalMovesCalculator legalMovesCalculator, MovementDeltaCalculator movementDeltaCalculator, MisplacedTilesCounter misplacedTilesCounter) { this.legalMovesCalculator = legalMovesCalculator; this.movementDeltaCalculator = movementDeltaCalculator; this.misplacedTilesCounter = misplacedTilesCounter; }
public ActionReader(string newGameSymbol, string endGameSymbol, MovementDisplayNamesResolver movementDisplayNamesResolver, LegalMovesCalculator legalMovesCalculator, IO.IO io) { this.newGameSymbol = newGameSymbol; this.endGameSymbol = endGameSymbol; this.movementDisplayNamesResolver = movementDisplayNamesResolver; this.legalMovesCalculator = legalMovesCalculator; this.io = io; }
private void Validate(int blankIndex, List <Movement> expectedLegalMovements) { AccessibleBoard board = new AccessibleBoard { AccessibleSize = 3, AccessibleBlankIndex = blankIndex }; LegalMovesCalculator legalMovesCalculator = new LegalMovesCalculator(); List <Movement> legalMovements = legalMovesCalculator.GetLegalMoves(board); bool areEquivalent = (expectedLegalMovements.Count == legalMovements.Count) && !expectedLegalMovements.Except(legalMovements).Any(); Assert.True(areEquivalent); }
public override void Load() { Bind <IO.IO>().To <ConsoleIO>().InSingletonScope(); Bind <BoardRenderer>().ToSelf().InSingletonScope(); Bind <MagicSquare>().ToSelf().InSingletonScope(); Bind <BoardSizeReadingBoardFactory>().ToSelf().InSingletonScope(); Bind <ActionReader>().ToMethod(ctx => { MovementDisplayNamesResolver movementDisplayNamesResolver = ctx.Kernel.Get <MovementDisplayNamesResolver>(); LegalMovesCalculator legalMovesCalculator = ctx.Kernel.Get <LegalMovesCalculator>(); IO.IO io = ctx.Kernel.Get <IO.IO>(); return(new ActionReader(newGameSymbol, endGameSymbol, movementDisplayNamesResolver, legalMovesCalculator, io)); }).InSingletonScope(); Bind <ActionApplier>().ToMethod(ctx => { TileMover tileMover = ctx.Kernel.Get <TileMover>(); MovementDisplayNamesResolver movementDisplayNamesResolver = ctx.Kernel.Get <MovementDisplayNamesResolver>(); IO.IO io = ctx.Kernel.Get <IO.IO>(); return(new ActionApplier(newGameSymbol, endGameSymbol, tileMover, movementDisplayNamesResolver, io)); }).InSingletonScope(); }