Je ne comprends pas cet exercice sur Swift

Shinelight -  
jee pee Messages postés 41561 Date d'inscription   Statut Modérateur Dernière intervention   -

Bonjour,

J'apprends à coder sur OpenClassroom et il y a un exercice ou on doit programmer une application qui génère des phrases aléatoires (exemple : "tu es le Zinédine Zidane des blagues lourdes" / "tu es la Madonna du barbecue" etc).

J'ai suivi les instructions mais rien ne marche, est-ce que quelqu'un peut m'expliquer pourquoi ? Je ne comprends rien.

Merci !!

import UIKit

class ViewController: UIViewController {
    
    var celebrities = ["le Karl Marx", "le Zinédine Zidane", "le Madonna", "la Scarlett Johansson"]
    
    var activities = ["du dancefloor", "du barbecue"]

    @IBOutlet weak var QuoteLabel: UILabel!
   
    @IBAction func changeQuote(_ sender: Any) {
        
        let randomIndex1 = Int.random(in: 0..<celebrities.count)
        
        let randomcelebrity = celebrities[randomIndex1]
        
        print(randomcelebrity)
        
        let randomIndex2 = Int.random(in: 0..<celebrities.count)
        
        let randomActivity = activities [randomIndex2]
        
        print(randomActivity)
        
    QuoteLabel.text = "Le texte a été modifié"

1 réponse

jee pee Messages postés 41561 Date d'inscription   Statut Modérateur Dernière intervention   9 729
 

Bonjour,

Je ne connais pas le langage Switch, je ne ferais donc que des remarques générales.

Une fonction, pour être exécutée, ne doit pas seulement être définie, elle doit être appelée, lancée.

Sur la ligne

let randomIndex2 = Int.random(in: 0..<celebrities.count)

il faudrait faire référence à activities, pas celebrities.

La fonction devrait retourner en résultat le texte attendu, ou au moins initialiser la variable qui contient le résultat, quelque chose comme

return "Tu es "+ randomcelebrity + " " + randomActivity

        ou

variable = "Tu es "+ randomcelebrity + " " + randomActivity

0
jee pee Messages postés 41561 Date d'inscription   Statut Modérateur Dernière intervention   9 729
 

Voilà un exemple sur la base de ton code de ce que l'on pourrait faire en Python. Il existe aussi dans Python la notion de Class, mais je ne sais pas l'utiliser.

import random
celebrities = ["le Karl Marx", "le Zinédine Zidane", "la Madonna", "la Scarlett Johansson"]
activities = ["du dancefloor", "du barbecue","des blagues lourdes"]
quote="texte à modifier"
def changeQuote():
   global quote 
   randomIndex1 = random.randint(0,len(celebrities)-1)
   randomCelebrity = celebrities[randomIndex1]
   randomIndex2 = random.randint(0,len(activities)-1)
   randomActivity = activities [randomIndex2]
   quote = "Tu es " + randomCelebrity + " " + randomActivity
   return
changeQuote()
print(quote)

0