示例#1
0
 public Board(IBoardBuilder builder)
 {
     _size    = builder.BoardSize;
     _squares = new ArrayList(_size);
     BuildSquares(builder);
     LinkSquares();
 }
示例#2
0
        private void Start()
        {
            _ui = new UI.Core.UI();
            _forceCalculator = new ForceCalculator();
            _selector        = new Selector3D();
            _pusher          = new Pusher();
            _boardBuilder    = new BoardBuilder();
            _inputHandler    = new MouseInputHandler();

            _board        = _boardBuilder.Build();
            _turnSwitcher = new TurnSwitcher(_board);

            _playerAI = new PlayerAI(
                _inputHandler,
                _board
                );

            InitUIHandler();
            _inputHandler.OnDownEvent       += OnDownEventHandler;
            _inputHandler.OnUpEvent         += OnUpEventHandler;
            _turnSwitcher.MoveCompleteEvent += MoveCompleteEventHandler;
            _board.CheckersIsEmty           += CheckersIsEmtyEventHandler;

            foreach (var checker in _board.CheckersWhite.Concat(_board.CheckersBlack))
            {
                var checker1 = checker;
                checker1.SelectEvent         += () => SelectEventHandler(checker1);
                checker1.BouncingBorderEvent += () => BouncingBorderEventHandler(checker1);
            }

            _ui.SelectYourColourText();
        }
示例#3
0
        public Game(IRules rulesProvider, IBoardBuilder boardBuilder, IGameStatistics gameStatistics)
        {
            _rulesProvider  = rulesProvider;
            _boardBuilder   = boardBuilder;
            _history        = new LinkedList <History>();
            _gameStatistics = gameStatistics;
            UndoMove        = new UndoGameMove(this);
            RedoMove        = new RedoGameMove(this);
            StopMove        = new StopGameMove(this);

            _board = _boardBuilder.Build();
        }
示例#4
0
文件: Board.cs 项目: Corne/VOC
        public Board(IBoardBuilder builder)
        {
            if (builder == null)
                throw new ArgumentNullException(nameof(builder));

            builder.Build();
            Tiles = builder.Tiles;
            Vertices = builder.Vertices;
            Edges = builder.Edges;
            Harbors = builder.Harbors;

            Robber = new Robber(Tiles.Single(t => t.Rawmaterial == MaterialType.Unsourced));
        }
示例#5
0
        public void Start()
        {
//           Создание строителя шахматной доски.
//           Создание доски.
//           Создание объектов для выбора фигур и ячеек.

            _boardBuilder = new BoardBuilder();
            _board        = _boardBuilder.Build();
            _selector     = new Selector();

//          Подписка на события фигур и клеток игрового поля
            SubscribeToCells();
            SubscribeToFigures();

//          Первыми ходят белые
            ActiveFiguresColor = FigureColor.WHITE;
        }
示例#6
0
        private Game GetSubject(IRules rules = default, IBoardBuilder boardBuilder = default, IGameStatistics gameStatistics = default)
        {
            if (rules == default)
            {
                rules = new EnglishDraughtsRules();
            }
            if (boardBuilder == default)
            {
                boardBuilder = new DraughtsBoardBuilder();
            }
            if (gameStatistics == default)
            {
                gameStatistics = new GameStatistics();
            }

            return(new Game(rules, boardBuilder, gameStatistics));
        }
示例#7
0
        //================
        //TODO: re-implement this using Commands or even Reactive approach
        //================
        public MainWindow()
        {
            _rules        = new EnglishDraughtsRules();
            _boardBuilder = new DraughtsBoardBuilder();
            //_boardBuilder = new PresetBoardBuilder();
            _boardScoring   = new TrivialBoardScoring();
            _gameStatistics = new GameStatistics();
            _game           = new Game(_rules, _boardBuilder, _gameStatistics);
            _userPlayer     = this;
            _waitHandler    = new AutoResetEvent(false);

            WalkMoves      = new Dictionary <Figure, WalkGameMove[]>();
            AvailableMoves = new ObservableCollection <MovesModel>();
            Cells          = new ObservableCollection <Cell>();

            InitializeComponent();

            LayoutRoot.DataContext = this;
            ChessBoard.ItemsSource = Cells;
        }
