Recherche de site Web

Apprenez Bash en écrivant un jeu interactif


Programmer un jeu simple est un excellent moyen de pratiquer une nouvelle langue et de la comparer à d’autres que vous connaissez.

Apprendre un nouveau langage de programmation peut être amusant. Chaque fois que j'essaie d'en apprendre une nouvelle, je me concentre sur la définition de variables, la rédaction d'une déclaration et l'évaluation d'expressions. Une fois que j’ai une compréhension générale de ces concepts, je peux généralement comprendre le reste par moi-même. La plupart des langages de programmation présentent certaines similitudes. Ainsi, une fois que vous connaissez un langage de programmation, apprendre le suivant consiste à comprendre ses détails uniques et à en reconnaître les différences.

Pour m'aider à pratiquer un nouveau langage de programmation, j'aime écrire quelques programmes de test. Un exemple de programme que j'écris souvent est un simple programme "devinez le nombre", dans lequel l'ordinateur sélectionne un nombre entre 1 et 100 et me demande de deviner le nombre. Le programme boucle jusqu'à ce que je devine correctement.

Le programme « devinez le nombre » exerce plusieurs concepts dans les langages de programmation : comment attribuer des valeurs aux variables, comment écrire des instructions et comment effectuer une évaluation conditionnelle et des boucles. Il s'agit d'une excellente expérience pratique pour apprendre un nouveau langage de programmation.

Devinez le numéro dans Bash

Bash est le shell standard pour la plupart des systèmes Linux. En plus de fournir une interface utilisateur riche en ligne de commande, Bash prend également en charge un langage de programmation complet sous la forme de scripts.

Si vous n'êtes pas familier avec Bash, je vous recommande ces introductions :

  • Qu’est-ce que Bash ?
  • Débutez avec la programmation Bash
  • Premiers pas avec les scripts Bash pour les administrateurs système
  • Comment écrire des fonctions dans Bash
  • En savoir plus sur Bash

Vous pouvez explorer Bash en écrivant une version du jeu « devinez le nombre ». Voici ma mise en œuvre :

#!/bin/bash

number=$(( $RANDOM % 100 + 1 ))

echo "Guess a number between 1 and 100"

guess=0

while [ "0$guess" -ne $number ] ; do
	read guess
	[ "0$guess" -lt $number ] && echo "Too low"
	[ "0$guess" -gt $number ] && echo "Too high"
done

echo "That's right!"
exit 0

Décomposer le script

La première ligne du script, #!/bin/bash indique à Linux d'exécuter ce script en utilisant le shell Bash. Chaque script commence par la paire de caractères #!, ce qui indique qu'il s'agit d'un script shell. Ce qui suit immédiatement #! est le shell à exécuter. Dans ce cas, /bin/bash est le shell Bash.

Pour attribuer une valeur à une variable, indiquez le nom de la variable suivi du signe =. Par exemple, l'instruction guess=0 attribue une valeur zéro à la variable guess.

Vous pouvez également inviter l'utilisateur à saisir une valeur à l'aide de l'instruction read. Si vous écrivez read deviner, Bash attend que l'utilisateur entre du texte puis stocke cette valeur dans la variable guess.

Pour référencer la valeur d'une variable, utilisez $ avant le nom de la variable. Ainsi, après avoir stocké une valeur dans la variable guess, vous pouvez la récupérer en utilisant $guess.

Vous pouvez utiliser les noms de votre choix pour les variables, mais Bash se réserve quelques noms de variables spéciaux. Une variable spéciale est RANDOM, qui génère un très grand nombre aléatoire à chaque fois que vous la référencez.

Si vous souhaitez effectuer une opération en même temps que vous stockez une valeur, vous devez placer l'instruction entre crochets spéciaux. Cela indique à Bash d'exécuter cette instruction en premier, et = stocke la valeur résultante dans la variable. Pour évaluer une expression mathématique, utilisez $ (( )) autour de votre instruction. Les doubles parenthèses indiquent une expression arithmétique. Dans mon exemple, number=$ (( $RANDOM % 100 + 1 )) évalue l'expression $RANDOM % 100 + 1 puis stocke la valeur dans le < variablenuméro.

Opérateurs arithmétiques standards tels que + (plus), - (moins), * (multiplier), / ( diviser), et % (modulo) s'appliquent.

Cela signifie que l'instruction number=$ (( $RANDOM % 100 + 1 )) génère un nombre aléatoire compris entre un et 100. L'opérateur modulo (%) renvoie le reste après avoir divisé deux nombres. Dans ce cas, Bash divise un nombre aléatoire par 100, laissant un reste compris entre zéro et 99. En ajoutant un à cette valeur, vous obtenez un nombre aléatoire compris entre un et 100.

Bash prend en charge les expressions conditionnelles et le contrôle de flux comme les boucles. Dans le jeu "devinez le nombre", Bash continue de boucler tant que la valeur dans devinez n'est pas égale à numéro. Si la supposition est inférieure au nombre aléatoire, Bash affiche « Trop faible » et si la supposition est supérieure au nombre, Bash affiche « Trop élevé ».

Comment ça fonctionne

Maintenant que vous avez écrit votre script Bash, vous pouvez l'exécuter pour jouer au jeu « devinez le nombre ». Continuez à deviner jusqu'à ce que vous trouviez le bon numéro :

Guess a number between 1 and 100
50
Too high
30
Too high
20
Too high
10
Too low
15
Too high
13
Too low
14
That's right!

Chaque fois que vous exécutez le script, Bash choisira un nombre aléatoire différent.

Ce jeu « devinez le nombre » est un excellent programme d'introduction à l'apprentissage d'un nouveau langage de programmation, car il exerce plusieurs concepts de programmation courants d'une manière assez simple. En implémentant ce jeu simple dans différents langages de programmation, vous pouvez démontrer certains concepts de base et comparer les détails dans chaque langage.

Avez-vous un langage de programmation préféré ? Comment y écririez-vous le jeu « devinez le nombre » ? Suivez cette série d'articles pour voir des exemples d'autres langages de programmation qui pourraient vous intéresser.

Articles connexes: