> **Exercice 1 (Jeu de tarot (initiation)) Le jeu de tarot se joue avec un jeu de cartes particulier. Au tarot, on différencie les cartes de couleurs (pique, cœur, carreau et trèfle) des atouts. Dans les cartes de couleurs, on trouve les valeurs de 1 à 10, ainsi que le valet, le cavalier, la dame et le roi. Dans les atouts, on trouve les valeurs de 1 à 21, ainsi que l’excuse.**
# Question 1
> **Représentez le diagramme de classes correspondant au jeu de tarot.**
On a le diagramme UML suivant :
```plantuml
@startuml
abstract Card {
- value : int
}
class SuitCard {
}
class TrumpCard {
}
class Fool {
value = 0
}
class Deck {
+ shuffle() : void
+ draw() : Card
+ add(Card) : void
}
enum Color {
SPADE
HEART
DIAMOND
CLUB
}
Deck "0...*" *-- "0...*" Card
Card <|-- SuitCard
Card <|-- TrumpCard
TrumpCard <|-- Fool
SuitCard --> Color
@enduml
```
## Question 2
> **Écrivez le code java correspondant aux classes des cartes et du paquet. À chaque tour, chaque joueur pose une carte à tour de rôle. Le joueur ayant posé la première carte impose la couleur à tous les autres. Celui qui remporte le pli est celui qui possè la carte la plus forte. La valeur des cartes est déterminée de la manière suivante :**
> — parmi toutes les cartes de la couleur demandée (par le premier joueur), la carte la plus forte est celle ayant la plus forte valeur (le roi remporte donc sur toutes les cartes de la couleur demandée) ;
> — toutes les cartes de couleur n’appartenant pas à la couleur demandée ont une valeur nulle et ne peuvent donc pas remporter ;
> — le plus fort des atouts joué remporte automatiquement, quelque soit la couleur demandée.
> Pour simplifier, on supposera que le premier joueur ne peut pas jouer un atout.**