Jeu de nim

Modélisation

Modéliser le jeu est très important et demande réflexion et compréhension du jeu, il faut réussir à ne garder que l'essentiel. Dans l'ordianteur c'est avec notre modélisation que sera enregistré le jeu.

En maths on travaille énormément sur la modélisation (un droite du plan c'est modélisable par trois nombres, un cercle par un centre et un rayon,...) donc les matheux sont normalement un peu plus alise pour modéliser.

Voilà trois facons de modéliser le jeu de nim :

Le nombre initial d'allumettes est plus une constante qu'une variable en jeu mais rien n’empêche de la faire varier dans les options par exemple (dans ce cas elle devient variable).

On utilisera la deuxième modélisation par la suite.

Partie graphique.

Affichage

Projet

Faire une fonction dessine(joueur,reste_a_jouer) qui va dessiner le jeu dans l'état donné en paramètre.

reste_a_jouer :
joueur :

Événement

Projet

Faire une fonction action_clique() qui va être lancée après avoir détecté un clique du joueur (on ne récupère donc pas un événement dans la fonction), la fonction doit récupérer la position du clique et retourner le numéro de l'allumette cliquée (-1) si on ne clique pas sur une allumette et 0 représente l'allumette toute à droite.

La fonction ne doit pas s'occuper des allumettes déjà ôtées (une autre fonction s'en occupera) et doit avoir les même résultats qu'il y a ait 1 ou 9 allumettes.


Partie interne.

Vérification.

Projet

Faire une fonction joue_coup(reste_a_jouer,joueur,coup), La fonction doit vérifier si le clique du joueur est valide, pour rappel la fonction précédente retourne un nombre qui représente l'allumette choisie mais peut être que l'allumette n'existe plus car a déjà été ôtée ou peut être que le joueur veut ôter plus que 3 allumettes contrairement aux règles. En retour la fonction doit retourner un tuple donnant la nouvelle valeur de reste_a_jouer et de joueur.

Voici un exemple dans une situation où il reste 5 allumettes.


Réaliser un écran de fin.

Projet

Réaliser une fonction victoire(joueur) qui affiche la victoire d'un joueur.


Faire le jeu.

Projet

Réaliser une fonction jeu(joueur) qui propose un jeu de nim..