示例#8
0
 public abstract void SetBoardToBuilder(IBoardBuilder <T> boardBuilder);
示例#9
0
 public Controller(View <T> viewToDispayBoard, IBoardBuilder <T> builderToCreateBoard)
 {
     BuilderToCreateBoard = builderToCreateBoard;
     ViewToDispayBoard    = viewToDispayBoard;
 }
示例#10
0
        public void Construct(IBoardBuilder builder)
        {
            var random = new Random();
            var count  = 0;

            switch (_strategy.Name)
            {
            case Strategies.EasyStrategy:
                builder.AddEnemyVisitor(new EnemyEasyVisitor(_score));
                builder.AddDrawTheme(new SimpleGame());
                break;

            case Strategies.MediumStrategy:
                builder.AddEnemyVisitor(new EnemyMediumVisitor(_score));
                builder.AddDrawTheme(new RetroGame());
                break;

            case Strategies.HardStrategy:
                builder.AddEnemyVisitor(new EnemyHardVisitor(_score));
                builder.AddDrawTheme(new AlienGame());
                break;
            }

            for (var column = 0; column < Contracts.GameSizeHeight; column++)
            {
                for (var row = 0; row < Contracts.GameSizeWidth; row = row + 10)
                {
                    var number = random.Next(0, 100);

                    var position = new Block()
                    {
                        From = new Position(row, column),
                        To   = new Position(row + 8, column)
                    };

                    if (number >= _strategy.HardEnemyProbability)
                    {
                        builder.AddHardEnemy(position);
                    }
                    else if (number >= _strategy.MediumEnemyProbability)
                    {
                        builder.AddMediumEnemy(position);
                    }
                    else
                    {
                        builder.AddEasyEnemy(position);
                    }
                    count++;

                    if (count > _strategy.InitialSize + _level)
                    {
                        break;
                    }
                }
                if (count > _strategy.InitialSize + _level)
                {
                    break;
                }
            }

            if (_spaceShipPosition != null)
            {
                builder.AddSpaceShip(4, _spaceShipPosition.X, _spaceShipPosition.Y, _bullets);
            }
            else
            {
                builder.AddSpaceShip(4, 40, 50);
            }
        }
示例#11
0
 public static void ClassInit(TestContext context)
 {
     if (_BOARD_BUILDER == null)
         _BOARD_BUILDER = Board.GetBuilder();
 }
示例#12
0
 public static void ClassCleanup()
 {
     _BOARD_BUILDER = null;
 }
示例#13
0
 private void Start()
 {
     _builder           = new BoardBuilder();
     _currentBoardState = _builder.BuildBoard();
     BuildColumnList();
 }
示例#14
0
 private void BuildSquares(IBoardBuilder builder)
 {
     _squares.AddRange(builder.BuildSquares());
 }
示例#15
0
 public BoardController(View <T> viewToDisplayBoard, IBoardBuilder <T> builderToCreateBoard)
     : base(viewToDisplayBoard, builderToCreateBoard)
 {
     _logger = LogManager.GetCurrentClassLogger();
 }
示例#16
0
        public BoardMoveTest()
        {
            boardBuilder = new BoardBuilder();

            _board = boardBuilder.Build(8, 8, 5);
        }
示例#17
0
        public override void SetBoardToBuilder(IBoardBuilder <T> boardBuilder)
        {
            BuilderToCreateBoard = boardBuilder;

            _logger.Info(LoggerMessage.SET_BOARD_TO_BUILDER);
        }
示例#18
0
 public MonopolyGame(IBoardBuilder builder)
 {
     _board = new Board(builder);
 }
示例#19
0
 public GameBuilder(IBoardBuilder boardBuilder)
 {
     _boardBuilder = boardBuilder;
 }
示例#20
0
 public GameBuilder(IBoardBuilder boardBuilder)
 {
     _boardBuilder = boardBuilder;
 }