Un jeu de calcul mental

Voici un jeu de calcul mental.

Avant de vous expliquer les règles, je tenais à remercier mes élèves de Cinquième (Arthur, Baptiste et Hippolyte et une dizaine d’autres élèves de la 5ème 4) qui ont accepté de jouer à une version cartes du jeu et qui m’ont aidé à consolider les règles du jeu.

Ce jeu se joue seul ou à deux. On vous demande à chaque tour de trouver un multiple plus proche d’un autre nombre. Plus on a de bonnes réponses, plus on accumule des points et plus le multiple à trouver est grand.

L’algorithme ci-dessous permet de jouer sur AlgoBox au jeu. Vous pourrez choisir le nombre de manches joués, le nombre de joueurs et la difficulté (plus la difficulté est élevée, plus les nombres à trouver seront très grand).

VARIABLES
manches EST_DU_TYPE NOMBRE
k EST_DU_TYPE NOMBRE
joueurs EST_DU_TYPE NOMBRE
difficulte EST_DU_TYPE NOMBRE
nbmin EST_DU_TYPE NOMBRE
mult EST_DU_TYPE NOMBRE
multj1 EST_DU_TYPE NOMBRE
multj2 EST_DU_TYPE NOMBRE
reponse EST_DU_TYPE NOMBRE
repj1 EST_DU_TYPE NOMBRE
repj2 EST_DU_TYPE NOMBRE
reponse EST_DU_TYPE NOMBRE
succj1 EST_DU_TYPE NOMBRE
succj2 EST_DU_TYPE NOMBRE
scorej1 EST_DU_TYPE NOMBRE
scorej2 EST_DU_TYPE NOMBRE
DEBUT_ALGORITHME
AFFICHER "Jeu en combien de manches ?"
LIRE manches
AFFICHER "Combien de joueurs (1-2) ?"
LIRE joueurs
AFFICHER "Choix de la difficulté (0-5) ?"
LIRE difficulte
nbmin PREND_LA_VALEUR 1
scorej1 PREND_LA_VALEUR 0
scorej2 PREND_LA_VALEUR 0
succj1 PREND_LA_VALEUR 0
succj2 PREND_LA_VALEUR 0
multj1 PREND_LA_VALEUR 0
multj2 PREND_LA_VALEUR 0
AFFICHER* "---------------------------------------------------"
AFFICHER* "Le jeu commence !"
POUR k ALLANT_DE 1 A manches
  DEBUT_POUR
   AFFICHER* "---------------------------------------------------"
   AFFICHER "Manche "
   AFFICHER* k
   AFFICHER* "Au joueur 1 de jouer !"
   mult PREND_LA_VALEUR ALGOBOX_ALEA_ENT(0,10)
   multj1 PREND_LA_VALEUR multj1+mult
   SI (mult==0) ALORS
    DEBUT_SI
     AFFICHER* "JOKER !"
     succj1 PREND_LA_VALEUR succj1+1
    FIN_SI
   SINON
    DEBUT_SINON
     AFFICHER "Donner un nombre multiple de "
     AFFICHER* multj1
     AFFICHER "le plus proche supérieurement à "
     AFFICHER nbmin
     LIRE repj1
     reponse PREND_LA_VALEUR nbmin
      TANT_QUE (reponse%multj1!=0) FAIRE
       DEBUT_TANT_QUE
         reponse PREND_LA_VALEUR reponse+1
       FIN_TANT_QUE
      SI (repj1 == reponse) ALORS
       DEBUT_SI
         succj1 PREND_LA_VALEUR succj1+1
       FIN_SI
       SINON
        DEBUT_SINON
         scorej1 PREND_LA_VALEUR scorej1+pow(succj1,2)
         multj1 PREND_LA_VALEUR 0
       FIN_SINON
      nbmin PREND_LA_VALEUR repj1+difficulte*ALGOBOX_ALEA_ENT(1,10)
      AFFICHER "Bonne réponse : "
      AFFICHER* reponse
      AFFICHER "Chaine J1 de réponses : "
      AFFICHER* succj1
      AFFICHER "Score J1 : "
      AFFICHER* scorej1
    FIN_SINON
     SI (joueurs==2) ALORS
      DEBUT_SI
        AFFICHER* "---///---"
        AFFICHER* "Au joueur 2 de jouer !"
        mult PREND_LA_VALEUR ALGOBOX_ALEA_ENT(0,10)
        multj2 PREND_LA_VALEUR multj2+mult
          SI (mult==0) ALORS
           DEBUT_SI
            AFFICHER* "JOKER !"
             succj2 PREND_LA_VALEUR succj2+1
           FIN_SI
          SINON
           DEBUT_SINON
            AFFICHER "Donner un nombre multiple de "
            AFFICHER* multj2
            AFFICHER "le plus proche supérieurement à "
            AFFICHER nbmin
            LIRE repj2
             reponse PREND_LA_VALEUR nbmin
            TANT_QUE (reponse%multj2!=0) FAIRE
              DEBUT_TANT_QUE
                reponse PREND_LA_VALEUR reponse+1
              FIN_TANT_QUE
           SI (repj2 == reponse) ALORS
            DEBUT_SI
              succj2 PREND_LA_VALEUR succj2+1
            FIN_SI
           SINON
             DEBUT_SINON
            scorej2 PREND_LA_VALEUR scorej2+pow(succj2,2)
            multj2 PREND_LA_VALEUR 0
             FIN_SINON
           FIN_SINON
          nbmin PREND_LA_VALEUR repj2+difficulte*ALGOBOX_ALEA_ENT(1,10)
          AFFICHER "Bonne réponse : "
        AFFICHER* reponse
        AFFICHER "Chaine J2 de réponses : "
        AFFICHER* succj2
        AFFICHER "Score J1 : "
        AFFICHER* scorej2
      FIN_SI
   FIN_POUR
SI (succj1 !=0) ALORS
  DEBUT_SI
  scorej1 PREND_LA_VALEUR scorej1+pow(succj1,2)
  FIN_SI
SI (succj2 != 0) ALORS
  DEBUT_SI
  scorej2 PREND_LA_VALEUR scorej2 + pow(succj2,2)
  FIN_SI
AFFICHER* "---------------------------------------------------"
AFFICHER "FIN DE LA PARTIE !"
AFFICHER* "---------------------------------------------------"
AFFICHER "Score J1 : "
AFFICHER* scorej1
SI (joueurs==2) ALORS
  DEBUT_SI
  AFFICHER "Score J2 : "
  AFFICHER* scorej2
  FIN_SI
FIN_ALGORITHME

Publicités

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s