• # Re: Optimisation des tests pour un morpion.

    Posté par . En réponse au journal Optimisation des tests pour un morpion.. Évalué à 0.

    int ennemie;
    déclarée mais jamais utilisée.

    Si tu trouves un gagnant, inutile de continuer à tester.
    Maintenant, histoire de clarifier le code, j'aurais codé ca comme ca :
    struct {
    char orig_x;
    char orig_y;
    char dir_x;
    char_dir_y;
    } directions[] = {
    /* lignes */
    { 0, 0, 1, 0 },
    { 0, 1, 1, 0 },
    { 0, 2, 1, 0 },
    /* colonnes */
    {0, 0, 0, 1 },
    {1, 0, 0, 1 },
    {2, 0, 0, 1},
    /* diags */
    {0, 0, 1, 1},
    {0, 2, 1, -1}
    };

    int eval_plateau()
    {
    int i;
    for (i = 0; i < 8; i++)
    {
    struct dir = directions[i];
    if (plateau[dir.orig_x][dir.orig_y] != VIDE)
    if (plateau[dir.orig_x][dir.orig_y] == plateau[dir.orig_x + dir.dir_x][dir.orig_y + dir_y])
    if (plateau[dir.orig_x + dir.dir_x * 2][dir.orig_y + dir.dir_y * 2] == plateau[dir.orig_x + dir.dir_x][dir.orig_y + dir_y])
    return plateau[dir.orig_x][dir.orig_y];
    }
    return VIDE;
    }