IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Swift Discussion :

récupérer les valeurs d'une énumération


Sujet :

Swift

  1. #1
    Membre averti
    Avatar de exe2bin
    Profil pro
    Passionné de programmation
    Inscrit en
    Mars 2009
    Messages
    537
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Passionné de programmation

    Informations forums :
    Inscription : Mars 2009
    Messages : 537
    Points : 387
    Points
    387
    Billets dans le blog
    3
    Par défaut récupérer les valeurs d'une énumération
    Bonjour à tous et toutes ,
    j'ai une énumération :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    enum Classe {
        case Guerrier(nomDuPerso: String,ptDeVie: Int)
        case Archer(nomDuPerso: String,ptDeVie: Int)
        case Mage(nomDuPerso: String,ptDeVie: Int)
    }
    Je veux m'en servir pour initialiser une classe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    class Personnage {
        var nom = ""
        var classe: Classe
        var arme: Arme
        var vie = 0
     
        init(arme: Arme,classe: Classe) {
            self.classe = classe
            self.arme = arme
        }
        func setDegat(hitPoints: Int) { self.vie += hitPoints }
        func affiche() {
            print("nom : \(self.nom)")
            print("points de vie : \(self.vie)")
            print("dégâts de l'arme : \(self.arme.getDegats())")
        }
    }
    Maintenant lorsque je fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    var perso1 = Personnage(arme: Epee(), classe: .Guerrier(nomDuPerso: "Marcel",ptDeVie: 50))
    perso1.affiche()
    j'obtiens :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    nom : 
    points de vie : 0
    dégâts de l'arme : 20
    Comment faire pour initialiser les variables "nom" et "vie" avec la variable "classe" ??

  2. #2
    Nouveau membre du Club
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Juin 2017
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Chercheur en informatique

    Informations forums :
    Inscription : Juin 2017
    Messages : 17
    Points : 26
    Points
    26
    Par défaut Une possibilité
    Bonsoir exe2Bin

    J'ai modifié un peu votre code.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    import Foundation
     
    enum Classe {
     case Guerrier(nomDuPerso: String, ptDeVie: Int)
     case Archer(nomDuPerso: String, ptDeVie: Int)
     case Mage(nomDuPerso: String, ptDeVie: Int)
     
     var valeurs: (nom: String, pointDeVie: Int) {
     
      var nom_résultat: Texte = ""
      var pointDeVie_résultat: Int = 0
     
      switch self {
     
      case .Guerrier(let nom,let pointDeVie):
       nom_résultat = nom
       pointDeVie_résultat = pointDeVie
     
      case .Archer(let nom,let pointDeVie):
       nom_résultat = nom
       pointDeVie_résultat = pointDeVie
     
      case .Mage(let nom,let pointDeVie):
       nom_résultat = nom
       pointDeVie_résultat = pointDeVie
      }
      return (nom: nom_résultat, pointDeVie: pointDeVie_résultat)
     }
    }
     
    struct Arme {
     let dégats = 20
    }
     
    class Personnage {
     
     var nom = ""
     var vie = 0
     var arme: Arme
     var classe: Classe
     
     init(arme : Arme, classe: Classe) {
      self.arme = arme
      self.classe = classe
      self.nom = classe.valeurs.nom
      self.vie = classe.valeurs.pointDeVie
     }
     
     func setDegat(hitPoints: Int) { self.vie += hitPoints }
     
     func affiche() {
      print("nom : \(self.nom)")
      print("points de vie : \(self.vie)")
      print("dégâts de l'arme : \(self.arme.dégats)")
     }
     
    }
     
    // MARK: - Début du programme
     
    var perso1 = Personnage(arme: Arme(),classe: Classe.Guerrier(nomDuPerso: "Marcel", ptDeVie: 50))
    let perso2 = Personnage(arme: Arme(),classe: Classe.Mage(nomDuPerso: "Pauline", ptDeVie: 90))
    perso1.affiche()
    print()
    perso2.affiche()
     
    // MARK: - Fin du programme

    ==== Résultat ====
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    /* ==== Résultat ====
     
    nom : Marcel
    points de vie : 50
    dégâts de l'arme : 20
     
    nom : Pauline
    points de vie : 90
    dégâts de l'arme : 20
     
    */
    Bonne lecture. En espérant avoir répondu à votre demande.

    Cordialement
    coderEnSwift

  3. #3
    Candidat au Club
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Novembre 2017
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information

    Informations forums :
    Inscription : Novembre 2017
    Messages : 9
    Points : 4
    Points
    4
    Par défaut Très clair, merci
    Citation Envoyé par coderEnSwift Voir le message
    Bonsoir exe2Bin

    J'ai modifié un peu votre code.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    import Foundation
     
    enum Classe {
     case Guerrier(nomDuPerso: String, ptDeVie: Int)
     case Archer(nomDuPerso: String, ptDeVie: Int)
     case Mage(nomDuPerso: String, ptDeVie: Int)
     
     var valeurs: (nom: String, pointDeVie: Int) {
     
      var nom_résultat: Texte = ""
      var pointDeVie_résultat: Int = 0
     
      switch self {
     
      case .Guerrier(let nom,let pointDeVie):
       nom_résultat = nom
       pointDeVie_résultat = pointDeVie
     
      case .Archer(let nom,let pointDeVie):
       nom_résultat = nom
       pointDeVie_résultat = pointDeVie
     
      case .Mage(let nom,let pointDeVie):
       nom_résultat = nom
       pointDeVie_résultat = pointDeVie
      }
      return (nom: nom_résultat, pointDeVie: pointDeVie_résultat)
     }
    }
     
    struct Arme {
     let dégats = 20
    }
     
    class Personnage {
     
     var nom = ""
     var vie = 0
     var arme: Arme
     var classe: Classe
     
     init(arme : Arme, classe: Classe) {
      self.arme = arme
      self.classe = classe
      self.nom = classe.valeurs.nom
      self.vie = classe.valeurs.pointDeVie
     }
     
     func setDegat(hitPoints: Int) { self.vie += hitPoints }
     
     func affiche() {
      print("nom : \(self.nom)")
      print("points de vie : \(self.vie)")
      print("dégâts de l'arme : \(self.arme.dégats)")
     }
     
    }
     
    // MARK: - Début du programme
     
    var perso1 = Personnage(arme: Arme(),classe: Classe.Guerrier(nomDuPerso: "Marcel", ptDeVie: 50))
    let perso2 = Personnage(arme: Arme(),classe: Classe.Mage(nomDuPerso: "Pauline", ptDeVie: 90))
    perso1.affiche()
    print()
    perso2.affiche()
     
    // MARK: - Fin du programme

    ==== Résultat ====
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    /* ==== Résultat ====
     
    nom : Marcel
    points de vie : 50
    dégâts de l'arme : 20
     
    nom : Pauline
    points de vie : 90
    dégâts de l'arme : 20
     
    */
    Bonne lecture. En espérant avoir répondu à votre demande.

    Cordialement
    coderEnSwift

Discussions similaires

  1. Récupérer les valeurs dans une fonction
    Par matmay dans le forum MATLAB
    Réponses: 3
    Dernier message: 04/05/2007, 16h50
  2. Réponses: 11
    Dernier message: 26/04/2007, 10h40
  3. Récupérer les éléments d'une énumération
    Par The eye dans le forum VB.NET
    Réponses: 3
    Dernier message: 11/01/2007, 09h45
  4. Réponses: 4
    Dernier message: 13/11/2006, 17h49
  5. Récupérer les valeurs d'une collection de checkbox
    Par licorne dans le forum Langage
    Réponses: 4
    Dernier message: 27/10/2006, 12h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo