02 — Le Tri de Cartes
Algorithme : Tri par insertion Difficulté : Facile Durée estimée : 45 min — 1h
Contexte
Lorsqu'on reçoit des cartes à jouer, on les trie naturellement dans sa main : on prend chaque nouvelle carte et on la glisse à la bonne place parmi celles déjà en ordre. C'est exactement le tri par insertion.
Dans ce projet, vous allez trier une main de cartes par valeur croissante, puis chercher une carte avec la dichotomie.
Étapes
Étape 1 — Afficher la main
Lancez le starter et observez comment les cartes sont représentées. Chaque carte est un tuple (valeur, couleur). La valeur va de 2 à 14 (11 = Valet, 12 = Dame, 13 = Roi, 14 = As).
Étape 2 — Implémenter tri_insertion_cartes(main)
Le tri doit classer les cartes par valeur croissante (le premier élément du tuple).
Indication : dans le tri par insertion vu en cours, on comparait
tab[j-1] > x. Ici, vous comparerezmain[j-1][0] > x[0](on ne regarde que la valeur, pas la couleur).
Étape 3 — Chercher une carte
Implémentez chercher_carte(main_triee, valeur) qui utilise la dichotomie pour savoir si une carte d'une certaine valeur est dans la main.
Attention : la dichotomie ne fonctionne que sur une liste déjà triée !
Étape 4 — Extension (si vous avez le temps)
Ajoutez un mode "nouvelle donne" : générez une main aléatoire de 7 cartes avec random, triez-la et affichez-la.
Ce que vous devez rendre
- Le programme qui trie et cherche correctement
- Une explication : pourquoi le tri par insertion ressemble à ce qu'on fait naturellement avec des cartes ?
Dernière mise à jour : 07/07/2026