IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C Discussion :

Puissance 4 avec IA


Sujet :

C

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 3
    Par défaut Puissance 4 avec IA
    Bonjour,

    je commence la programmation en C en école d'ingenieur, et apres 2 mois de cours on nous demande de programmer un puissance 4, avec deux modes différents: 2 joueurs et contre l'ordinateur. Je crois avoir compris le systeme de boucle permettant de coder le mode 2 joueurs, mais je n'ai AUCUNE idée pour l'intelligence artificielle.. Pouvez vous me mettre dans la voie?

    Merci!

  2. #2
    Invité
    Invité(e)
    Par défaut
    J'ai fait ce projet en IUT.
    Bon, je suppose que ta grille de puissance quatre est représentée par un tableau. Il vaut mieux aussi que tu commences par coder le fonctionnement à deux joueurs, car tu vas réutiliser des trucs.
    En fait le point commun des IA de ce type de jeu (c'est pareil pour les échecs) est leur capacité à imaginer des coups d'avance.
    Donc à chaque pion joué par le joueur humain, tu vas faire une copie du tableau qui représente la grille. Cette copie va servir à l'IA à tester ses coups d'avance en plaçant des pions à différents endroits, et à garder le meilleur. Mais l'IA doit aussi anticiper les coups du joueur humain.
    Tu vas donc avoir une grille "virtuelle" dans laquelle l'IA va pouvoir placer des pions "virtuels", de sa couleur mais aussi de la couleur de l'humain (j'explique après pourquoi).

    - Le premier rôle de l'IA est d'aligner quatre pions. Si tu as déjà codé la partie à deux joueurs, tu dois avoir une fonction qui vérifie si quatre pions sont alignés quelque part, pour mettre fin à la partie le cas échéant (c'est cette fonction que tu vas appeler dans ta boucle et qui te sert de condition de sortie). L'IA va donc placer virtuellement un pion de sa couleur dans chaque colonne (en l'enlevant entre chaque bien sûr), et tester à chaque fois si quatre pions sont alignés. Si c'est le cas, cela veut dire que l'IA peut gagner, et donc l'IA doit jouer un de ses pions dans cette colonne.

    - Le deuxième rôle de l'IA est d'empêcher le joueur humain d'aligner quatre pions. L'IA va donc comme précédemment placer virtuellement un pion de la couleur du joueur humain dans chaque colonne et tester à chaque fois si quatre pions sont alignés. Si c'est le cas, cela veut dire qu'au prochain tour l'humain peut gagner, et donc l'IA doit le contrer en jouant un de ses pions dans cette colonne.

    - En dehors de ça, l'IA doit s'efforcer d'aligner deux, puis trois, puis quatre pions. L'idéal serait que ta fonction qui teste l'alignement de quatre pions puisse tester l'alignement de n'importe quel nombre de pions (en passant ce nombre en paramètre).
    A chaque tour, si on n'est pas dans les deux premiers cas, l'IA peut regarder si elle peut aligner deux ou trois pions quelque part. Ca fonctionne de la même façon que le premier cas, sauf qu'on ne teste pas 4 pions.
    Pareil, si l'humain a deux pions alignés, l'IA peut l'empêcher d'en mettre un troisième, de la même façon que dans le deuxième cas.

    - Si tu n'es pas dans ces trois cas, l'IA peut jouer dans une colonne au hasard. Ca ne devrait pas arriver souvent à part au début.

    Je me souviens aussi que j'avais dû implémenter un cas particulier pour contrer le coup classique où le joueur aligne trois pions horizontalement au milieu de la grille, ce qui lui permet ensuite de gagner par la gauche et par la droite. En gros il faut que l'IA réagisse à ce coup là dès le deuxième, voire le premier pion placé au centre, sinon c'est foutu pour elle.

    Voilà pour une IA basique. Elle n'est capable de prévoir qu'un coup d'avance, mais pour un puissance 4 c'est déjà pas mal si tu fais ça, surtout avec deux mois de cours.

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 3
    Par défaut
    merci j'y vois déjà beaucoup plus clair, je vais essayer de coder tout ca

Discussions similaires

  1. Fonction puissance, avec des decimales
    Par n0o38 dans le forum Langage
    Réponses: 4
    Dernier message: 01/07/2007, 00h40
  2. fonction power avec une puissance non entière
    Par atshoom dans le forum Algorithmes et structures de données
    Réponses: 1
    Dernier message: 27/06/2007, 03h30
  3. Problème avec les puissances
    Par Hoopsy dans le forum C++Builder
    Réponses: 8
    Dernier message: 25/06/2007, 23h40
  4. puissance 4 avec des images
    Par Gilllouman dans le forum Windows Forms
    Réponses: 2
    Dernier message: 11/04/2007, 17h48
  5. Problème avec la fonction pow(les puissance)
    Par Clément76 dans le forum C
    Réponses: 10
    Dernier message: 04/10/2006, 12h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo