public Match(Player[] players) { this.players = players; deck = new CompleteDeck(); firstTeamDeck = new TeamDeck(); secondTeamDeck = new TeamDeck(); firstHand = true; }
public void NewHand() { maraffa = false; Seed s = 0; int i = 0; List <Card>[] hand = new List <Card> [4]; deck = new CompleteDeck(); firstTeamDeck = new TeamDeck(); secondTeamDeck = new TeamDeck(); deck.Mix(); deck.Cut(); //Assegnazione delle mani hand[0] = new List <Card>(); hand[1] = new List <Card>(); hand[2] = new List <Card>(); hand[3] = new List <Card>(); //Assegnazione del primo giocatore della nuova mano if (!firstHand) { if (dealer == 3) { dealer = 0; } else { dealer++; } } int k = dealer; //Creazione mani while (i < 40) { hand[k].Add(deck[i]); //Quando il numero della carta è multiplo di 5 allora o si danno le carte al giocatore successivo if ((i + 1) % 5 == 0) { if (k != 3) { k++; } else { k = 0; } } i++; } if (firstHand) { for (int j = 0; j < 4; j++) { //Identificazione del possessore del 4 di Denari per assegnazione del turnToken if (hand[j].Contains(new Card(Value.Quattro, Seed.Denari))) { dealer = j; } } } //dealer = 3; //hand[3][0] = new Card(Value.Asso, Seed.Coppe); //hand[3][1] = new Card(Value.Due, Seed.Coppe); //hand[3][2] = new Card(Value.Tre, Seed.Coppe); //Creazione delle mani players[0].Hand = new Hand(hand[0]); players[1].Hand = new Hand(hand[1]); players[2].Hand = new Hand(hand[2]); players[3].Hand = new Hand(hand[3]); for (int j = 0; j < 4; j++) { if (players[dealer].Hand.EntireHand.Contains(new Card(Value.Asso, (Seed)j)) && players[dealer].Hand.EntireHand.Contains(new Card(Value.Due, (Seed)j)) && players[dealer].Hand.EntireHand.Contains(new Card(Value.Tre, (Seed)j))) { maraffa = true; s = (Seed)j; } } var delay = Task.Run(async() => { await Task.Delay(400); return(true); }); bool prova = delay.Result; if (!maraffa) { players[dealer].BriscolaToken = true; players[dealer].BriscolaToken = false; } else { int index = 0; for (int j = 0; j < 10; j++) { if (players[dealer].Hand.EntireHand[j].Value == Value.Asso && players[dealer].Hand.EntireHand[j].CardSeed == s) { index = j; } } players[dealer].Client.SendMsg(string.Format("MARAFFA {0},{1}", s.ToString(), index)); } firstHand = false; }