Пример #1
0
        private async Task AnimateAllCardsBackToDeck(double duration = Double.MaxValue)
        {
            CountControl.Hide();
            if (duration == Double.MaxValue)
            {
                duration = MainPage.AnimationSpeeds.Medium;
            }

            // flip the cards and then move them for a nice affect

            List <Task <object> > list = new List <Task <object> >();

            GridPlayer.FlipAllCards(CardOrientation.FaceDown, list);
            GridPlayer.MoveAllCardsToTarget(GridDeck, list, duration);

            GridCrib.FlipAllCards(CardOrientation.FaceDown, list);
            GridCrib.MoveAllCardsToTarget(GridDeck, list, duration);

            GridPlayedCards.FlipAllCards(CardOrientation.FaceDown, list);
            GridPlayedCards.MoveAllCardsToTarget(GridDeck, list, duration);

            GridComputer.FlipAllCards(CardOrientation.FaceDown, list);
            GridComputer.MoveAllCardsToTarget(GridDeck, list, duration);

            foreach (CardView card in GridDeck.Items)
            {
                card.Reset();
            }

            GridDeck.UpdateCardLayout(list, duration, false);

            await Task.WhenAll(list);
        }
Пример #2
0
        private async void Deck_Card_PointerReleased(object sender, PointerRoutedEventArgs e)
        {
            CardView userCard = (CardView)sender;

            foreach (CardView card in GridDeck.Items)
            {
                card.PointerReleased -= this.Deck_Card_PointerReleased;
            }

            await userCard.SetOrientation(CardOrientation.FaceUp);

            userCard.BoostZindex();
            await userCard.AnimateScale(2.0, MainPage.AnimationSpeeds.Medium);

            CardView compCard = null;
            Random   r        = new Random();

            do
            {
                int index = r.Next(GridDeck.Items.Count - 1);
                compCard = GridDeck.Items[index] as CardView;
            } while (compCard.Rank == userCard.Rank);

            await compCard.SetOrientation(CardOrientation.FaceUp);

            compCard.BoostZindex();
            await compCard.AnimateScale(2.0, MainPage.AnimationSpeeds.Medium);

            string message = String.Format("\nYou selected the {0}\nThe Computer Selected the {1}\n{2} won the deal.",
                                           userCard.DisplayName, compCard.DisplayName,
                                           compCard.Rank < userCard.Rank ? "The Computer" : "You");

            await HintWindow_ShowAndWait(message);

            List <Task <object> > taskList = new List <Task <object> >();

            userCard.SetOrientation(CardOrientation.FaceDown, taskList);
            userCard.AnimateScale(taskList, 1.0, MainPage.AnimationSpeeds.Medium);
            compCard.SetOrientation(CardOrientation.FaceDown, taskList);
            compCard.AnimateScale(taskList, 1.0, MainPage.AnimationSpeeds.Medium);

            userCard.ResetZIndex();
            compCard.ResetZIndex();


            GridDeck.UpdateCardLayout(taskList, MainPage.AnimationSpeeds.Medium, true);
            await Task.WhenAll(taskList);

            await _stateMachine.StartGame((compCard.Rank < userCard.Rank)?PlayerType.Computer : PlayerType.Player, Deck);

            MainPage.Current.EnableAppBarButtons(true);

            /// _btnNewGame.IsEnabled = true;
        }
Пример #3
0
        public async void UpdateAllCardGrids(double duration = Double.MaxValue, bool rotate = false)
        {
            foreach (CardView card in Deck.Cards)
            {
                GridDeck.SetCardSize(card);
            }

            List <Task <object> > taskList = new List <Task <object> >();

            GridDeck.UpdateCardLayout(taskList, duration, rotate);
            GridPlayer.UpdateCardLayout(taskList, duration, rotate);
            GridComputer.UpdateCardLayout(taskList, duration, rotate);
            GridPlayedCards.UpdateCardLayout(taskList, duration, rotate);
            GridCrib.UpdateCardLayout(taskList, duration, rotate);
            await Task.WhenAll(taskList);
        }