• [^] # Re: Optimisation des tests pour un morpion.

    Posté par (site web personnel) . En réponse au journal Optimisation des tests pour un morpion.. Évalué à 1.

    moi je ferais une fonction qui te génère un tableau des gagnants mais pour les 2 couleurs.

    genre

    position gagnant[3][nbg][3][3];

    gagnant_generate( * gagnant); <- fait une fois au début du jeu.

    eval ( position tab[3][3], position gagnant[nbg][3][3])
    {
    for (i = 0;i<nbg;i++)
    if(!!memcomp(tab,gagnant[0][i]))
    return (0);
    for (i = 0;i<nbg;i++)
    if(!!memcomp(tab,gagnant[1][i]))
    return (1);
    for (i = 0;i<nbg;i++)
    if(!!memcomp(tab,gagnant[2][i]))
    return (3);
    }

    C'est plus bourrin mais plus linéaire. Cela devrait être le code le plus rapide et de loin. Si tu veux encore plus te faire chier, tu codes l'info sur 2 bits, un tableau de jeux tient sur 18 bits et la fontion memcomp est un simple teste d'égalité sur un entier de 32 bits.

    "La première sécurité est la liberté"