Il n'y a pas d'optimisation evidente, tu peux à la limite mettre une boucle pour rendre le code plus cours, mais cela ne changera pas le temps d'execution.
Karnaugh ne sera pas d'un très grand secours car les variables sont très largement indépendantes.
Note que ton code est faux :
(plateau[0][0] == plateau[0][1] == plateau[0][2] != VIDE)
veut dire (azerty == plateau[0][2] != VIDE)
avec azerty = (plateau[0][0] == plateau[0][1])
et un == vaut 0 si les deux membres sont différents et est non nul si les deux membres sont égaux, sans aucune précision sur sa valeur.
Au lieu de gagnant = plateau[0][0]; tu peux mettre return plateau[0][0]; car dès que tu as détecté un coup gagnant inutile d'en checher d'autre. (et tu met return VIDE à la fin)
# Re: Optimisation des tests pour un morpion.
Posté par xilun . En réponse au journal Optimisation des tests pour un morpion.. Évalué à 1.
Karnaugh ne sera pas d'un très grand secours car les variables sont très largement indépendantes.
Note que ton code est faux :
(plateau[0][0] == plateau[0][1] == plateau[0][2] != VIDE)
veut dire (azerty == plateau[0][2] != VIDE)
avec azerty = (plateau[0][0] == plateau[0][1])
et un == vaut 0 si les deux membres sont différents et est non nul si les deux membres sont égaux, sans aucune précision sur sa valeur.
Au lieu de gagnant = plateau[0][0]; tu peux mettre return plateau[0][0]; car dès que tu as détecté un coup gagnant inutile d'en checher d'autre. (et tu met return VIDE à la fin)