예제 #1
0
    static void Championnat(int nombre_joueurs)
    {
        int N = nombre_joueurs;

        JMCTSS[] joueurs = new JMCTSS[N];
        for (int i = 0; i < N; i++)
        {
            joueurs[i] = new JMCTSS(i + 1, 100);
        }
        PositionTron position;
        PartieS      partie;

        int[]     victoires = new int[N];
        Stopwatch watch     = new Stopwatch();

        watch.Start();
        for (int i = 0; i < N; i++)
        {
            for (int j = 0; j < N; j++)
            {
                if (i != j)
                {
                    position = new PositionTron(1, 1, 3, 3);
                    partie   = new PartieS(joueurs[i], joueurs[j], position);
                    partie.Commencer(false);
                    if (partie.r < 0)
                    {
                        victoires[j]++;
                    }
                    if (partie.r > 0)
                    {
                        victoires[i]++;
                    }
                }
            }
            Console.Write($"{i} ");
        }
        watch.Stop();
        Console.WriteLine();
        Console.WriteLine("Time elapsed: {0}", watch.Elapsed);
        for (int i = 0; i < N; i++)
        {
            Console.WriteLine($"Parametre a = {i + 1}, nombre de victoires: {victoires[i]}.");
        }
    }
예제 #2
0
    public static void Main()
    {
        //-----------------------------Deux joueurs randoms  -----------------------------------------------------------

        /*Random gen = new Random();
         * PositionTron jeu = new PositionTron(1, 1, 3, 3);
         * jeu.Affiche();
         * do
         * {
         *  int b1 = gen.Next(0, jeu.NbCoups1);
         *  int b0 = gen.Next(0, jeu.NbCoups0);
         *  jeu.EffectuerCoup(b1, b0);
         *  jeu.Affiche();
         * } while (jeu.Eval == 0);
         * Console.WriteLine(jeu.Eval);*/

        //------------------------------Deux joueurs humaines ---------------------------------------------------------
        //JoueurS j1 = new JoueurHumainTron();
        //JoueurS j0 = new JoueurHumainTron();
        //PartieS par = new PartieS(j1, j0, new PositionTron(1, 1, 3, 3));
        //par.Commencer();


        //---------------1 joueur random J1 VS 1 joueur random J0--------------------------------------------------------
        //JoueurS j1 = new JH();
        //JoueurS j0 = new JH();
        //PartieS par = new PartieS(j1, j0, new PositionTron(1, 1, 3, 3));
        //par.Commencer();

        //----------------1 joueur humaine J1 VS 1 joueur random J0-------------------------------------------------------
        //JoueurS j1 = new JoueurHumainTron();
        //JoueurS j0 = new JH();
        //PartieS par = new PartieS(j1, j0, new PositionTron(0, 2, 3, 4));
        //par.Commencer();

        //----------------1 joueur humaine J1 VS 1 joueur JMCTSS J0-------------------------------------------------------
        //JoueurS j1 = new JoueurHumainTron();
        //JMCTSS j0 = new JMCTSS(2, 100);
        //PartieS partie = new PartieS(j1, j0, new PositionTron(1, 1, 3, 3));
        //partie.Commencer();


        //----------------1 joueur JMCTSSp J1 VS 1 joueur JMCTSSp J0-------------------------------------------------------
        //JMCTSSp j0 = new JMCTSSp(15, 100, 4);
        //JMCTSSp j1 = new JMCTSSp(40, 100, 2);
        //PartieS partie = new PartieS(j0, j1, new PositionTron(0, 2, 3, 3));
        //partie.Commencer();


        //-------------------1 joueur JMCTSS J1 VS 1 joueur random J0------------------------------------------------------------------
        //JMCTSSp j1 = new JMCTSSp(2,100,4);
        //JoueurS j0 = new JH();
        //PartieS partie = new PartieS(j1, j0, new PositionTron(1, 1, 3, 3));
        //partie.Commencer();


        //----------------------1 joueur JMCTSS J1 VS 1 joueur JMCTSSP J0------------------------------------------------------------------
        JMCTSSP j1     = new JMCTSSP(5, 100, 4);
        JMCTSSP j0     = new JMCTSSP(5, 100, 4);
        PartieS partie = new PartieS(j1, j0, new PositionTron(1, 1, 3, 3));

        partie.Commencer();


        //-----------------------Championnat de JMCTSS et Championnat de JMCTSSp------------------------------------------------------------------
        //Championnat(50);
        //Championnatp(50);

        //-----------------------Methode VersusTron entre JMCTSS et JMCTSSp----------------------------------------------

        //VersusTron("JMCTSS", "JMCTSSp", 100);
    }
예제 #3
0
    static void VersusTron(string Joueur1 = "Humain", string Joueur0 = "JMCTSS", int NbParties = 4)
    {
        int     a1       = 22;
        int     a2       = 22;
        int     temps    = 100;
        int     NbThread = 2;
        JoueurS j1;
        JoueurS j0;

        switch (Joueur1)
        {
        case "JMCTSS":
            j1 = new JMCTSS(a1, temps);
            break;

        case "JMCTSSp":
            j1 = new JMCTSSp(a1, temps, NbThread);
            break;

        default:
            j1 = new JoueurHumainTron();
            break;
        }
        switch (Joueur0)
        {
        case "Humain":
            j0 = new JoueurHumainTron();
            break;

        case "JMCTSSp":
            j0 = new JMCTSSp(a2, temps, NbThread);
            break;

        default:
            j0 = new JMCTSS(a2, temps);
            break;
        }
        PositionTron p;
        PartieS      partie;
        int          score_j1 = 0;
        int          score_j0 = 0;
        bool         start    = true;

        Console.WriteLine("Score : (J1 - J0)");
        for (int i = 0; i < NbParties; i++)
        {
            p      = new PositionTron(1, 2, 3, 4);
            partie = new PartieS(j1, j0, p);
            partie.Commencer(true);

            if (partie.r < 0)
            {
                score_j1++;
            }
            else if (partie.r > 0)
            {
                score_j0++;
            }
            start = !start;
            Console.WriteLine($"{score_j1} - {score_j0}");
        }
        Console.WriteLine($"Joueur1 : {Joueur1}({a1},{temps}) VS Joueur0 : {Joueur0}({a2},{temps}) sur {NbParties} Parties, " +
                          $"avec nombre de Thread {NbThread}.");
        Console.WriteLine($"Le joueur1 a gagné {score_j1} parties.");
        Console.WriteLine($"Le joueur0 a gagné {score_j0} parties.");
    }