Je ne comprends pas cet exercice sur Swift

Shinelight -  
jee pee Messages postés 9444 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

  1. jee pee Messages postés 9444 Date d'inscription   Statut Modérateur Dernière intervention   9 981
     

    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
    1. jee pee Messages postés 9444 Date d'inscription   Statut Modérateur Dernière intervention   9 981
       

      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