private void AskPoigneeOfCurrentPlayer() { if (currentPlayer is CpuPlayer) { CpuPlayer cpuPlayer = (CpuPlayer)currentPlayer; Poignee poignee = cpuPlayer.DecidePoigneeToShow(); SetPoigneeForCurrentPlayer(poignee); } else // human player { Poignee maxPoignee = GetMaxPoignee(currentPlayer.Hand, NPlayer); if (maxPoignee == Poignee.None) { SetPoigneeForCurrentPlayer(Poignee.None); } else { answerTimer += Time.deltaTime; if (answerTimer >= answerTimeLimit) { SetPoigneeForCurrentPlayer(Poignee.None); } if (humanPlayerPoignee.Value != Poignee.NotDecided) { SetPoigneeForCurrentPlayer(humanPlayerPoignee.Value); } } } }
public Poignee DecidePoigneeToShow() { // TODO delegate to AI Poignee poignee = Poignee.None; int nPossibleCards = Hand.GetNCardOfType(CardType.Trump) + Hand.GetNCardOfType(CardType.Excuse); // TODO return(poignee); }
public void PrepareForNewHand() { // break into smaller pieces? Hand = new CardList(); ScoringPile = new CardList(); IsDealer = false; HasToDoSomething = false; poignee = Poignee.NotDecided; }
public static Poignee GetMaxPoignee(CardList hand, int nPlayer) { int nTrump = hand.GetNCardOfType(CardType.Trump) + hand.GetNCardOfType(CardType.Excuse); Poignee maxPoignee = Poignee.Triple; while (maxPoignee > Poignee.None) { if (nTrump >= GetNCardPoignee(maxPoignee, nPlayer)) { return(maxPoignee); } maxPoignee--; } return(Poignee.None); }
public void SetPoigneeForCurrentPlayer(Poignee poignee) { currentPlayer.SetPoignee(poignee); if (poignee >= Poignee.Single) // update scoring data { if (!firstPoigneeShown) { scoringData.poignee1 = poignee; firstPoigneeShown = true; } else // seconde poignée (max) { scoringData.poignee2 = poignee; } } Debug.Log("Player " + currentPlayer.name + " decided to show the poignee: " + poignee); GoToNextPlayer(); }
public static int GetNCardPoignee(Poignee poignee, int nPlayer) { Dictionary <Poignee, int> dict; if (nPlayer == 3) { dict = limitPoignee3Players; } else if (nPlayer == 4) { dict = limitPoignee4Players; } else if (nPlayer == 5) { dict = limitPoignee5Players; } else { Debug.LogError("Number of player incorrect: " + nPlayer); return(-1); } return(dict[poignee]); }
public void SetPoignee(Poignee poignee) { // TODO add checks this.poignee = poignee; }