better test

This commit is contained in:
Mylloon 2022-12-04 18:57:33 +01:00
parent afcf0f07a4
commit 155d212a85
Signed by: Anri
GPG key ID: A82D63DFF8D1317F

View file

@ -1,4 +1,5 @@
#include "../includes/jeu.h" #include "../includes/jeu.h"
#include <time.h>
Test_Data *nouveau_test_data(int test, int profondeur) { Test_Data *nouveau_test_data(int test, int profondeur) {
Test_Data *res = malloc(sizeof(Test_Data)); Test_Data *res = malloc(sizeof(Test_Data));
@ -12,23 +13,56 @@ Test_Data *nouveau_test_data(int test, int profondeur) {
void free_test_data(Test_Data *test_data) { free(test_data); } void free_test_data(Test_Data *test_data) { free(test_data); }
void run_tests(void) { void run_tests(void) {
printf("Test alphabeta...\n"); int repetions = 5;
int max_profondeur = 6;
printf("Lancement des tests, on va jusqu'à une profondeur de %d avec une "
"moyenne de %d répétitions.\n",
max_profondeur, repetions);
clock_t t0;
double delta1, delta2;
for (int i = 1; i < max_profondeur + 1; ++i) {
delta1 = 0;
for (int j = 0; j < repetions; ++j) {
Jeu *jeu = nouvelle_partie(); Jeu *jeu = nouvelle_partie();
Test_Data *test = nouveau_test_data(1, 8); Test_Data *test = nouveau_test_data(1, i);
clock_t ta, td; t0 = clock();
td = clock();
// Lance le jeu en mode test avec 2 alpha-bêta // Lance le jeu en mode test avec 2 alpha-bêta
deroulement_partie(jeu, ALPHABETA, ALPHABETA, test); deroulement_partie(jeu, ALPHABETA, ALPHABETA, test);
ta = clock(); delta1 += ((double)(clock() - t0)) / CLOCKS_PER_SEC;
printf("Alphabêta : %ld\n", ta - td);
free_jeu(jeu); free_jeu(jeu);
free_test_data(test); free_test_data(test);
} }
delta1 /= repetions;
printf("Profondeur de %d (moyenne de %d tests) ->\t Alphabêta = %fs\t",
i, repetions, delta1);
delta2 = 0;
for (int j = 0; j < repetions; ++j) {
Jeu *jeu = nouvelle_partie();
Test_Data *test = nouveau_test_data(1, i);
t0 = clock();
// Lance le jeu en mode test avec 2 alpha-bêta
deroulement_partie(jeu, MINIMAX, MINIMAX, test);
delta2 += ((double)(clock() - t0)) / CLOCKS_PER_SEC;
free_jeu(jeu);
free_test_data(test);
}
delta2 /= repetions;
printf("| Minimax = %fs\t | Différence (m - a) = %fs\n", delta2,
delta2 - delta1);
}
}