public DesignXPage() { InitializeComponent(); NavigationPage.SetHasNavigationBar(this, false); viewModel = new MainPageViewModel(); this.BindingContext = viewModel; //this.BackgroundColor = Color.White; cardStack = new CardStackView(); cardStack.SetBinding(CardStackView.ItemsSourceProperty, "ItemsList"); cardStack.SwipedLeft += SwipedLeft; cardStack.SwipedRight += SwipedRight; view.Children.Add(cardStack, Constraint.Constant(0), Constraint.Constant(0), Constraint.RelativeToParent((parent) => { return(parent.Width); }), Constraint.RelativeToParent((parent) => { return(parent.Height); }) ); this.LayoutChanged += (object sender, EventArgs e) => { cardStack.CardMoveDistance = (int)(this.Width * 0.60f); }; }
IEnumerator DealersTurn() { CardStackView view = dealer.GetComponent <CardStackView> (); view.Flip(dealersFirstCard); yield return(new WaitForSeconds(1f)); while (dealer.HandValue() < 17 && player.HandValue() <= 21) { HitDealer(); yield return(new WaitForSeconds(1f)); } if ((dealer.HandValue() > player.HandValue() && dealer.HandValue() <= 21) || player.HandValue() > 21) { winText.text = "YOU LOSE"; } else if (player.HandValue() > dealer.HandValue() || dealer.HandValue() > 21) { winText.text = "YOU WIN"; } else { winText.text = "IT'S A TIE"; } playAgainButton.interactable = true; }
private void CardsStackView() { this.BindingContext = viewModel; this.BackgroundColor = Color.Black; RelativeLayout view = new RelativeLayout(); cardStack = new CardStackView(); cardStack.SetBinding(CardStackView.ItemsSourceProperty, "ItemsList"); cardStack.SwipedLeft += SwipedLeft; cardStack.SwipedRight += SwipedRight; view.Children.Add(cardStack, Constraint.Constant(30), Constraint.Constant(60), Constraint.RelativeToParent((parent) => { return(parent.Width - 60); }), Constraint.RelativeToParent((parent) => { return(parent.Height - 140); })); this.LayoutChanged += (object sender, System.EventArgs e) => { cardStack.CardMoveDistance = (int)(this.Width * 0.60f); }; this.Content = view; }
void HitDealer() { CheckForCardCount(); int card = deck.Pop(); if (dealersFirstCard < 0) { dealersFirstCard = card; } dealer.Push(card, true); if (dealer.CardCount == 2) { for (int j = 0; j < numberOfPlayers; j++) { if (!activePlayerArray[j].GetComponent <CardStack>().IsBlackjack()) { activePlayer = j; break; } } int cardRankToBeDisplayed = dealer.HandValue() - dealersFirstCardHandValue; if ((cardRankToBeDisplayed == 1) || (cardRankToBeDisplayed == 11)) //checkForInsurance { DisableAllButtons(); for (int k = 0; k < activePlayerArray.Length; k++) { activePlayerArray[k].GetComponent <CardStackView>().DisplayInsurancePanel(); } } else if (dealer.HandValue() == 21) { isDealerBlackjack = true; dealer.GetComponent <CardStackView>().DisplayWinMessages("BLACKJACK"); StartCoroutine(DealersTurn()); } else { Invoke("SetDelayForHitDealer", cardDrawSpeed / 4); } } if (dealer.CardCount >= 2) { CardStackView view = dealer.GetComponent <CardStackView>(); view.Toggle(card, true); if (dealer.CardCount > 2) { view.ActivatePlayer(); } } if (dealer.CardCount == 1) { dealersFirstCardHandValue = dealer.HandValue(); } if (dealer.HandValue() > 21) { Invoke("DealerBusted", cardDrawSpeed / 4); } }
IEnumerator DealersTurn() { hitButton.interactable = false; stickButton.interactable = false; CardStackView view = dealer.GetComponent <CardStackView>(); view.Toggle(dealersFirstCard, true); view.ShowCards(); yield return(new WaitForSeconds(1f)); while (dealer.HandValue() < 17) { HitDealer(); yield return(new WaitForSeconds(1f)); } if (player.HandValue() > 21 || (dealer.HandValue() >= player.HandValue() && dealer.HandValue() <= 21)) { winnerText.text = "Sorry-- you lose"; } else if (dealer.HandValue() > 21 || (player.HandValue() <= 21 && player.HandValue() > dealer.HandValue())) { winnerText.text = "Winner, winner! Chicken dinner"; } else { winnerText.text = "The house wins!"; } yield return(new WaitForSeconds(1f)); playAgainButton.interactable = true; }
IEnumerator DealersTurn() { CardStackView view = dealer.GetComponent <CardStackView>(); view.Toggle(dealersFirstCard, true); view.ShowCard(); // update함수에서 ShowCard를 불러오지못하므로, 딜러 카드를 수동으로 뒤집기 DealerScore.text = "Dealer Score : " + dealer.HandValue(); yield return(new WaitForSeconds(1f)); while (dealer.HandValue() < 17) { HitDealer(); DealerScore.text = "Dealer Score : " + dealer.HandValue(); yield return(new WaitForSeconds(1f)); } if (player.HandValue() > 21 || (dealer.HandValue() >= player.HandValue() && dealer.HandValue() <= 21)) { isStartedGame = false; WholeGameManager.instance.MoneyCheck -= Betting; StoreHealth(); WhosWin.enabled = false; PlayerScore.enabled = false; DealerScore.enabled = false; ShowLoseWindow(); } else if (dealer.HandValue() > 21 || (player.HandValue() <= 21 && player.HandValue() > dealer.HandValue())) { isStartedGame = false; WholeGameManager.instance.MoneyCheck += Betting; StoreHealth(); WhosWin.enabled = false; PlayerScore.enabled = false; DealerScore.enabled = false; ShowWinWindow(); } else if (dealer.HandValue() > 17 && player.HandValue() == dealer.HandValue()) { isStartedGame = false; WholeGameManager.instance.MoneyCheck -= Betting; StoreHealth(); WhosWin.enabled = false; PlayerScore.enabled = false; DealerScore.enabled = false; ShowLoseWindow(); } //Debug.Log(WholeGameManager.instance.MoneyCheck); }
private void InitUi(View view) { _cardStackView = view.FindViewById <CardStackView>(Resource.Id.activity_main_card_stack_view); _animationView = view.FindViewById <LottieAnimationView>(Resource.Id.animation_view); _lbNobody = view.FindViewById <TextView>(Resource.Id.lbNobody); _rightButton = view.FindViewById <Button>(Resource.Id.btnRight); _leftButton = view.FindViewById <Button>(Resource.Id.btnLeft); _searchButton = view.FindViewById <Button>(Resource.Id.searchButton); }
void CardClicker_CardClicked(object sender, CardEventArgs e) { switch (playerClickState) { case GameState.None: return; case GameState.Ready: if (deck.HasCard(e.cardModel)) { stagedCard = e.cardModel; deck.StageCard(e.cardModel, turnMarker.transform.position, true); playerClickState = GameState.Staged; // if (!playersCardsHidden) { // playersCardsHidden = true; // player.flipCards(new RangeInt(0, 2), false); // } } return; case GameState.Staged: if (stagedCard != null && e.cardModel != stagedCard) { Vector3 discardPosition = discard.GetComponent <CardStackView>().start; if (deck.HasCard(e.cardModel)) // discard { deck.MoveCardToStack( new CardMoveToStackEventArgs(e.cardModel, discard, discardPosition, false, -1, -1) ); stagedCard = null; playerClickState = GameState.None; } else if (player.HasCard(e.cardModel)) // card swap { int indexOfCardClicked = player.IndexOf(e.cardModel); CardStackView stackView = player.GetComponent <CardStackView>(); Vector3 cardClickedPosition = stackView.CardPositionForIndex(indexOfCardClicked); CardMoveToStackEventArgs playerArgs = new CardMoveToStackEventArgs( e.cardModel, discard, discardPosition, false, indexOfCardClicked, -1 ); CardMoveToStackEventArgs deckArgs = new CardMoveToStackEventArgs( stagedCard, player, cardClickedPosition, false, -1, indexOfCardClicked ); //player.MoveCardToStack(playerArgs); // discard clicked card and flip deck.MoveCardToStack(deckArgs); // add staged card to user stack stagedCard = null; playerClickState = GameState.None; } } return; } }
IEnumerator DealersTurn() { hitButton.interactable = false; standButton.interactable = false; CardStackView view = dealer.GetComponent <CardStackView>(); view.Toggle(dealersFirstCard, true); if (dealer.CardCount > 2) { DisplayDealerHandValue(); } dealer.GetComponent <CardStackView>().DisplayCardValue(dealer.HandValue()); view.ShowCards(); if (isDealerBlackjack) { yield return(new WaitForSeconds(1f)); SetButtonsOnGameOver(); } else { view.ActivatePlayer(); while (dealer.HandValue() < 17) { HitDealer(); yield return(new WaitForSeconds(1f)); } yield return(new WaitForSeconds(0.4f)); int i = 0; view.DeactivatePlayer(); while (i < activePlayerArray.Length) { if (activePlayerArray[i].HandValue() <= 21 && !activePlayerArray[i].GetComponent <CardStack>().IsBlackjack()) { DisplayWinMessages(i); yield return(new WaitForSeconds(0.5f)); i++; } else { i++; } } yield return(new WaitForSeconds(1f)); SetButtonsOnGameOver(); } }
public void HitDealer() { int card = deck.Pop(); if (dealerFirstCard < 0) { dealerFirstCard = card; } dealer.Push(card); if (dealer.cardCount >= 2) { CardStackView view = dealer.GetComponent <CardStackView>(); view.Toggle(card, true); } }
void Start() { if (Instance != null && Instance != this) { Destroy(gameObject); } else { Instance = this; } start = GetComponent <RectTransform>(); cardStack = GetComponent <CardStack>(); cardStack.CreateDeck(); ShowCards(); }
IEnumerator DealersTurn() { hitButton.interactable = false; stickButton.interactable = false; yield return(new WaitForSeconds(2f)); CardStackView view = dealer.GetComponent <CardStackView>(); view.FlipAnimation(dealersFirstCard); yield return(new WaitForSeconds(1f)); dealerScore.text = dealer.HandValue().ToString(); yield return(new WaitForSeconds(1.5f)); view.ShowCards(); while (dealer.HandValue() < 17 || (dealer.HandValue() < player.HandValue() && player.HandValue() <= 21)) { HitDealer(); dealerScore.text = dealer.HandValue().ToString(); yield return(new WaitForSeconds(2f)); } //if player is bust or, //if player is less than dealer or equal but on an odd number, player loses if (player.HandValue() > 21 && player.HandValue() != dealer.HandValue() || (dealer.HandValue() > player.HandValue() && dealer.HandValue() <= 21) || (dealer.HandValue() == player.HandValue() && dealer.HandValue() % 2 == 1)) { winnerText.text = "You've lost"; } //if player is under 22, and has a hand value greater than the dealer's, or the dealer is bust but the player is not, //or the player and dealer have the same score but the number is even, the player wins. else if ((player.HandValue() <= 21 && player.HandValue() > dealer.HandValue()) || (dealer.HandValue() > 21 && player.HandValue() <= 21) || (dealer.HandValue() == player.HandValue() && dealer.HandValue() % 2 == 0)) { winnerText.text = "Winner!"; } else { winnerText.text = "error"; } yield return(new WaitForSeconds(1f)); playAgainButton.interactable = true; }
// 追加 e // void HitDealer() { int card = deck.Pop(); if (dealersFirstCard < 0) { dealersFirstCard = card; } dealer.Push(card); if (dealer.CardCount >= 2) { CardStackView view = dealer.GetComponent <CardStackView>(); // ディーラーのカードを1枚表にする view.Toggle(card, true); } }
private void ShowNextCard() { var topCard = _cards[_topCardIndex]; _topCardIndex = GetCardIndex(_topCardIndex); // If there are more cards to show, show the next card in to place of // the card that was swipped off the screen if (_itemIndex < _cards.Count) { // Push it to the back z order CardStackView.LowerChild(topCard); topCard.IsVisible = false; _itemIndex++; } }
private void InitComponent(View view) { try { CardStack = view.FindViewById <CardStackView>(Resource.Id.activity_main_card_stack_view); LikeButton = view.FindViewById <CircleButton>(Resource.Id.likebutton2); DesLikeButton = view.FindViewById <CircleButton>(Resource.Id.closebutton1); UndoButton = view.FindViewById <CircleButton>(Resource.Id.Undobutton1); EmptyStateLayout = view.FindViewById <ViewStub>(Resource.Id.viewStub); PopularityImage = view.FindViewById <ImageView>(Resource.Id.coinImage); CardViewBig = view.FindViewById <RelativeLayout>(Resource.Id.CardViewBig); FilterButton = view.FindViewById <ImageView>(Resource.Id.Filterbutton); CardStack.SetCardEventListener(this); List <SwipeDirection> direction = new List <SwipeDirection> { SwipeDirection.Right, SwipeDirection.Left }; CardStack.SetSwipeDirection(direction); BtnLayout = view.FindViewById <LinearLayout>(Resource.Id.buttonLayout); ImageView = view.FindViewById <ImageView>(Resource.Id.userImageView); WaveDrawableAnimation = new WaveDrawable(Color.ParseColor(AppSettings.MainColor), 800); if (Build.VERSION.SdkInt >= BuildVersionCodes.JellyBean) { ImageView.Background = WaveDrawableAnimation; } WaveDrawableAnimation.SetWaveInterpolator(new LinearInterpolator()); WaveDrawableAnimation.StartAnimation(); ImageView.Visibility = ViewStates.Visible; CardStack.Visibility = ViewStates.Invisible; BtnLayout.Visibility = ViewStates.Invisible; CardStack.SetStackFrom(StackFrom.Top); CardStack.SetVisibleCount(3); CardStack.SetTranslationDiff(8.0f); } catch (Exception e) { Console.WriteLine(e); } }
void HitDealer() { int card = deck.Pop(); // 딜러의 첫 번째 카드 오픈 if (dealersFirstCard < 0) { dealersFirstCard = card; } dealer.Push(card); SoundManager.PlaySound("drawCard"); // 딜러가 카드를 한번 뽑은적이 있다면, 앞면이 보이게 함. // 딜러의 카드 1장을 가리고, 나머지는 계속 보이게 하기 위함 if (dealer.CardCount >= 2) { CardStackView view = dealer.GetComponent <CardStackView>(); view.Toggle(card, true); } }
private void Setup() { _progressBar = FindViewById <ProgressBar>(Resource.Id.activity_main_progress_bar); _cardStackView = FindViewById <CardStackView>(Resource.Id.CardStackView); _cardStackView.CardReversed += (sender, e) => Log.Debug("Debug", "OnCardReversed"); _cardStackView.CardDragging += (sender, e) => Log.Debug("Debug", "OnCardDragging"); _cardStackView.CardMovedToOrigin += (sender, e) => Log.Debug("Debug", "OnCardMovedToOrigin"); _cardStackView.CardClicked += (sender, e) => Log.Debug("CardStackView", $"onCardClicked: {e.Index}"); _cardStackView.CardSwiped += (sender, e) => { Log.Debug("CardStackView", $"onCardSwiped: {e.Direction.ToString()}"); Log.Debug("CardStackView", $"topIndex: {_cardStackView.TopIndex}"); if (_cardStackView.TopIndex == _adapter.Count - 5) { Log.Debug("CardStackView", "Paginate: " + _cardStackView.TopIndex); Paginate(); } }; }
public Dashboard() { InitializeComponent(); currentUser = (User)Application.Current.Properties["user"]; this.BindingContext = viewModel; this.BackgroundColor = Color.Black; RelativeLayout view = new RelativeLayout(); cardStack = new CardStackView(); cardStack.SetBinding(CardStackView.ItemsSourceProperty, "ItemsList"); cardStack.SwipedLeft += SwipedLeft; cardStack.SwipedRight += SwipedRight; view.Children.Add(cardStack, Constraint.Constant(30), Constraint.Constant(60), Constraint.RelativeToParent((parent) => { return(parent.Width - 60); }), Constraint.RelativeToParent((parent) => { return(parent.Height - 140); })); this.LayoutChanged += (object sender, System.EventArgs e) => { cardStack.CardMoveDistance = (int)(this.Width * 0.60f); }; this.Content = view; //ToolbarItem tbi = new ToolbarItem(); //tbi.Icon = "frienz.png"; //tbi.Text = "Friends"; //this.ToolbarItems.Add(tbi); }
private void SetupGame() { audioManager = FindObjectOfType <AudioManager>(); playersCardStack = playerObject.GetComponent <CardStack>(); dealersCardStack = dealerObject.GetComponent <CardStack>(); playersCardStackView = playerObject.GetComponent <CardStackView>(); dealersCardStackView = dealerObject.GetComponent <CardStackView>(); waiting = false; Round = 1; // this setter also means that cardNo == round - 1; for (int i = 0; i < playersCardStack.CardsCapacity; i++) { playersCardStack.Push(dealersCardStack.Pop()); // the push & pop method should indicate to the cardStacks that they should ShowCards() // TODO Investigate } // called here in case ResetCards() // TODO Raises NullReferenceExcpetion errors! playersCardStackView.ShowCards(); dealersCardStackView.ShowCards(); //Debug.Log("player.GetCards: " + player.GetCards()); // TODO this is not how you interact with IEnumerable return types }
private void InitializeCards() { // Init Cards _itemIndex = 0; // Set the top card _topCardIndex = 0; // Create a stack of cards for (int i = 0; i < Math.Min(NumCards, _cards.Count); i++) { if (_itemIndex >= _cards.Count) { break; } var card = _cards[i]; card.IsVisible = true; CardStackView.LowerChild(card); } }
private async void ShowNextCard() { var topCard = _cards[_topCardIndex]; _topCardIndex = GetCardIndex(_topCardIndex); // If there are more cards to show, show the next card in to place of // the card that was swipped off the screen if (_itemIndex < _cards.Count) { // Push it to the back z order CardStackView.LowerChild(topCard); // Reset its scale, opacity and rotation topCard.Scale = BackCardScale; await topCard.RotateTo(0, 0); await topCard.TranslateTo(0, -topCard.Y, 0); topCard.IsVisible = true; _itemIndex++; } }
private async void InitializeCards(bool isCardVisible) { // Init Cards _itemIndex = 0; // Set the top card _topCardIndex = 0; // Create a stack of cards for (int i = 0; i < Math.Min(NumCards, _cards.Count); i++) { if (_itemIndex >= _cards.Count) { break; } var card = _cards[i]; card.InputTransparent = (Device.RuntimePlatform == Device.iOS) ? false : true; if (isCardVisible) { card.IsVisible = true; } else { card.IsVisible = (i != 0) ? false : true; } card.Scale = GetScale(i); await card.RotateTo(0, 0); await card.TranslateTo(0, -card.Y, 0); CardStackView.LowerChild(card); } }
public MatchStack(ObservableCollection <TreeProfile> faves) { InitializeComponent(); Title = "Browse"; favorites = faves; CosmosDBService.GetTrees().ContinueWith((task) => { if (!task.IsCompleted) { // Usually would display something to indicate error return; } List <TreeProfile> trees = task.Result; if (trees.Count == 0) { // Display alert return; } Debug.Print(trees.Count.ToString()); CardStackView stack = new CardStackView(); stack.VerticalOptions = LayoutOptions.FillAndExpand; stack.ItemTemplate = new DataTemplate(() => { Frame frame = new Frame(); RelativeLayout layout = new RelativeLayout(); frame.Content = layout; frame.CornerRadius = 15; frame.Padding = 0; ImageSource source = new UriImageSource(); source.SetBinding(UriImageSource.UriProperty, "ProfilePic"); Label nameLabel = new Label() { FontAttributes = FontAttributes.Bold, FontSize = 24, TextColor = Color.White }; nameLabel.SetBinding(Label.TextProperty, "Name"); Label description = new Label() { FontSize = 18, TextColor = Color.GhostWhite }; description.SetBinding(Label.TextProperty, "Description"); Label age = new Label() { FontSize = 24, TextColor = Color.White }; age.SetBinding(Label.TextProperty, "Age", BindingMode.Default, new IntToString()); Image profilePic = new Image() { Aspect = Aspect.AspectFill }; profilePic.Source = source; Image likeStamp = new Image() { Aspect = Aspect.AspectFit }; likeStamp.Source = ImageSource.FromResource("Timbr.like.png"); likeStamp.SetBinding(Image.IsVisibleProperty, "Status"); Image dislikeStamp = new Image() { Aspect = Aspect.AspectFit }; dislikeStamp.Source = ImageSource.FromResource("Timbr.nope.png"); dislikeStamp.SetBinding(Image.IsVisibleProperty, "Status"); layout.Children.Add(profilePic, Constraint.Constant(0), Constraint.Constant(0), Constraint.RelativeToParent((parent) => { return(parent.Width); }), Constraint.RelativeToParent((parent) => { return(parent.Height); }) ); layout.Children.Add(description, Constraint.RelativeToParent((parent) => { return(parent.X + 10); }), Constraint.RelativeToParent((parent) => { return(parent.Y + parent.Height - (parent.Height * 0.15)); }) ); layout.Children.Add(nameLabel, Constraint.RelativeToView(description, (parent, sibling) => { return(sibling.X); }), Constraint.RelativeToView(description, (parent, sibling) => { return(sibling.Y - sibling.Height - 5); }) ); layout.Children.Add(age, Constraint.RelativeToView(nameLabel, (parent, sibling) => { return(sibling.X + sibling.Width + 10); }), Constraint.RelativeToView(nameLabel, (parent, sibling) => { return(sibling.Y); }) ); layout.Children.Add(dislikeStamp, Constraint.RelativeToParent((parent) => { return(parent.Width * 0.6); }), Constraint.RelativeToParent((parent) => { return(parent.Height * 0.1); }), Constraint.RelativeToParent((parent) => { return(parent.Width * 0.4); }), Constraint.RelativeToParent((parent) => { return(parent.Height * 0.5); }) ); layout.Children.Add(likeStamp, Constraint.RelativeToParent((parent) => { return(parent.Width * 0.1); }), Constraint.RelativeToParent((parent) => { return(parent.Height * 0.1); }), Constraint.RelativeToParent((parent) => { return(parent.Width * 0.4); }), Constraint.RelativeToParent((parent) => { return(parent.Height * 0.5); }) ); return(frame); }); stack.ItemsSource = trees; stack.Swiped += processSwipe; stack.StartedDragging += processDragStart; stack.FinishedDragging += processDragEnd; Device.BeginInvokeOnMainThread(() => Content = stack); }); }
private void Awake() { //I do it in Awake to make sure that the stack is accessible from the controller at Start Stack = GetComponent <CardStack>(); m_stackView = GetComponent <CardStackView>(); }
private void Setup() { progressBar = FindViewById <ProgressBar>(Resource.Id.activity_main_progress_bar); cardStackView = FindViewById <CardStackView>(Resource.Id.activity_main_card_stack_view); cardStackView.SetCardEventListener(new CardEventListener(OnCardDragging, OnCardSwiped, OnCardReversed, OnCardMovedToOrigin, OnCardClicked)); }
void SwipeRightButton_Clicked(object sender, System.EventArgs e) { CardStackView.Swipe(SwipeDirection.Right); }
void RestartButton_Clicked(object sender, EventArgs e) { CardStackView.Setup(); }
IEnumerator DealersTurn() { sameButton.interactable = false; hitButton.interactable = false; stayButton.interactable = false; CardStackView view = dealer.GetComponent <CardStackView>(); view.Toggle(dealersFirstCard, true); view.ShowCards(); dealerScoreText.text = "House Score: " + dealer.HandValue().ToString(); yield return(new WaitForSeconds(1f)); if (player.HandValue() > dealer.HandValue()) { if (choice == "over") //if your hand is larger and you choose "over", you win { winnerText.text = "CORRECT!!"; playerwincount++; } else { winnerText.text = "WRONG!!"; dealerwincount++; } } else if (player.HandValue() < dealer.HandValue()) //if your hand is smaller and you choose "under", you win { if (choice == "under") { winnerText.text = "CORRECT!!"; playerwincount++; } else { winnerText.text = "WRONG!!"; dealerwincount++; } } else if (player.HandValue() == dealer.HandValue()) //if your hand is the same as the dealer and you choose "same", you win { if (choice == "same") { winnerText.text = "CORRECT!!"; playerwincount++; } else { winnerText.text = "WRONG!!"; dealerwincount++; } } else { winnerText.text = "DEALER WINS!"; } yield return(new WaitForSeconds(1f)); playAgainButton.interactable = true; playerWinsText.text = "Your Wins: " + playerwincount.ToString(); dealerWinsText.text = "House Wins: " + dealerwincount.ToString(); }