
Un soir de pluie en mars, assise à ma table de cuisine à Clermont-Ferrand, je fixais mon écran avec une envie un peu idiote : je voulais que mon ordinateur devienne mon adversaire de jeu de société. Jusque-là, mes scripts Python se contentaient de m'obéir au doigt et à l'œil, répétant sagement ce que je leur demandais de taper. C'était un peu comme parler à un miroir. J'avais besoin d'un peu d'imprévu, d'un grain de sable dans l'engrenage pour que ça ressemble enfin à une interaction.
Avant d'aller plus loin, je préfère être honnête avec vous : ce petit carnet de bord contient quelques liens vers les outils qui m'aident à avancer. Si vous cliquez dessus et que vous décidez de vous lancer aussi, une commission m'est versée. Pour vous, le prix ne bouge pas d'un centime, mais pour moi, c'est un petit coup de pouce qui m'aide à continuer d'apprendre entre deux journées de boulot. Je ne vous parle que de ce que j'utilise vraiment sur ma table de cuisine.
Sortir des sentiers battus avec l'aléatoire
Dans mes notes de la Formation au langage Python, j'avais gribouillé quelques lignes sur le concept de « module ». Au début, j'imaginais ça comme des boîtes à outils complexes réservées aux ingénieurs. Mais ce soir-là, j'ai compris que c'était plutôt comme une étagère à épices. Python de base, c'est le sel et le poivre. C'est indispensable, mais si vous voulez que votre plat ait un goût de voyage ou de surprise, il faut aller chercher le bocal de cumin ou de curry qui attend dans le placard. Le module random, c'est exactement ça : c'est l'épice de l'imprévisible.
Mon projet était simple : créer un jeu de « Plus ou Moins ». L'ordinateur choisit un chiffre, et je dois le deviner. Mais pour que l'ordinateur choisisse, il lui faut une sorte de dé virtuel. C'est là que j'ai découvert qu'on ne peut pas juste dire à Python « choisis un truc ». Il faut d'abord lui donner les bons outils en tapant import random tout en haut de la page.
Je me souviens avoir hésité avant de taper cette ligne. J'avais cette peur irrationnelle qu'en « important » quelque chose d'extérieur, j'allais casser mon dossier de travail ou saturer mon vieil ordinateur. C'est le genre de crainte qu'on a quand on ne comprend pas encore que ces modules font déjà partie de la bibliothèque standard Python. Ils sont là, ils dorment juste en attendant qu'on les appelle.

