Beispiel #1
0
        public Board(int gridWidth, int gridHeight, IBoardDrawer drawer)
        {
            this.drawer = drawer;

            const int AIPlayer = 0;
            const int humanPlayer = 1 - AIPlayer;

            // Test seeds:
            seed = 1092552428;
            //seed = 2053617222;
            //seed = new Random().Next();

            players[AIPlayer] = new AIPlayer(AIPlayer, this);
            players[humanPlayer] = new HumanPlayer(humanPlayer, this);

            grid = new Grid(gridWidth, gridHeight, seed);

            grid.Move(3, 0);
            grid.Move(3, 1);
            grid.Move(3, 0);
            grid.Move(3, 1);
            grid.Move(3, 0);

            grid.Move(2, 1);
        }
Beispiel #2
0
        static Program()
        {
            var configFactory = new ConfigFactory();
            var cellFactory   = new CellFactory();
            var figureFactory = new FigureFactory();
            var boardFactory  = new BoardFactory(figureFactory, cellFactory);
            var linesFactory  = new LinesFactory();

            Console = new ConcreteConsole();
            var consoleInputProvider = new ConsoleInputProvider(Console);

            var playerRegisterManager = new PlayerRegisterManager(consoleInputProvider, Console);

            PreparationService = new GamePreparationService(configFactory, playerRegisterManager, consoleInputProvider, Console);
            var inputManager = new GameInputProvider(consoleInputProvider, Console);

            PartyFinishedProvider = new PartyFinishProvider(consoleInputProvider);

            GameFactory = new GameFactory(boardFactory, linesFactory, inputManager);

            var figureDrawerFactory  = new FigureDrawerFactory(Console);
            var figureDrawerProvider = new FigureDrawerProvider(figureDrawerFactory);

            BoardDrawer = new BoardDrawer(Console, figureDrawerProvider);
        }
Beispiel #3
0
        public RobotPlayer(IBoardDrawer boardDrawer,
                           IBattleField battleField,
                           IShipPlacer shipPlacer)
        {
            _battleField = battleField;
            _shipPlacer  = shipPlacer;
            _boardDrawer = boardDrawer;

            _exploratoryAttack = new ExploratoryAttack(battleField, shipPlacer);
            _afterHitAttack    = new AfterHitAttack(battleField);

            _currentAttackMode = AttackMode.Exploratory;
        }
Beispiel #4
0
 public HumanPlayer(IBoardDrawer boardDrawer, IBattleField battleField, IShipPlacer shipPlacer)
 {
     _boardDrawer = boardDrawer ?? throw new ArgumentNullException(nameof(boardDrawer));
     _battleField = battleField ?? throw new ArgumentNullException(nameof(battleField));
     _shipPlacer  = shipPlacer ?? throw new ArgumentNullException(nameof(shipPlacer));
 }