public void WhoIsTheWinner() { UserHand winnerHand = new UserHand(); winnerHand.Cards.Add(new Card(Color.CLUBS, Name.TWO)); foreach (var playerItem in MyUser.UserHands) { if (playerItem.GetValue() <= 21) { if (playerItem.GetValue() > winnerHand.GetValue()) { MyGame.Winner = MyUser; winnerHand = playerItem; } else if (playerItem.GetValue() == winnerHand.GetValue()) { MyGame.Winner = MyUser; winnerHand = playerItem; } } } if (Bank.UserHands[0].GetValue() <= 21) { if (Bank.UserHands[0].GetValue() > winnerHand.GetValue()) { MyGame.Winner = Bank; winnerHand = Bank.UserHands[0]; } } EndGame(winnerHand); }
public void EndGame(UserHand winnerHand) { //player win if (MyGame.Winner == MyUser) { UpdateStack(winnerHand.Bet * 2.5); foreach (var item in MyUser.UserHands) { if (item != winnerHand) { UpdateStack(-item.Bet); } } this.dialog = new MessageDialog("Vous avez gagné : " + winnerHand.Bet * 2.5); } //player loose else if (MyGame.Winner == Bank || MyGame.Winner == null) { Double currentBet = 0; foreach (var item in MyUser.UserHands) { UpdateStack(-item.Bet); currentBet += item.Bet; } UpdateStack(-winnerHand.Bet); this.dialog = new MessageDialog("Vous avez perdu : " + -winnerHand.Bet); } // check assurance if (MyGame.Winner == Bank && winnerHand.GetValue() == 21) { UpdateStack(MyUser.Assurance); this.dialog = new MessageDialog("Votre assurance vous rapporte : " + MyUser.Assurance); } RestartTextBox(this.dialog); }
private bool checkHandToDraw(UserHand userRef) { int cardHandCounter = 0; bool checkDraw = false; for (int i = 0; i < userRef.GetCardHand().Count; i++) { if (userRef.GetCardHand()[i].GetComponent <CardBehaviour>().GetUniqueCardIDNumber() != pileOfCardsRef.GetCardRef().GetComponent <CardBehaviour>().GetUniqueCardIDNumber() && userRef.GetCardHand()[i].GetComponent <CardBehaviour>().GetUniqueCardIDColor() != pileOfCardsRef.GetCardRef().GetComponent <CardBehaviour>().GetUniqueCardIDColor()) { cardHandCounter++; } } if (cardHandCounter == userRef.GetCardHand().Count&& userRef.GetHandState() != UserHand.HandState.WaitForTurn) { checkDraw = true; } else { checkDraw = false; } ableToDraw = checkDraw; return(ableToDraw); }
/// <summary> /// Sorts the user’s hand. /// </summary> public static void SortUserHand() { if (!IsPlaying) { throw new Exception(); } else { UserHand.SortHand(); } }
public void EndOfTurn(UserHand handOfUser) { //Debug.Log("ENDOFTURN!"); if (handOfUser.GetCardHand().Count == 1) { if (unoCall == false) { handOfUser.DrawCardInHand(handOfUser.GetCardHand().Count); handOfUser.DrawCardInHand(handOfUser.GetCardHand().Count); } } }
public bool VerifyExistingUser(string username) { Cp_user tstUser = UserHand.SelectUser(username); if (tstUser == null) { return(false); } else { return(true); } }
public void StartOfTurn(UserHand handOfUser) { //Debug.Log("STARTOFTURN!"); if (handOfUser.GetCardHand().Count <= 2) { checkInteractiveButton(true); } else { checkInteractiveButton(false); } }
public void GetCard(UserHand userHand) { if (this.GameTable.Deck.Cards[0].IsCutCard) { //reinit the deck this.Nav.GameTable.Deck.Cards.Clear(); this.Nav.GameTable.CreateGameDeck(); this.Nav.GameTable.Deck.Cards.RemoveRange(0, 4); } else { // distribute card userHand.Cards.Add(this.GameTable.Deck.Cards[0]); GameTable.Deck.Cards.RemoveAt(0); } }
/// <summary> /// Attempt to play the chosen card for the user according to the rules /// of the game. /// </summary> /// <param name="cardNum"> Card's index in hand</param> /// <param name="chosenSuit">Suit if the card is eight</param> /// <returns>Return the action according to the rules</returns> public static ActionResult UserPlayCard(int cardNum, Suit?chosenSuit = null) { Card cardPlayed = UserHand.GetCard(cardNum); Suit newSuit = chosenSuit == null?cardPlayed.GetSuit() : (Suit)chosenSuit; if (!IsPlaying || !IsUserTurn) { throw new Exception(); } if (cardPlayed.GetFaceValue() == FaceValue.Eight && chosenSuit == null) { return(ActionResult.SuitRequired); } return(PlayCard(UserHand, cardNum, newSuit, ComputerHand)); }
public string Stand() { int userTotal = UserHand.HandTotal(); int dealerTotal = DealerHand.HandTotal(); if (userTotal <= 21) { if (Math.Abs(21 - userTotal) < Math.Abs(21 - dealerTotal)) { return("user"); } } if (userTotal <= 21 && userTotal == dealerTotal) { return("draw"); } return("dealer"); }
// Start is called before the first frame update void Start() { gMRef = GameObject.FindGameObjectWithTag("GameManager").GetComponent <GameManager>(); cardRef = GameObject.FindGameObjectWithTag("Card"); userHandRef = GameObject.FindGameObjectWithTag("User").GetComponentInChildren <UserHand>(); AIHandRef = GameObject.FindGameObjectWithTag("AI").GetComponentInChildren <UserHand>(); pileOfCardsRef = GameObject.FindGameObjectWithTag("PileOfCards").GetComponent <PileOfCardsBehaviour>(); GenerateDeck(deckOfCards); pileOfCardsRef.SetDeck(this.gameObject); userHandRef.SetDeck(this.gameObject); AIHandRef.SetDeck(this.gameObject); }
/// <summary> /// a /// </summary> /// <returns></returns> public static ActionResult UserDrawCard() { if (IsPlaying == false) { throw new System.ArgumentException("This game is not start!"); } if (IsUserTurn == false) { throw new System.ArgumentException("This is not your turn!"); } if (TopDiscard.GetFaceValue() == FaceValue.Eight) { return(ActionResult.CannotDraw); } foreach (Card c in UserHand) { if (c.GetFaceValue() == TopDiscard.GetFaceValue() || c.GetSuit() == TopDiscard.GetSuit()) { return(ActionResult.CannotDraw); } } if (_drawPile.GetCount() == 0) { _discardPile.Reverse(); while (_discardPile.GetCount() > 1) { _drawPile.AddCard(_discardPile.DealOneCard()); } return(ActionResult.FlippedDeck); } Card drawCard = _drawPile.DealOneCard(); UserHand.AddCard(drawCard); if (drawCard.GetFaceValue() == TopDiscard.GetFaceValue() || drawCard.GetSuit() == TopDiscard.GetSuit()) { return(ActionResult.DrewPlayableCard); } else { if (UserHand.GetCount() == 13) { IsUserTurn = false; if (ComputerHand.GetCount() == 13) { return(ActionResult.DrewAndResetPiles); } else { return(ActionResult.DrewAndNoMovePossible); } } else { return(ActionResult.DrewUnplayableCard); } } }
/// <summary> /// Sorts the cards held by the User /// </summary> public static void SortUserHand() { UserHand.SortHand(); }
public void WriteTo(DataBuffer buffer) { Id.WriteTo(buffer); UserHand.WriteTo(buffer); }
/// <summary> /// a /// </summary> /// <param name="cardNum"></param> /// <param name="chosenSuit"></param> /// <returns></returns> public static ActionResult UserPlayCard(int cardNum, Suit?chosenSuit = null) { if (IsPlaying == false) { throw new System.ArgumentException("This game is not start!"); } if (IsUserTurn == false) { throw new System.ArgumentException("This is not your turn!"); } Card card = _userhand.GetCard(cardNum); if (_discardPile.GetCount() == 1 && TopDiscard.GetFaceValue() == FaceValue.Eight) { IsUserTurn = false; _userhand.RemoveCardAt(cardNum); _discardPile.AddCard(card); return(ActionResult.ValidPlay); } if (card.GetFaceValue() == FaceValue.Eight) { if (!chosenSuit.HasValue) { return(ActionResult.SuitRequired); } IsUserTurn = false; _userhand.RemoveCardAt(cardNum); _discardPile.AddCard(new Card(chosenSuit, FaceValue.Eight)); return(ActionResult.ValidPlay); } if (card.GetFaceValue() == TopDiscard.GetFaceValue() || card.GetSuit() == TopDiscard.GetSuit()) { _userhand.RemoveCardAt(cardNum); _discardPile.AddCard(card); if (UserHand.GetCount() == 0) { IsPlaying = false; return(ActionResult.WinningPlay); } if (ComputerHand.GetCount() == 13) { foreach (Card c in ComputerHand) { if (c.GetFaceValue() == TopDiscard.GetFaceValue() || c.GetSuit() == TopDiscard.GetSuit()) { IsUserTurn = false; return(ActionResult.ValidPlay); } } return(ActionResult.ValidPlayAndExtraTurn); } IsUserTurn = false; return(ActionResult.ValidPlay); } // Invalid Play foreach (Card c in UserHand) { if (c.GetFaceValue() == TopDiscard.GetFaceValue() || c.GetSuit() == TopDiscard.GetSuit() || c.GetFaceValue() == FaceValue.Eight) { return(ActionResult.InvalidPlay); } } return(ActionResult.InvalidPlayAndMustDraw); }
/// <summary> /// a /// </summary> /// <returns></returns> public static ActionResult ComputerAction() { if (IsPlaying == false) { throw new System.ArgumentException("This game is not start!"); } if (IsUserTurn == true) { throw new System.ArgumentException("This is not your turn!"); } if (TopDiscard.GetFaceValue() == FaceValue.Eight) { IsUserTurn = true; _discardPile.AddCard(ComputerHand.GetCard(0)); ComputerHand.RemoveCardAt(0); return(ActionResult.ValidPlay); } for (int j = 0; j < 3; ++j) // j = 0, match face, j = 1, match suit, j = 2, match eight { for (int i = ComputerHand.GetCount() - 1; i >= 0; --i) { Card c = ComputerHand.GetCard(i); if ((c.GetFaceValue() == TopDiscard.GetFaceValue() && j == 0) || (c.GetSuit() == TopDiscard.GetSuit() && j == 1) || (c.GetFaceValue() == FaceValue.Eight && j == 2)) { IsUserTurn = false; ComputerHand.RemoveCardAt(i); _discardPile.AddCard(c); if (ComputerHand.GetCount() == 0) { IsPlaying = false; return(ActionResult.WinningPlay); } if (UserHand.GetCount() == 13) { foreach (Card c1 in UserHand) { if (c1.GetFaceValue() == TopDiscard.GetFaceValue() || c1.GetSuit() == TopDiscard.GetSuit()) { IsUserTurn = true; return(ActionResult.ValidPlay); } } IsUserTurn = false; return(ActionResult.ValidPlayAndExtraTurn); } IsUserTurn = true; return(ActionResult.ValidPlay); } } } if (_drawPile.GetCount() == 0) { _discardPile.Reverse(); while (_discardPile.GetCount() > 1) { _drawPile.AddCard(_discardPile.DealOneCard()); } return(ActionResult.FlippedDeck); } Card drawCard = _drawPile.DealOneCard(); ComputerHand.AddCard(drawCard); if (drawCard.GetFaceValue() == TopDiscard.GetFaceValue() || drawCard.GetSuit() == TopDiscard.GetSuit()) { return(ActionResult.DrewPlayableCard); } else { if (ComputerHand.GetCount() == 13) { IsUserTurn = true; if (UserHand.GetCount() == 13) { return(ActionResult.DrewAndResetPiles); } else { return(ActionResult.DrewAndNoMovePossible); } } else { return(ActionResult.DrewUnplayableCard); } } /* * if (card.GetFaceValue() == FaceValue.Eight) * { * if (!chosenSuit.HasValue) * { * return ActionResult.SuitRequired; * } * * IsUserTurn = false; * _userhand.RemoveCardAt(cardNum); * _discardPile.AddCard(new Card(chosenSuit, FaceValue.Eight)); * return ActionResult.ValidPlay; * } * * if (card.GetFaceValue() == TopDiscard.GetFaceValue() || card.GetSuit() == TopDiscard.GetSuit()) * { * _userhand.RemoveCardAt(cardNum); * _discardPile.AddCard(card); * * if (UserHand.GetCount() == 0) * { * IsPlaying = false; * return ActionResult.WinningPlay; * } * * if (ComputerHand.GetCount() == 13) * { * foreach (Card c in ComputerHand) * { * if (c.GetFaceValue() == TopDiscard.GetFaceValue() || c.GetSuit() == TopDiscard.GetSuit()) * { * IsUserTurn = false; * return ActionResult.ValidPlay; * } * } * return ActionResult.ValidPlayAndExtraTurn; * } * * IsUserTurn = false; * return ActionResult.ValidPlay; * } * * // Invalid Play * * foreach (Card c in UserHand) * { * if (c.GetFaceValue() == TopDiscard.GetFaceValue() || c.GetSuit() == TopDiscard.GetSuit()) * { * return ActionResult.InvalidPlay; * } * } * * return ActionResult.InvalidPlayAndMustDraw; */ }
public UserHand SetUserHand(UserHand userHand) { userCardHand = userHand; return(userCardHand); }