Exemplo n.º 1
0
 public void MakeMove(DekShape From, DekShape To, bool calcScore = false)
 {
     if (MoveCount != Moves.Count)
     {
         int n = Moves.Count;
         for (int i = MoveCount; i < n; i++)
         {
             Moves.RemoveAt(Moves.Count - 1);
         }
     }
     List<CardShape> cards = new List<CardShape>();
     while (From.Count > 0)
     {
         if (calcScore)
             Score++;
         var card = From.TopCardShape;
         From.Remove(card);
         To.Add(card);
         cards.Add(card);
     }
     Moves.Add(new GameState(From, To, cards, MoveCount));
 }