Exemplo n.º 1
0
    public Carte DemarrerIA()
    {
        manager         = GameObject.FindGameObjectWithTag("Manager");
        jeu_IA          = manager.GetComponent <GameManager>().jeuIA;
        jeu_Humain      = manager.GetComponent <GameManager>().jeuHumain;
        defosse         = manager.GetComponent <GameManager>().defosse;
        nb_carte_pioche = manager.GetComponent <GameManager>().pioche.Count;
        //defosse = manager.GetComponent
        Joueur_humain = GameManager.J1_humain;
        Joueur_IA     = GameManager.J2_IA;

        // Si c'est l'IA qui joue
        if (GameManager.J1_humain_plays == false)
        {
            nb_cartes_joueur_contre = manager.GetComponent <GameManager>().jeuHumain.Count;
            jeu_current_player      = jeu_IA;
        }
        // Si c'est l'humain qui joue
        else
        {
            nb_cartes_joueur_contre = manager.GetComponent <GameManager>().jeuIA.Count;
            jeu_current_player      = jeu_Humain;
        }

        Carte tmp;

        //Debug.Log(jeuEnnemi);
        //Debug.Log(defosse);
        //Debug.Log(J1.PlisLumiere.Count);
        //Debug.Log(J2.PlisPlante.Count);

        // J1, c'est l'humain
        // J2, c'est l'IA
        if (MenuManager.typeJeu == 1)
        {  //jeu normal, il n'y a qu'une seule IA
            switch (MenuManager.niveauIAnormal)
            {
            case 1:
                last_IA_use = IA_v.version_1;
                tmp         = IA_new(IA_v.version_1);
                break;

            case 2:
                last_IA_use = IA_v.version_2;
                tmp         = IA_new(IA_v.version_2);
                break;

            case 3:
                last_IA_use = IA_v.version_3;
                tmp         = IA_new(IA_v.version_3);
                break;

            case 4:
                last_IA_use = IA_v.version_4;
                tmp         = IA_new(IA_v.version_4);
                break;

            default:
                last_IA_use = IA_v.version_3;
                tmp         = IA_new(IA_v.version_3);
                break;
            }
            if (jeu_IA.Contains(tmp) == false)
            {
                Debug.LogError("L'IA m'a donné une carte qui n'était pas à l'IA");
            }


            return(tmp);
        }

        else
        {
            if (GameManager.J1_humain_plays == true)
            {
                switch (MenuManager.niveauIA1)
                {
                case 1:
                    tmp = IA_new(IA_v.version_1);
                    break;

                case 2:
                    tmp = IA_new(IA_v.version_2);
                    break;

                case 3:
                    tmp = IA_new(IA_v.version_3);
                    break;

                case 4:
                    tmp = IA_new(IA_v.version_4);
                    break;

                default:
                    tmp = IA_new(IA_v.version_3);
                    break;
                }
                if (jeu_Humain.Contains(tmp) == false)
                {
                    Debug.LogError("L'IA m'a donné une carte qui n'appartient pas à J1_humain");
                }
                return(tmp);
            }
            else
            {
                switch (MenuManager.niveauIA2)
                {
                case 1:
                    tmp = IA_new(IA_v.version_1);
                    break;

                case 2:
                    tmp = IA_new(IA_v.version_2);
                    break;

                case 3:
                    tmp = IA_new(IA_v.version_3);
                    break;

                case 4:
                    tmp = IA_new(IA_v.version_4);
                    break;

                default:
                    tmp = IA_new(IA_v.version_3);
                    break;
                }
                if (jeu_IA.Contains(tmp) == false)
                {
                    Debug.LogError("L'IA m'a donné une carte qui n'appartient pas à J2_IA");
                }
                return(tmp);
            }
        }
    }
Exemplo n.º 2
0
    public Carte IA_new(IA_v version)
    {
        List <Carte> jeu_player;
        Joueur       moi;
        Joueur       ennemie;

        IA.carte_defosse = null;

        if (GameManager.J1_humain_plays == true)
        {
            jeu_player = jeu_Humain;
            moi        = Joueur_humain;
            ennemie    = Joueur_IA;
        }
        else
        {
            jeu_player = jeu_IA;
            moi        = Joueur_IA;
            ennemie    = Joueur_humain;
        }


        if (GameManager.J1_humain_plays == true)
        {
            Debug.LogWarning("IA pour humain");
        }
        else
        {
            Debug.LogWarning("IA pour IA");
        }
        List <Combinaisons> combinaisons;
        List <Carte_IA>     proba_par_carte;
        List <Carte_IA_v3>  proba_par_paire;
        List <Carte_IA_v4>  proba_par_paire_avec_defense;

        if (version == IA_v.version_0)
        {
            return(IA_V0_aleatoire());
        }

        combinaisons = IA_V1_load_probabilites(moi, ennemie);
        if (version == IA_v.version_1)
        {
            return(IA_V1_choose_best_carte(combinaisons));
        }

        proba_par_carte = IA_V2_load_proba_par_carte(combinaisons);
        if (version == IA_v.version_2)
        {
            return(IA_V2_choose_best_card(proba_par_carte));
        }

        proba_par_paire = IA_V3_load_paires(proba_par_carte);
        if (version == IA_v.version_3)
        {
            if (proba_par_paire.Count > 0)
            {
                return(IA_V3_choose_best_card_to_play(proba_par_paire));
            }
            // Si jamais il n'y a aucune combinaison qui marche, on prend juste la carte qui a le plus faible poids, c'est à dire on applique l'IA V2
            else
            {
                return(IA_V2_choose_best_card(proba_par_carte));
            }
        }
        proba_par_paire_avec_defense = IA_V4_load_paires(proba_par_paire);
        if (version == IA_v.version_4)
        {
            if (proba_par_paire_avec_defense.Count > 0)
            {
                return(IA_V4_choose_best_card_to_play(proba_par_paire_avec_defense));
            }
            else
            {
                return(IA_V4_defosse_card(proba_par_carte));
            }
        }

        // Juste pour faire taire le compilo mais normalement, on ne devrait jamais sortir de la fonction ici
        return(jeu_player[0]);
    }