public void Register(ChessSettings settings)
        {
            _settings = settings;
            _board    = ViewPresenterManager.ResolveView(typeof(IChessBoardView))
                        as IChessBoardView;
            _main = MainPresenter.Get();

            _board.Start(settings);
            string gameType;

            if (_settings.Type == GameType.Single)
            {
                gameType = "single chess";
            }
            else if (_settings.Type == GameType.AgainstPC)
            {
                gameType = "bot chess";
            }
            else
            {
                gameType = "remote chess";
            }

            _game = GameFactory.GetGame(gameType);

            _game.MoveReceived = (move) => {
                _needMoveWhite = !_needMoveWhite;
                _countMoves++;
                _board.SetChange(move as Tuple <BPosition, BPosition>);
            };

            _game.MessagesReceived = (message) => {
                _main.AddChatMessage(message);
            };

            _game.Settings = settings;
            _game.Open();


            _main.QueryForSetupView((UserControl)_board);

            _board.SetupState(GameState.Initial, true);
            _board.GameReady      = GameStarted;
            _board.StateChanged   = GameStateChanged;
            _board.CancelLastMove = () => {
                return(_game.QueryCancelMove());
            };
            _board.SetText("Начало игры");
            _board.GetMovesFrom = (item) => _game.GetValidMoves(item).Select(x => (BPosition)x).ToList();

            if (_game.HaveChat)
            {
                _main.ShowChat();
            }
            else
            {
                _main.HideChat();
            }
        }
Пример #2
0
        public void Start(ChessSettings settings)
        {
            _settings = settings;

            //if(_settings.SecondLimited < 1)
            //{
            //    timer.Visibility = Visibility.Hidden;
            //}

            GameReady?.Invoke();
        }
Пример #3
0
        private void StartGameAgainstPC( )
        {
            var sets = new ChessSettings();

            sets.IsWhite       = true;
            sets.Type          = GameType.AgainstPC;
            sets.SecondLimited = -1;

            var pres = new ChessBoardPresenter();

            pres.Register(sets);
            _nowProcessing = true;
        }
Пример #4
0
        private void StartSingleGame( )
        {
            // TODO : remote 'chess', set 'game'
            var sets = new ChessSettings();

            sets.IsWhite       = true;
            sets.Type          = GameType.Single;
            sets.SecondLimited = -1;

            var pres = new ChessBoardPresenter();

            pres.Register(sets);
            _nowProcessing = true;
        }
Пример #5
0
 public void Start(ChessSettings settings)
 {
     _settings = settings;
 }