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]}."); } }
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); }
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."); }