Jeu vidéo de calcul mental

Nintendo se distingue depuis quelques temps en sortant des consoles et des jeux reposant sur des concepts quelque peu nouveaux, dans l’univers très établi du jeu vidéo. Son jeu éducatif, « Programme d’entraînement cérébral du Dr Kawashima » fait partie de cette nouvelle vague de jeux. Très circonspect à priori, j’ai eu par hasard l’occasion de voir un ami jouer à ce fameux jeu, et je suis resté stupéfait.

Une bonne part des exercices proposés tient du calcul mental, comme par exemple calculer aussi vite que possible des sommes, différences, produits et quotients. Et la vitesse à laquelle il donnait les réponses était très nettement supérieure à celle à dont on fait typiquement preuve devant des questions de cet ordre. Après quelques minutes de test, alors que mon niveau est pourtant relativement catastrophique, je commençais déjà à anticiper les opérations, comme s’il s’agissait d’un Tetris.

Finalement, le calcul mental n’est pas différent de Tetris, Quake 3, ou DDR : il suffit de s’entraîner pour atteindre rapidement un niveau impressionnant. Oh bien sûr, c’est défoncer une porte grande ouverte que de dire cela, mais d’avoir constaté à quel point cela peut aller me laisse songeur. Il faudrait que j’y joue plus souvent. :-)

N’ayant cependant pas l’intention de faire l’acquisition d’une DS, je me suis amusé à écrire rapidement ce petit script pour essayer. À tester dans votre shell. ;-)

#!/bin/sh
max=20
operators=("+" "-" "*" "/" "%")
range=`expr 2 * $max + 1`
passed=0
total=0
while true; do
  a=`expr "$RANDOM" % $range - $max`
  b=`expr "$RANDOM" % $range - $max`
  operator=${operators[`expr $RANDOM % 5`]}
  if ( test "$operator" == "/" || test "$operator" == "%" ); then
    while test "$b" -eq 0; do
      b=`expr "$RANDOM" % $range - $max`
    done
  fi
  echo -n "$a $operator $b = "
  read input
  result=`expr "$a" "$operator" "$b"`
  total=`expr $total + 1`
  if test "$input" -eq "$result"; then
    passed=`expr $passed + 1`
    echo "OK ($passed/$total)"
  else
    echo "KO -> $result ($passed/$total)"
  fi
  echo
done

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *