Résolu [Intelligence artificielle C#] Demande d'aide pour

iBOLD

Premium
Inscription
23 Novembre 2012
Messages
3 456
Réactions
1 489
Points
15 665
Salut à vous ! Avant toutes choses je vais vous expliquer le jeu pour que vous comprenez mieux ce que je cherche à faire. Donc c'est un jeu un peu du style du puissance 4, sauf que c'est un peut plus complexe. Il y a deux joueurs : l'humaine et le robot (IA) et ils s'affrontent sur un plateau, le joueur 1 choisis la pièce pour le joueur 2, et l'autre choisis où il veut la mettre, démonstration : et le but est d'avoir sur la même ligne / colonne / diagonale au moins un chiffre sur les 4 présents, exemple :

Donc voilà le jeu expliqué je vais maintenant vous parlez en quoi j'ai besoin de votre aide. J'essaie d'augmenter l’intelligence de la IA.

Voici mon niveau 0 pour le choix de la case ou il pose son pion :
Code:
 public int IACase0()
        {
            int i;
            for (i = 0; i <= 15; i++)
            {
                if (table[i] == VIDE)
                    return i;
            }
            return -1;
        }


Et voici ce que j'essaie de faire pour mon niveau 1 :
En gros j'essaie de faire que quand sur une la même ligne / colonne ou diagonale il y a déjà 3 pions ba en gros que l'IA mette son pion sur la case vide la ligne / colonne ou diagonale.

Voici ce que j'ai essayé de faire pour l'instant seulement pour la ligne 1 ( mais ça ne marche pas ) :
Code:
  public int IACase1()
        {
            int i;
       

            for (i = 0; i <= 15; i++)
            {

                if (table[i] == VIDE)
                {


                    if ((table[0] & table[1] & table[2]) != VIDE)
                    {
                        table[i] = 3;
                        return i;
                    }

                    if ((table[1] & table[2] & table[3]) != VIDE)
                    {
                        table[i] = 0;
                        return i;
                    }

                    if ((table[0] & table[2] & table[3]) != VIDE)
                    {
                        table[i] = 1;
                        return i;
                    }

                    if ((table[0] & table[1] & table[3]) != VIDE)
                    {
                        table[i] = 2;
                        return i;
                    }

                }
             

            }
            return -1;
        }


Merci de votre aide :)
 

Sekki

Membre
Inscription
3 Mars 2016
Messages
19
Réactions
9
Points
161
Yop!

J'ai jeter un coup d’œil rapide à ton code et j'ai remarquer ta fonction qui utilise if else
Le problème est très certainement le suivant et pardons si je me trompe.


Quand tu utilise plusieurs conditions de if en forme de suite, tu dois ajouter une condition else.

 
Haut