Files

1.6 KiB

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 comparerez main[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 ?