POUR LE BINÔME ADULTE
Lignes - : retirées. Lignes + : ajoutées. Ce fichier ne se lance pas.

--- rubiks_etape_10.py
+++ rubiks_etape_11.py
@@ -1,5 +1,5 @@
-"""Rubik's Cube — étape 10 : la 3D avec Pygame seulement.
-Lancement : py rubiks_etape_10.py
+"""Rubik's Cube — étape 11 : la 3D avec Pygame seulement.
+Lancement : py rubiks_etape_11.py
 Fichier autonome. Les étapes 01 à 08 restent inchangées.
 """
 
@@ -299,7 +299,7 @@
 def main():
     pygame.init()
     fenetre = pygame.display.set_mode((1040, 740))
-    pygame.display.set_caption("Mon Rubik's Cube 3D - Etape 10")
+    pygame.display.set_caption("Mon Rubik's Cube 3D - Etape 11")
     horloge = pygame.time.Clock()
     police = pygame.font.Font(None, 26)
     petite = pygame.font.Font(None, 22)
@@ -312,6 +312,11 @@
     for indice, face in enumerate("UDFBLR"):
         boutons.append((pygame.Rect(725, 125 + indice*45, 115, 35), face, (face, False)))
         boutons.append((pygame.Rect(855, 125 + indice*45, 115, 35), face + "'", (face, True)))
+    boutons.extend([
+        (pygame.Rect(725, 415, 245, 36), "Mélanger", "melanger"),
+        (pygame.Rect(725, 461, 245, 36), "Remettre à zéro", "reset"),
+        (pygame.Rect(725, 507, 245, 36), "Annuler un coup", "annuler"),
+    ])
     boutons.append((pygame.Rect(725, 553, 245, 36), "Recentrer la vue", "camera"))
     boutons.append((pygame.Rect(725, 599, 245, 36), "Afficher les lettres", "lettres"))
     en_marche = True
@@ -347,6 +352,12 @@
                 elif pygame.key.name(evenement.key).upper() in COULEURS:
                     action = (pygame.key.name(evenement.key).upper(),
                               bool(evenement.mod & pygame.KMOD_SHIFT))
+                elif evenement.key == pygame.K_SPACE:
+                    action = "melanger"
+                elif evenement.key == pygame.K_DELETE:
+                    action = "reset"
+                elif evenement.key == pygame.K_BACKSPACE:
+                    action = "annuler"
             if action == "camera":
                 camera.recentrer()
             elif action == "lettres":
@@ -371,6 +382,7 @@
                  "U haut | D bas | F devant",
                  "B derrière | L gauche | R droite"]
         aides += ["U D F B L R : tourner une face", "Maj + lettre : sens inverse"]
+        aides += ["Espace : mélanger | Suppr : zéro", "Retour arrière : annuler"]
         for indice, texte in enumerate(aides):
             colonne, ligne = divmod(indice, 5)
             fenetre.blit(petite.render(texte, True, (210, 219, 238)),
@@ -383,6 +395,8 @@
         else:
             etat = "Cube résolu !" if est_resolu(partie.cube) else "Cube en cours"
         fenetre.blit(petite.render(etat, True, (255, 222, 110)), (725, 654))
+        fenetre.blit(petite.render(f"Tes coups : {partie.compteur}", True, (240,245,255)), (725, 681))
+        fenetre.blit(petite.render(partie.message, True, (240,245,255)), (30, 716))
         pygame.display.flip()
     pygame.quit()
 
