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(); } }
public void Start(ChessSettings settings) { _settings = settings; //if(_settings.SecondLimited < 1) //{ // timer.Visibility = Visibility.Hidden; //} GameReady?.Invoke(); }
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; }
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; }
public void Start(ChessSettings settings) { _settings = settings; }