Bonjour, Bonsoir à toutes et à tous.
Je suis actuellement en train de créer un jeu de morpion simple en console.
J'ai programmé l'intelligence artificielle, (le jeu n'est pas fini mais ce sera secondaire), mais j'ai plusieurs soucis avec.
Premièrement, le premier problème vient, je pense, de moi. car je ne sais pas où placer la ligner de code pour lui faire jouer son meilleur coup.
Après de multiples essais, si je place cette ligne n'importe où où cela me semble logique, le programme cesse de fonctionner et renvoies :
soit "process returned 255 (0xFF)" ou "Process returned -1073741819 (0xC0000005)".
Je programme sur CodeBolcks.
Merci d'avance a tous ceux qui m'aideront !

Le code source de 'IA :

Code c : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
int IA_joue(int i, int j, int joueur)
{
 
    noeuds++;
    int joueur_courrrant = joueur;
    ///Donc soit ROND || CROIX
    int joueur_suivant;
    int multiplicateur;
    int maxi, maxj, e;
 
    if(joueur == ROND)
    {
        joueur_suivant = CROIX;
        multiplicateur = 1;
    }
    else
    {
        joueur_suivant = ROND;
        multiplicateur = -1;
    }
 
    int eval = INFINI * multiplicateur;
    ///multiplicateur varie en fonction
    ///du joueur actuel.
 
    for(i=0;i<3;i++)
    {
        for(j=0;j<3;j++)
        {
            if(plateau_jeu[i][j] == VIDE)
                ///Si la case est vide :
            {
                maxi = i;
                maxj = j;
 
                jouer_coup(i, j, joueur_courrrant);
                /// On joue le coup.
 
                ///afficherPlateau();
                if(gagnant_jeu(joueur_courrrant) == joueur_courrrant)
                    ///Si un des 2 joueurs a gagné :
                {
                    eval = multiplicateur;
                     ///retourne l'evaluation (donc soit 1 || -1)
                }
 
                else
                {
                    e = IA_joue(maxi, maxj, joueur_suivant);
                    /// e sera égal a l'evaluation renvoyée par minmax.
 
                    if((joueur_courrrant == ROND && e < eval) ||
                       (joueur_courrrant == CROIX && e > eval))
                       {
                           eval = e;
                       }
                }
 
                annuler_coup(i, j, joueur_courrrant);
                ///Annule le(s) coup(s) joué(s).
            }
        }
    }
 
    return eval;
 ///A quel moment est censée jouer l'IA ?
 /// hypothèses :
    ///avant / après return ?
    ///hors de la fonction minMax ?
    /// dans le main ?
    /// pendant les boucles for() ?
 
}

Si vous avez besoin d'une quelconque autre partie du code, Je vous la mettrais sans problème.
Merci a tous.