• # 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.

    Un truc assez simple et qui décorèle le data path du cotrol path :
    tu fais un tableau contenant les configurations gagantes, puis tu le parcours pour voir si il y a un truc qui matche...
    Ca clarifie le code, et il est facile de changer les fonctionnement du truc

    inline int lire_plateau(coord c)
    {
    return plateau[c.x][c.y];
    }

    typdef struct _coord
    {
    x : int;
    y: int;
    } coord;

    int NB_COUPS_GAGANTS = 8;
    coord [8][3] =
    {
    { {0,0}, {0,1}, {0,2} }, //première ligne horizontale
    { {1,0}, {1,1}, {1,2} }, //ligne 2 horizontale
    { {0,0}, {0,1}, {0,2} }, //ligne 3 horizontale
    { {0,0}, {1,0}, {2,0} }, //ligne 1 verticale
    ... //ajoute les deux lignes restatnes + les deux diagonales
    };

    for (int ii = 0 ; ii < NB_COUPS_GAGNANTS ; ii ++)
    {
    if (
    (lire_plateau(coord[ii][0]) == lire_plateau(coord[ii][1]))
    &&(lire_plateau(coord[ii][1]) == lire_plateau(coord[ii][2]))
    )
    return lire_plateau(coord[ii][0]);
    }
    return VIDE;