コード例 #1
0
    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
    }