Poursuivons notre merveilleuse petite liste de tâches pour écrire la logique de notre application :
Nous allons apprendre à modifier le texte du label. ✅
Nous allons créer nos tableaux.
Nous allons sélectionner un élément aléatoire dans chaque tableau.
Nous allons les combiner pour créer notre phrase.
La première tâche est faite et nous allons dans ce chapitre nous attaquer aux points 2 et 3.
Créons les tableaux
Nous devons maintenant créer les deux tableaux qui vont contenir les noms des célébrités d'une part (Steve Jobs, etc.) et les activités de l'autre (raclette party, etc.).
Pour cela, il nous faut savoir ce qu'est un tableau en programmation. Un tableau est un objet qui peut contenir 0, 1 ou plusieurs variables.
Dans notre cas, nous allons donc créer deux tableaux. Pour créer un tableau, il suffit d'utiliser les crochets [ ]
et de séparer les éléments par des virgules comme ceci :
[element1, element2, element3]
On écrit donc dans notre cas :
["le Steve Jobs", "le Zinedine Zidane", "la Madonna", "le Karl Lagerfeld", "la Scarlett Johansson"]
Et voilà, nous avons un tableau ! Pour pouvoir le réutiliser plus tard, et notamment accéder à ses éléments, nous allons le stocker dans une variable nommée celebrities
. Vous savez maintenant déclarer une variable :
var celebrities = ["le Steve Jobs", "le Zinedine Zidane", "la Madonna", "le Karl Lagerfeld", "la Scarlett Johansson"]
Faisons la même chose avec les activités. Votre contrôleur doit maintenant ressembler à :
class ViewController: UIViewController {
var celebrities = ["le Steve Jobs", "le Zinedine Zidane", "la Madonna", "le Karl Lagerfeld", "la Scarlett Johansson"]
var activities = ["du dancefloor", "du barbecue", "de la surprise ratée", "des blagues lourdes", "de la raclette party"]
@IBOutlet weak var quoteLabel: UILabel!
@IBAction func changeQuote() {
quoteLabel.text = "Le texte du label est modifié !"
}
}
Sélectionner un élément aléatoire dans chaque tableau
On va diviser la tâche en 2 :
Sélectionner un élément.
Sélectionner un élément aléatoire.
1. Sélectionner un élément
Pour comprendre comment on sélectionne un élément, il faut comprendre plus précisément comment fonctionne un tableau.
Un tableau, c'est une liste d'éléments ordonnée. Cela veut dire qu'à chaque élément est associé un numéro. Ce numéro, on l'appelle l'index.
Le premier élément est à l'index 0.
Le deuxième est à l'index 1.
Le troisième est à l'index 2.
Etc.
On accède aux éléments d'un tableau par leur index. On va donc dire à l'ordinateur : "Donne-moi l'élément à l'index numéro 2". Pour cela, il suffit d'adopter la syntaxe suivante :
celebrities[2] // L'ordinateur renvoie : "la Madonna"
On spécifie l'index que l'on souhaite après le nom de la variable et entre crochets [ ]
. Ici, on demande l'élément à l'index 2 (donc en troisième position) soit : "la Madonna" pour notre tableau.
Vous pouvez tester cela en utilisant la fonction print
. Par exemple, rajoutez cela dans la fonction changeQuote
:
print(celebrities[2])
Lancez l'application, cliquez sur le bouton "ET MOI ?" et vous devriez voir apparaître dans la console :
la Madonna
2. Sélectionner un élément aléatoire
Maintenant que l'on sait comment sélectionner un élément, voyons comment en prendre un au hasard dans la liste. Une idée ?
Il nous faut générer un index aléatoire ! Et ensuite il n'y aura plus qu'à accéder à l'élément à l'index aléatoire généré.
Pour cela, il existe une fonction qui nous permet de générer un nombre aléatoire.
Elle s’appelle random (aléatoire en anglais) et est liée au type de donnée que nous voulons générer, ici un entier donc un Int
.
Pour utiliser cette fonction, il faut lui préciser une valeur minimale et une valeur maximale N et la fonction générera un nombre aléatoire entre la valeur minimale et N-1. Par exemple : si l’on veut un nombre entre 0 et 4, il faudra écrire :
Int.random(in: 0..<5)
Dans notre cas, la valeur maximale devra être le nombre d’éléments dans notre tableau. Et pour obtenir ce nombre, il faut accéder à la propriété count
. Comme toute propriété, on fait cela en utilisant le point comme ceci :
celebrities.count // L'ordinateur renvoie : 5
On a la fonction, on a la valeur maximale. Donc on peut obtenir maintenant un index aléatoire en faisant :
var randomIndex = Int.random(in: 0..<celebrities.count)
En détail :
Je récupère le nombre de célébrités avec
celebrities.count
.Puis je l'utilise comme valeur maximale pour ma fonction
Int.random
.J'assigne le résultat à la variable
randomIndex
.
Maintenant que nous avons un index aléatoire, il ne reste plus qu'à récupérer l'élément correspondant dans le tableau :
var randomCelebrity = celebrities[randomIndex]
En appliquant cette logique au tableau des activités, notre code devient :
@IBAction func changeQuote() {
// On séléctionne un élément alétoire parmi les célébrités
var randomIndex1 = Int.random(in: 0..<celebrities.count)
var celebrity = celebrities[randomIndex1]
print(celebrity)
// On séléctionne un élément aléatoire parmi les activités
var randomIndex2 = Int.random(in: 0..<activities.count)
var activity = activities[randomIndex2]
print(activity)
// On modifie le texte
quoteLabel.text = "Le texte du label est modifié !"
}
Vous pouvez maintenant tester l'application et voir dans la console les célébrités et les activités aléatoires apparaître.
En résumé
Un tableau est un objet qui permet de stocker 0, 1 ou plusieurs variables.
Pour créer un tableau, il faut utiliser les crochets et séparer les éléments par des virgules comme ceci :
var tableau = [element1, element2, element3]
Pour accéder aux éléments d'un tableau, on utilise l'index avec la syntaxe suivante :
var monElement = monTableau[4]
Pour obtenir le nombre d'éléments dans un tableau, on utilise la propriété count
.
Dans le chapitre suivant, nous allons voir comment résoudre nos erreurs et finir l'application.