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 |
Partager