POUR LE BINÔME ADULTE
Lignes avec - : retirées. Lignes avec + : ajoutées.
Les autres donnent le contexte. Ce fichier ne se lance pas.

--- rubiks_etape_05.py
+++ rubiks_etape_06.py
@@ -1,5 +1,5 @@
-"""Rubik's Cube — étape 05.
-Lancement : py rubiks_etape_05.py
+"""Rubik's Cube — étape 06.
+Lancement : py rubiks_etape_06.py
 Chaque fichier fonctionne seul. Lis aussi le carnet Word.
 """
 
@@ -94,16 +94,18 @@
 def main():
     pygame.init()
     fenetre = pygame.display.set_mode((1000, 700))
-    pygame.display.set_caption("Mon Rubik's Cube - Etape 5")
+    pygame.display.set_caption("Mon Rubik's Cube - Etape 6")
     horloge = pygame.time.Clock()
     police = pygame.font.Font(None, 25)
     petite = pygame.font.Font(None, 21)
     cube = creer_cube()
     # Un bouton contient un rectangle, un texte et une action.
     boutons = []
-    for indice, face in enumerate("F"):
+    for indice, face in enumerate("UDFBLR"):
         boutons.append((pygame.Rect(685, 110 + indice * 47, 110, 37),
                         face, (face, False)))
+        boutons.append((pygame.Rect(810, 110 + indice * 47, 110, 37),
+                        face + "'", (face, True)))
     en_marche = True
     while en_marche:
         action = None
@@ -115,12 +117,17 @@
                 for rectangle, texte, commande in boutons:
                     if rectangle.collidepoint(evenement.pos):
                         action = commande
+            if evenement.type == pygame.KEYDOWN:
+                lettre = pygame.key.name(evenement.key).upper()
+                if lettre in COULEURS:
+                    inverse = bool(evenement.mod & pygame.KMOD_SHIFT)
+                    action = (lettre, inverse)
             if isinstance(action, tuple):
                 face, inverse = action
                 tourner(cube, face, inverse)
 
         fenetre.fill(FOND)
-        fenetre.blit(police.render('Mon premier vrai mouvement', True, (245, 245, 245)), (24, 20))
+        fenetre.blit(police.render('Je commande les six faces', True, (245, 245, 245)), (24, 20))
         for face in POSITIONS:
             x, y = origine(face)
             fenetre.blit(petite.render(face, True, (240, 240, 240)), (x, y - 20))
@@ -137,7 +144,10 @@
             pygame.draw.rect(fenetre, (65, 75, 100), rectangle, border_radius=6)
             etiquette = police.render(texte, True, (255, 255, 255))
             fenetre.blit(etiquette, etiquette.get_rect(center=rectangle.center))
-        fenetre.blit(petite.render("Clique F quatre fois : retour au départ !", True, (240,240,240)), (24,630))
+        fenetre.blit(petite.render("Une lettre = un tour horaire", True, (235, 235, 240)), (685, 60))
+        fenetre.blit(petite.render("Apostrophe = tour inverse", True, (235, 235, 240)), (685, 82))
+        aide = "Clavier : U D F B L R. Maintiens Maj pour le sens inverse."
+        fenetre.blit(petite.render(aide, True, (235, 235, 240)), (24, 625))
         pygame.display.flip()
         horloge.tick(60)
     pygame.quit()
