Ce programme affiche un nombre tiré au hasard et l'efface au bout de 2 secondes. Pendant ce temps là l'utilisateur doit le mémoriser. Ensuite le programme lui demande de rentrer le nombre qu'il croit être le bon, le compare avec la valeur initiale et affiche "gagné" en cas d'égalité sinon "perdu". L'utilisateur a le choix d'un niveau de difficulté de 1 à 10 correspondant au nombre de chiffres maxi du nombre affiché.

#!usr/bin/perl -w
use integer;
print "Entre un niveau de difficulte de 1 a 10 : ";chomp($niv = <STDIN>);

Informer le compilateur de travailler sur des nombres entiers et non sur des flottants. Afficher la demande et récupérer la réponse. A remarquer l'absence de \n (saut de ligne) qui permet de rentrer la valeur juste à la suite de la demande, ce qui est nettement plus convivial que sur la ligne du dessous.

$n=int(rand(9999999999/10**(10-$niv)));

C'est le calcul du nombre aléatoire. Pour cela on utilise la fonction rand(expr). Cette fonction rend un nombre décimal positif compris entre zéro et la valeur de l'expression (expr). La division par une puissance de 10 fonction du niveau sert à limiter le nombre maximum de chiffres du tirage. int() est une fonction qui retourne la partie entière d'un nombre décimal. Une amélioration possible est de tirer un nombre aléatoire ayant exactement le nombre de chiffre du niveau. Essaye donc de la trouver.

print "Retient ton code : $n";
sleep(2);

Affichage du nombre à mémoriser avec un petit commentaire et mise en sommeil via la fonction sleep(2) du déroulement du programme pendant 2 secondes.

print "\b"x40," "x40,"\n";

Effacer la ligne en cours par un backspace répété 40 fois pour revenir en arrière et affichage de 40 blancs + un saut de ligne. Pourquoi 40 blancs ? Bonne question. Réponse : Pourquoi pas ;-)
Il est certain qu'il doit y avoir d'autres techniques. J'ai mis la première qui m'est venue à l'esprit. Si tu en connais une autre "plus perl" signale le sur le forum, tu rendras service à tout le monde. Merci.

print "Rentre ton code : "; chomp($code = <STDIN>);

Prompt de l'utilisateur pour qu'il rentre le code qu'il croit être le bon.

if ($code == $n) {print "Gagne\n";}
   else          {print "Perdu\n";}

Test avec le nombre origine et affichage "perdu" ou "gagné" suivant le cas.