Se familiariser avec les éléments de base du langage Swift
Le paquet de cartes
Dans le cadre de cette pratique, vous devez développer deux classes
Swift :
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).
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
La classe doit disposer d’un attribut famille, de type
énumératif dont la valeur est soit .Pique, .Coeur,
.Carreau ou
.Trèfle.
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.
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
La classe doit disposer d’un attribut privé servant à stocker
des instances de Carte.
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).
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.
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é).
La classe doit disposer d’une fonction membre retournant le
nombre de cartes restantes de chaque famille.
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 :
⚠️ Le fichier .swift peut être ouvert dans un éditeur de code comme Visual Studio
Code. Cependant, pour pouvoir l’exécuter, vous devez installer le compilateur.