0% ont trouvé ce document utile (0 vote)
20 vues2 pages

Classes Swift pour un jeu de cartes

Transféré par

cb6qd866q2
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
20 vues2 pages

Classes Swift pour un jeu de cartes

Transféré par

cb6qd866q2
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

CITÉ COLLÉGIALE

20912 IFM Développement d’applications mobiles II Hiver 2022


____________________________________________________________________

Question

Dans le cadre de cette pratique, vous devez développer deux classes


Swift :

1. La première classe, nommée Carte, représente une carte à jouer


(de valeur 2 à 10, valet, dame, roi ou as, et de famille pique,
coeur, carreau ou trèfle).

2. La seconde classe, nommée Paquet, représente un paquet de cartes


à jouer (c.à.d. contenant d’instances de Carte).

Ci-dessous vous trouverez les spécifications de ces deux classes.

Classe Carte

C1. La classe doit disposer d’un attribut famille, de type


énumératif dont la valeur est soit .Pique, .Coeur, .Carreau ou
.Trèfle.

C2. La classe doit disposer d’un attribut valeur contenant la valeur


de la carte, de 2 à 14 (11 pour le valet, 12 pour la dame, 13
pour le roi et 14 pour l’as). Le mutateur de cet attribut doit
valider la valeur attribuée afin que valeur contienne toujours
une valeur entre 2 et 14, inclusivement.

C3. La classe doit être désignée « CustomStringConvertible » et


disposer d’une fonction membre description qui retourne un
String décrivant la valeur et famille de la carte (p.ex. "3").

Classe Paquet

P1. La classe doit disposer d’un attribut privé servant à stocker


des instances de Carte.

P2. La classe doit disposer d’un initialiseur permettant soit de


créer un paquet de cartes vide, soit de créer un paquet
contenant les 52 cartes traditionnelles d’un paquet. Lorsqu’un
paquet de 52 cartes est créé, celui-ci doit être brassé (c.à.d.
ses cartes doivent être dans un ordre aléatoire).

P3. La classe doit disposer d’un attribut membre permettant de


retirer la première carte du paquet et de la retourner. Si le
paquet est vide, la fonction doit retourner nil.

P4. La classe doit disposer d’une fonction membre retirant et


retournant le nombre demandé de cartes du début du paquet. Les
cartes retirées doivent être retournées dans une nouvelle
instance de Paquet. Si le paquet contient moins de cartes que
demandées, le paquet retourné doit contenir les cartes restantes
(au pire cas, un paquet vide est retourné).

P5. La classe doit disposer d’une fonction membre retournant le


nombre de cartes restantes de chaque famille.

P6. La classe doit être désignée « CustomStringConvertible » et


disposer d’une fonction membre description qui retourne un
String énumérant le contenu du paquet (p.ex. "[ 3 R A 7
8 ]").

Code pilote

Voici un code pilote vous permettant de tester vos classes :

var paquet: Paquet = Paquet(remplir: true) [{…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, …
print(paquet) "[ A♥ 7♠ 8♦ 3♦ V♥ D♥ 6♥ 8♣ D♠ D♣ 2♦…

var main: Paquet = paquet.piger(5) {[{…}, {…}, {…}, {…}, {…}]}


print(main) "[ A♥ 7♠ 8♦ 3♦ V♥ ]"

var carte: Carte? = paquet.piger() {(Enum Value) _valeur 12}


print(carte!) "D♥"

print(paquet) "[ 6♥ 8♣ D♠ D♣ 2♦ 9♦ 10♠ 6♣ 4♦ V♦ 3♣…

let (piques, coeurs, carreaux, trèfles) = "♠:12, ♥:10, ♦:11, ♣:13"


paquet.nombreDeCartesRestantesDeChaqueFamille
print("♠:\(piques), ♥:\(coeurs), ♦:\(carreaux), ♣\(trèfles)")

Vous aimerez peut-être aussi