Le moment où tout se fige (et pourquoi j'ai failli abandonner)
Vers le mois de mai, j'ai vraiment commencé à m'arracher les cheveux. J'avais écrit mon code, j'étais fière de moi, mais Visual Studio Code s'obstinait à souligner le mot random en rouge, comme une faute d'orthographe géante. J'ai passé vingt bonnes minutes à vérifier chaque lettre, à redémarrer le programme, à soupirer si fort que mon voisin a dû m'entendre à travers la cloison.
La panne était ridicule : j'avais simplement oublié d'écrire import random en haut de mon fichier. J'avais écrit toute la logique, le cœur du jeu, mais j'avais oublié d'ouvrir la porte à l'outil lui-même. C'est une erreur de débutante, je le sais, mais sur le moment, on se sent tellement petite face à ce curseur qui clignote. Le silence de la cuisine n'était rompu que par le ronronnement de mon vieux réfrigérateur, un bruit que je n'entends d'habitude jamais, mais qui devient assourdissant quand on attend que son terminal s'exécute enfin sans erreur.
Une fois l'importation réussie, j'ai utilisé la fonction magique : random.randint(a, b). C'est elle qui fait tout le travail. Pour mon jeu, je voulais un nombre entre 1 et 10. Ce qui est génial avec cette fonction en Python 3, c'est qu'elle est très humaine dans sa logique. Elle respecte la règle a <= N <= b. Si je lui demande un chiffre entre 1 et 10, elle peut vraiment choisir le 1 ou le 10. Ce n'est pas toujours le cas en informatique, où l'on commence souvent à compter à partir de zéro et où on exclut parfois la dernière borne.
La logique du jeu : un mélange de hasard et de conditions
Créer ce jeu, ce n'est pas seulement jeter un dé. C'est aussi apprendre à l'ordinateur comment nous répondre. C'est là que j'ai dû ressortir mes vieux réflexes sur les conditions. Si mon chiffre est trop petit, dis-moi « Plus haut ! ». S'il est trop grand, dis-moi « Plus bas ! ».
J'ai réalisé que pour un étudiant en informatique ou un adulte qui court après le temps, apprendre ces petits blocs de logique est salvateur. On m'a souvent dit que les étudiants sous contrainte de temps réussissaient mieux en apprenant par micro-sessions ultra-rapides. C'est exactement ce que je faisais entre le moment où je lançais l'eau des pâtes et celui où je devais les égoutter. On n'a pas besoin de deux heures pour comprendre un if ou un else, on a juste besoin d'un moment de calme pour connecter les neurones.
Si vous avez encore du mal avec ces structures, je vous conseille de jeter un œil à mon article sur comment utiliser les conditions if else python pour débuter ses scripts. C'est la base indispensable avant d'inviter le hasard dans votre code.

Le bug des bornes et le déclic final
Il y a quelques semaines, j'ai eu un autre petit souci. Mon jeu ne s'arrêtait jamais, ou alors il me disait que j'avais gagné quand je tapais n'importe quoi. J'ai dû apprendre à dompter la boucle while (tant que). C'est comme une recette de cuisine : on continue de mélanger *tant que* la pâte n'est pas lisse. Ici, on continue de demander un chiffre *tant que* l'utilisateur n'a pas trouvé le bon.
Le déclic est arrivé un mardi soir après le travail. J'ai tapé mon chiffre, j'ai cliqué sur Entrée, et l'écran m'a répondu : « Plus haut ! ». Ce n'était qu'un script de dix lignes, mais j'ai eu l'impression d'avoir créé une intelligence, ou au moins un petit fantôme dans la machine qui jouait avec moi. Quand j'ai enfin tapé le bon chiffre et que le programme a affiché « Bravo, vous avez trouvé ! », j'ai senti une bouffée de chaleur aux joues et j'ai eu un sourire niais toute seule devant mon clavier.
Je me demande souvent si les vrais développeurs, ceux qui construisent des banques de données ou des applications complexes, ressentent aussi ce petit frisson pour un simple jeu de plus ou moins. Est-ce que ce plaisir de voir une machine « décider » de quelque chose s'estompe avec le temps ? J'espère que non.
Pourquoi s'embêter avec ça ?
On pourrait se dire que faire un jeu de devinettes en 2026, c'est un peu dépassé. Mais c'est le meilleur moyen de comprendre ce qu'est un générateur de nombres pseudo-aléatoire. En réalité, l'ordinateur ne choisit pas vraiment au hasard comme nous, il suit une formule mathématique très complexe, mais pour moi, à ma table de cuisine, c'est de la magie pure.
Si vous voulez aller plus loin, une fois que vous aurez maîtrisé le module random, vous aurez peut-être envie de rendre vos messages plus jolis. Pour ça, j'ai trouvé une astuce géniale que j'ai détaillée ici : comment utiliser les f-strings en python pour ne plus s'embrouiller. Ça permet d'afficher « Bravo Pauline, le chiffre était bien 7 » plutôt qu'un message tout sec.
Aujourd'hui, mon petit jeu fonctionne. Il n'est pas parfait, il plante si je tape une lettre à la place d'un chiffre (pour ça, il faudra que je me penche sur l'article comment utiliser try except python pour éviter les bugs qui bloquent tout), mais il est à moi. Je l'ai construit brique par brique, entre deux bâillements et trois tasses de thé froid.
Si vous débutez et que vous cherchez une structure pour ne pas vous perdre dans la jungle des tutoriels, je ne peux que vous recommander la Formation au langage Python. C'est elle qui m'a permis de transformer mes soirées de frustration en moments de petites victoires. Et si jamais vous vous sentez d'humeur à explorer d'autres horizons plus tard, j'ai aussi gardé sous le coude la Formation JavaScript pratique pour quand j'aurai envie de voir mon code s'animer sur une page web.
Allez, je ferme l'ordinateur pour ce soir. La pluie s'est arrêtée sur Clermont, et mon script de jeu dort enfin dans son dossier. Est-ce que demain j'essaierai de coder un lancer de dés pour mon prochain Monopoly ? Peut-être bien.