Je ne comprends pas cet exercice sur Swift

Fermé
Shinelight - 20 janv. 2023 à 15:18
jee pee Messages postés 40470 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 23 novembre 2024 - 20 janv. 2023 à 17:50

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 40470 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 23 novembre 2024 9 427
Modifié le 20 janv. 2023 à 17:27

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 40470 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 23 novembre 2024 9 427
20 janv. 2023 à 17:50

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