Stratégie - utilisation de l'algèbre binaire

Les principes

Nous utilisons la représentation binaire, appelée aussi en base 2, des nombres et l'opération où exclusif binaire de deux nombres qui consiste à faire des où exclusifs sur les bits de même rang dans la représentation binaire (un où exclusif entre 2 bits donne 0 si les deux bits sont identiques et 1 dans le cas contraire). Par exemple 5 est représenté en binaire par 101, 3 est représenté par 011, le résultat du où exclusif binaire est 110 soit 6 en décimal. Nous noterons ^ l'opérateur du où exclusif binaire, comme dans les langages informatiques, ce qui donnera : 5^3=6.

L'évaluation de la situation

L'évaluation de la situation de jeu dépend de l'option de fin de jeu : option celui qui est contraint de ramasser le dernier objet perd appelée "misère", ou option celui qui peut ramasser le dernier objet gagne appelée "normale".

Soit n1, n2, n3 et n4 les nombres d'allumettes des rangées. On commence par le calcul de :

s= n1 ^ n2 ^ n3 ^ n4

Dans l'option dite"normale", la situation est gagnante si s=0.

Dans l'option dite "misère", s'il y a au moins un nombre supérieur à 1 la situation est gagnante si s=0, sinon la situation est gagnante si s=1.

La recherche de coups gagnants

Si le jeu est dans une situation gagnante, il n'y a pas de possibilité de trouver un coup gagnant. Nous nous placerons donc uniquement lorsque la situation n'est pas gagnante et qu'il reste encore des allumettes.

On examine les rangées tour à tour, on commence par calculer :

di=ni-s ^ni.

Dans l'option dite "normale" et dans l'option dite "misère" avec plusieurs rangées ayant plus d'une allumette, si di est supérieur à 0, enlever ce nombre à la rangée i est un coup gagnant.

Dans l'option dite "misère" avec une seule rangée ayant plus d'une allumette, le coup gagnant est d'enlever à cette rangée toutes les allumettes sauf une si di=ni, et sinon toutes les allumettes (ainsi on laisse un nombre impair de rangées avec une allumette).

Dans l'option dite "misère" avec aucune rangée ayant plus d'une allumette, enlever l'allumette d'une rangée ayant une allumette est un coup gagnant (la position est supposée être non gagnante et le jeu non terminé, il y a 2 ou 4 rangées avec une allumette).