Esempio n. 1
0
 private void MovePawnTo(int coords)
 {
     _nextMove.To = coords;
     if (_nextMove.Equals(_game.GameHistory.PeekLastMove(_color, true).Inverse()))
     {
         _humanPlayerViewModel.Message = $"{_color.ToString().ToUpper()}'S TURN: YOU CANNOT REVERSE YOUR LAST MOVE!";
     }
     else
     {
         _humanPlayerViewModel.EndInteraction();
         _timer.Stop();
         _nextMove.Time = _timer.ElapsedMilliseconds;
         MoveChosenEvent?.Invoke(this, _nextMove);
     }
 }
Esempio n. 2
0
        public void Move(Game game)
        {
            _nextMove = new Move(_color);

            // CHECK WHETHER PLAYER CAN MOVE
            if (game.GetPawnsInHand(_color) <= 0 && game.GameBoard.GetAvaiableMoves(_color, _game.GameHistory.PeekLastMove(_color, true), game.GameBoard.GetFieldsCount(_color) < 4).Length == 0)
            {
                MoveChosenEvent?.Invoke(this, _nextMove);
            }

            // AWAIT MOVE
            else
            {
                _game = game;
                _humanPlayerViewModel.BeginInteraction($"{_color.ToString().ToUpper()}'S TURN", FieldChosen);
                _timer = Stopwatch.StartNew();
            }
        }