• [^] # Re: code

    Posté par (site web personnel) . En réponse au message ia d'échec.... Évalué à 3.

    oué effectivement mes conseils ne change pas grand chose à tes problèmes :)
    Pour les fonctions, ne pas les mettres dans un .h surtout, ça ne sert pas à celà :)
    Le corps des fonctions dois toujours être placé dans des fichiers .c. Dans le .h tu déclare juste les prototypes.
    Je m'explique :
    dans fonctions.h :
    void mafonction(int a); // c'est juste une déclaration (.h --> header --> en-tête)

    dans fonctions.c :
    #include "fonctions.h" // j'indique ici les déclarations histoire que le compilo vérifie que ca colle bien

    void mafonction(int a){
    ici je fais le boulot
    }

    dans autre.c :
    #include "fonctions.h" // j'indique ici que je veux utiliser les fonctions dont les signatures sont dans fonctions.h

    à la compilation :
    gcc -c fonctions.c --> créer le module compilé fonctions.o
    gcc -c autre.c --> créer le module compilé autre.o
    gcc -o monprogram fonctions.o autre.o --> créer le programme final à partir des 2

    Un conseil, achète un bouquin de C ;)

    Pour ce qui est de l'IA, il existe des algo sur le net déjà écrit en C... je penses que tu pourras les utiliser. Voici un exemple de code source de programme d'échec :
    http://tict.ticalc.org/downloads/Chess-5.00.zip(...)
    http://tict.ticalc.org/downloads/crafty179.zip(...)
    tu as surement moyen de réutiliser les algos...

    sinon l'algo le plus simple, algo du minmax :
    - tu calcules tous les coups possibles et tu prends le meilleur. (manger une tour est meilleur que manger un pion, etc. : il faut classer les coups)
    - tu calcules la même chose pour le coup de l'humain en ayant supposer un coup pour la machine : celà te permet d'aller voir un coup en avant, d'anticiper. Tu peux normalement faire celà de manière récursive sur n-coup pour anticiper le plus loins possible dans le temps, avec toujours à chaque fois la même technique : tu choisis le meilleur coup que tu es trouvé.