Nous voici aujourd’hui devant notre premier exercice ! Nous allons créer une version très simple du grand classique “Devine à quel nombre je pense ?” en version CLI (command line interface). Alors j’espère que vous êtes prêts, aujourd’hui c’est vous qui allez coder !
Pour ceux qui ont suivi les tutoriels dans l’ordre (j’espère que c’est le cas), cet exercice conclu la série de tutoriels Commencer avec Swift destiné aux débutants. Je vous mets au cas où la liste des tutoriels de ce chapitre pour que vous puissiez y accéder rapidement si vous avez besoin :
Les règles
Le jeu consiste à tirer un nombre aléatoire (généralement entre 0 et 100) puis de le faire deviner au joueur en lui indiquant si le nombre à deviner est plus grand ou plus petit que celui qu’ils ont donné. Le but étant bien sûr de deviner le nombre en le moins de coups possible.
Le programme devra être capable de dire si le nombre entré est plus ou moins grand que le nombre à deviner, retourner une erreur si le texte entré n’est pas un nombre, garder un compte du nombre de coups et proposer de rejouer à la fin du jeu.
Mise en place
L’application sera en CLI c’est a dire en Interface en ligne de commande (Wikipedia) soit uniquement en mode texte dans la console. Pour mettre en place l’application, il va falloir créer un nouveau projet dans Xcode, sélectionner la plateforme macOS, puis “Command Line Tool” comme type d’app. Le code pourra être écrit dans le fichier main.swift.
Vous aurez besoin de quelques ressources que je ne vous ait pas encore fournies, notamment les fonctions de tirage aléatoire ainsi que la fonction permettant de récupérer l’entrée texte du joueur.
1 2 3 4 5 6 7 8 9 10 | import Foundation // Obligatoire, en haut du script func random() -> Float { return Float(arc4random()) / 0xFFFFFFFF } func random(min: Int, max: Int) -> Int { let floatAdd = Float(max - min) return Int(floor(random() * floatAdd) + Float(min)) } |
Ces deux fonctions combinées (qui ont le même nom, bien joué) permettent de tirer un nombre aléatoire de type Int compris entre deux nombres passés en paramètre. On peut tirer un nombre simplement en écrivant :
1 | let tirage = random(min: 0, max: 10) |
A noter qu’il est impératif d’importer le module Foundation dès la première ligne du script pour avoir accès aux fonctions mathématiques utilisées dans ces fonctions.
Pour récupérer l’entrée texte du joueur, il suffit de faire appel à la fonction readLine()
qui retournera une valeur de type String. Voici comment l’utiliser :
1 | let entree = readLine() |
Le code suivant cette fonction ne s’exécute pas tant que la personne n’a pas appuyé sur la touche entrée pour valider le texte saisi.
Voilà, je pense que vous avez tout ce qu’il vous faut avec ces quelques fonctions et les précédents tutos, je vous laisse vous challenger pour essayer de trouver comment faire cette app. N’oubliez pas dans Xcode de bien afficher la console pour voir le retour et pouvoir taper du texte.
Ci joint vous trouverez une correction commentée rédigée par mes soins, j’espère que vous arriverez à avoir un programme fonctionnel sans avoir à y jeter un oeil, si ce n’est pas le cas, n’hésitez pas à revoir certains tutos 😉
Bonne chance à tous !
Télécharger “Correction "Devine le nombre"” main.swift_.zip – Téléchargé 1620 fois – 2,09 Ko