Exemple #1
0
 public TileMover(LegalMovesCalculator legalMovesCalculator, MovementDeltaCalculator movementDeltaCalculator,
                  MisplacedTilesCounter misplacedTilesCounter)
 {
     this.legalMovesCalculator    = legalMovesCalculator;
     this.movementDeltaCalculator = movementDeltaCalculator;
     this.misplacedTilesCounter   = misplacedTilesCounter;
 }
Exemple #2
0
 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;
 }
Exemple #3
0
        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();
        }