public GameCard checkCards(GameCard c, int tour) //Parcoure la défosse pour savoir on peut faire une paire avec la carte du Joueur ou la carte de la Pioche (tour 1 pour le joueur, tour 2 pour la pioche) { cartesRangees = J1_humain.PlisLumiere.Count + J1_humain.PlisRuban.Count + J1_humain.PlisAnimal.Count + J1_humain.PlisPlante.Count + J2_IA.PlisLumiere.Count + J2_IA.PlisRuban.Count + J2_IA.PlisAnimal.Count + J2_IA.PlisPlante.Count; Pli2Plantes = false; Pli3Choix = false; Pli2Choix = false; Pli3Plantes = false; choixPaireClick = false; int cpt = 0; List <Carte> paires; paires = new List <Carte>(); foreach (Carte d in defosse) //on regarde si y a une paire possible { if (c.Proprietes.Mois == d.Mois) { paires.Add(d); cpt++; } } if (cpt == 0) //Si y a pas de paires possibles { defosse.Add(c.Proprietes); //On rajoute la carte actuelle à la défosse if (tour == 1) { if (J1_humain_plays) { jeuHumain.Remove(c.Proprietes); } else { jeuIA.Remove(c.Proprietes); } } return(null); } else if ((cpt == 1)) //Si il y a une paire possible { if (J1_humain_plays) { J1_humain.AjouterPlis(c.Proprietes); //on rajoute la carte aux plis du joueur J1_humain.AjouterPlis(paires[0]); //on rajoute la carte paire aux plis du joueur if (tour == 1) { jeuHumain.Remove(c.Proprietes); //Si on est au tour du joueur, on enlève la carte jouée de son jeu } } else { J2_IA.AjouterPlis(c.Proprietes); J2_IA.AjouterPlis(paires[0]); if (tour == 1) { jeuIA.Remove(c.Proprietes); } } defosse.Remove(paires[0]); //on retire la carte paire de la défosse if ((c.Proprietes is Plante) && (paires[0] is Plante)) //si c'est une paire avec deux plantes, il faut gérer l'affichage différemment (voir RangerCartes) { Pli2Plantes = true; } foreach (GameCard e in cards) //on va trouver la GameCard qui correspond à notre carte paire { if (e.Proprietes.Id == paires[0].Id) { for (int i = 0; i < 12; i++) { if (defosseGameCard[i] != null) { if (e.Proprietes.Id == defosseGameCard[i].Proprietes.Id) { coordDefosse[i] = Vector3.zero; //puisqu'on enlève une carte de la défosse, son emplacement devient libre defosseGameCard[i] = null; paires.Clear(); return(e); } } } } } } else if (cpt == 2) { Debug.Log("On est passé ici"); Pli2Choix = true; } else if (cpt == 3) { gameCard3choix = CheckCards3choix(c, paires, tour); //on récupère la liste avec les 3 cartes possibles //Il faut maintenant gérér le problème de Pli2Plantes : il faut savoir quelle plante a été posée dans quelle ordre if (c.Proprietes.Mois == Mois.Decembre) //Pour le mois de décembre il y a 3 plantes { Pli3Plantes = true; if (!(c.Proprietes is Plante)) { Pli3ChoixTourPlante1 = 2; Pli3ChoixTourPlante2 = 3; Pli3ChoixTourPlante3 = 4; } else if (!(gameCard3choix[0].Proprietes is Plante)) { Pli3ChoixTourPlante1 = 1; Pli3ChoixTourPlante2 = 3; Pli3ChoixTourPlante3 = 4; } else if (!(gameCard3choix[1].Proprietes is Plante)) { Pli3ChoixTourPlante1 = 1; Pli3ChoixTourPlante2 = 2; Pli3ChoixTourPlante3 = 4; } else if (!(gameCard3choix[2].Proprietes is Plante)) { Pli3ChoixTourPlante1 = 1; Pli3ChoixTourPlante2 = 2; Pli3ChoixTourPlante3 = 3; } } else { if (c.Proprietes.Mois != Mois.Novembre) { Pli2Plantes = true; } if (c.Proprietes is Plante) { Pli3ChoixTourPlante1 = 1; if (gameCard3choix[0].Proprietes is Plante) { Pli3ChoixTourPlante2 = 2; } else if (gameCard3choix[1].Proprietes is Plante) { Pli3ChoixTourPlante2 = 3; } else { Pli3ChoixTourPlante2 = 4; } } else if (gameCard3choix[0].Proprietes is Plante) { Pli3ChoixTourPlante1 = 2; if (gameCard3choix[1].Proprietes is Plante) { Pli3ChoixTourPlante2 = 3; } else { Pli3ChoixTourPlante2 = 4; } } else if (gameCard3choix[1].Proprietes is Plante) { Pli3ChoixTourPlante1 = 3; Pli3ChoixTourPlante2 = 4; } } Pli3Choix = true; GameCard.isRangee3 = false; GameCard.isRangee4 = false; return(gameCard3choix[0]); //on retourne la premiere carte des 3 pour en faire la paire, et on rangera les 2 autres depuis la classe GameCard } return(c); //inutile }