Prépa Code Connexion Inscription

Exercices de programmation pour classes préparatoires

← Retour aux exercices

Nim : position gagnante par minmax

python ★★★★☆

On considere une version simple du jeu de Nim : un tas contient n allumettes. A tour de role, chaque joueur retire 1, 2 ou 3 allumettes. Celui qui prend la derniere gagne.

Ecrire une fonction position_gagnante_nim(n, joueur) qui renvoie True si le joueur dont c'est le tour peut gagner en jouant de facon optimale (strategie parfaite), False sinon.

Le parametre joueur vaut 0 ou 1 et designe le joueur courant. La valeur renvoyee ne depend que de n (la symetrie du jeu fait que le joueur courant est toujours celui qu'on considere). Le parametre est present pour permettre une ecriture generique de la recurrence minmax.

Contrainte : implementer l'algorithme minmax recursif, sans memoisation, en considerant les 3 coups possibles. Les tests se limiteront a n <= 20.

Exemples

AppelRésultat attendu
position_gagnante_nim(0, 0) False
position_gagnante_nim(1, 0) True

Votre code

Connectez-vous pour soumettre du code.