LaBouaBouate

Cours PowerShell #1 - Simple. Basique.

Consigne

Un nombre aléatoire entier compris entre 1 et 1000 est généré par PowerShell. Le joueur entre son estimation du nombre aléatoire et le script lui indique alors si le nombre aléatoire est plus grand ou plus petit que son estimation. Si le nombre aléatoire et égal à l’estimation du joueur, le script affiche un message de victoire.

À la fin du script, le nombre aléatoire et l’estimation du joueur sont affichés dans une liste.

Résultats attendus

Si l’estimation est plus grande que le nombre aléatoire :

Deviner le nombre: 500
??? est plus petit que 500

Nombre aléatoire : 21
Dernière réponse : 500

Si l’estimation est plus petite que le nombre aléatoire :

Deviner le nombre: 500
??? est plus grand que 500

Nombre aléatoire : 746
Dernière réponse : 500

Si l’estimation est égale au nombre aléatoire :

Deviner le nombre: 500
VICTOIRE ! Vous avez deviné le nombre aléatoire

Nombre aléatoire : 500
Dernière réponse : 500

Étape par étape

  1. Générer un nombre aléatoire entre 1 et 1000
  2. Stocker le nombre aléatoire dans une variable
  3. Demander au joueur de deviner le nombre
  4. Comparer le nombre aléatoire à l’estimation du joueur
    • random est supérieur à answer
    • random est inférieur à answer
    • random est égal à answer
  5. Affichage des données
  6. Formater l’affichage en mode liste

Générer un nombre aléatoire entre 1 et 1000

Pour générer un nombre aléatoire, on utilise la commande Get-Random, puis on spécifie les valeurs minimales et maximales possibles avec les paramètres -Minimum et -Maximum. Par défaut, la commande retourne un nombre entier, donc pas besoin de faire plus d’action.

Get-Random -Minimum 1 -Maximum 1000

Stocker le nombre aléatoire dans une variable

On utilise la variable $random pour récupérer la valeur de la commande Get-Random.

$random = Get-Random -Minimum 1 -Maximum 1000

Demander au joueur de deviner le nombre

On va maintenant inviter le joueur à entrer son estimation avec la commande Read-Host. On affiche un message au joueur avec le paramètre -Prompt et on stocke sa réponse dans la variable $answer.

$answer = Read-Host -Prompt "Deviner le nombre"

Comparer le nombre aléatoire à l’estimation du joueur

On compare les deux variables $answer et $random avec les opérateurs -gt (greater than, plus grand que) et -lt (lower than, plus petit que).

# Aléatoire est supérieur au nb utilisateur
$random -gt $answer
$answer -lt $random
# Aléatoire est plus petit que nb utilisateur
$random -lt $answer
$answer -gt $random

random est supérieur à answer

Si la condition if est remplie ($random est supérieur à $answer), on affiche un message au joueur avec la commande Write-Host pour indiquer que le nombre aléatoire est plus grand que son estimation.

if ($random -gt $answer) { Write-Host "??? est plus grand que $answer" }

random est inférieur à answer

Si la condition elseif est remplie ($random est inférieur à $answer), on affiche un message au joueur avec la commande Write-Host pour indiquer que le nombre aléatoire est plus petit que son estimation.

elseif ($random -lt $answer) { Write-Host "??? est plus petit que $answer" }

random est égal à answer

Si aucune des conditions précédentes (if et elseif) n’est remplie, alors on affiche un message de victoire avec la commande Write-Host.

else { Write-Host "VICTOIRE ! Vous avez devinez le nombre aléatoire" }

Affichage des données

A la fin du script, on crée un objet PSCustomObject qui regroupe les informations principales : le nombre aléatoire et la réponse du joueur.

$result = [PSCustomObject]@{
    "Nombre aléatoire" = $random
    "Dernière réponse" = $answer
}

Formater l’affichage en mode liste

Par défaut, l’objet va s’afficher sous forme de tableau puisqu’il n’y a que deux valeurs. On formate donc la vue avec la commande Format-List.

$result | Format-List

Correction

Encore une fois un petit rappel : il n’y a pas une seule bonne méthode donc si votre script ne ressemble pas au mien mais qu’il fonctionne, tant-mieux !

Voir le script complet

Commentaires