Un jeu d'allumettes.


Voici les règles d'un petit jeu d'alumettes dont vous trouverez 2 versions:
* une où le progrmme ne fait que vérifier l'exactitude des choix des 2 joueurs et annonce le vainqueur
* dans la 2ème, le programme joue contre l'utilisateur et utilise une stratégie qui fait le fait gagner à tous les coups (si ça lui est possible)

NOTE: ce jeu est extrait du livre 'Jeux et casse-tête à programmer' de Jacques Arsac, paru chez Dunod sous le # ISBN 2-04-015763-8

Les règles:
Chaque joueur puise à tour de rôle de 1 à p allumettes dans un tas comprenant initialement N allumettes. Celui qui prend la dernière allumette gagne le jeu.

Le programme vérifie seulement la validité des choix des 2 joueurs et désigne le vainqueur.
entier N, p, Nall, i
N ß 16
p ß 3
i ß 0
répéter
  i ß i+1
  si i mod 2=0 alors écrire "Joueur 1:"
  sinon écrire "Joueur 2:"
  fsi
  écrire "Reste(nt) ",N," allumette(s)"
  répéter
    écrire "Nombre d'allumettes="
    lire Nall
  jusqu'à (Nall£p) et (Nall³1) et (NAll£N)
  N ß N-NAll
jusqu'à N=0
si i mod 2=0 alors écrire "Bravo, joueur 1:"
sinon écrire "Bravo, joueur 2:"
fsi

Dans cette version, les règles ne changent pas mais cette fois, un des 2 joueurs sera l'ordinateur qui appliquera la stratégie (gagnante) suivante: si l'adversaire prend l'allumette dont le numéro modulo (p+1) est 0, celui-ci perdra la partie et par conséquent l'ordinateur la gagnera!
entier N, p, Nall, i
N ß 16
p ß 3
i ß RANDOM(2)
répéter
  i ß i+1
  écrire "Reste(nt) ",N," allumette(s)"
  si i mod 2=0 alors répéter
                       écrire "Nombre d'allumettes="
                       lire Nall
                     jusqu'à (Nall£p) et (Nall³1) et (NAll£N)
  sinon Nall ß N mod (p+1)
        si Nall=0 alors Nall ß 1+RANDOM(p)
        fsi
        écrire "Le PC enlève ", Nall, " allumette(s)"
  fsi
  N ß N-Nall
jusqu'à N=0
si i mod 2=0 alors écrire "Pas mal pour un humain J"
sinon écrire "Guess who's the best…"
fsi
Vous pouvez charger une version Delphi de ce jeu en cliquant ici


Page précédente.
Page d'accueil.