% ---------------------------------------------------------------------------- %
%% \file rubikcube.tex
%% \author Sebastien Beaugrand
%% \sa http://beaugrand.chez.com/
%% \copyright CeCILL 2.1 Free Software license
%% \note Sources: Rachma Nikov https://www.youtube.com/watch?v=rxqpT99rnYQ
%%                Tous les secrets du Rubik's cube, Jérome Jean-Charles
%%                https://texample.net/tikz/examples/sudoku-3d-cube/
% ---------------------------------------------------------------------------- %
\documentclass[a5paper]{article}
\usepackage{vmargin}
\setpapersize{custom}{148mm}{210mm}
\setmarginsrb{10mm}{7mm}{10mm}{7mm}{0cm}{0cm}{0cm}{0cm}
\usepackage[french]{babel}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{times}
\usepackage[outline]{contour}
\usepackage{tikz}
\usetikzlibrary{positioning}
\pagestyle{empty}
\parindent0cm

\def\colsize{6.5cm}
\def\scale{0.75}
\def\scaleS{0.55}
\def\rh#1{$#1$}
\def\ri#1{$#1^{-1}$}

\begin{document}
\Huge
\vspace*{\stretch{1}}
\centerline{\color{white}\contour{black}{Rubik's cube}}
\vspace{2cm}
\vspace*{\stretch{1}}
\newpage
~\\
\newpage
\normalsize
\begin{center}
\Large
Rubik's cube 3x3x3
\normalsize\\
~\\
Avec une formule $F$, un mouvement $M$, et le principe d'armement
\end{center}
\vfill
\begin{minipage}[t]{\colsize}
\textbf{1. Placer les coins}\\
$M = $ \rh{D} (\rh{H} \rh{A} \ri{H} \ri{A}) \ri{D} \rh{A}\\
\begin{tikzpicture}[every node/.style={minimum size=1cm},on grid,scale=\scaleS]
\begin{scope}[every node/.append style={yslant=-0.5},yslant=-0.5]
  \node at (1.5,1.5) {A};
  \draw (0,0) grid (3,3);
  \node at (0.5,0.5) {1};
\end{scope}
\begin{scope}[every node/.append style={yslant=0.5},yslant=0.5]
  \node at (3.5,-0.5) {2};
  \node at (4.5,-1.5) {D};
  \draw (3,-3) grid (6,0);
\end{scope}
\begin{scope}[every node/.append style={yslant=-0.5,xslant=1},yslant=-0.5,xslant=1]
  \node at (-1.5,4.5) {H};
  \draw (-3,3) grid (0,6);
\end{scope}
\end{tikzpicture}\\
\textbf{2. Placer les arêtes}\\
$F^2 = $ \rh{H} \rh{A} \ri{H} \ri{A} \rh{H} \rh{A} \ri{H} \ri{A}\\
\begin{tikzpicture}[every node/.style={minimum size=1cm},on grid,scale=\scaleS]
\begin{scope}[every node/.append style={yslant=-0.5},yslant=-0.5]
  \node at (1.5,2.5) {2};
  \node at (0.5,1.5) {1};
  \node at (1.5,1.5) {A};
  \draw (0,0) grid (3,3);
\end{scope}
\begin{scope}[every node/.append style={yslant=0.5},yslant=0.5]
  \node at (4.5,-0.5) {3};
  \node at (4.5,-1.5) {D};
  \draw (3,-3) grid (6,0);
\end{scope}
\begin{scope}[every node/.append style={yslant=-0.5,xslant=1},yslant=-0.5,xslant=1]
  \node at (-1.5,4.5) {H};
  \draw (-3,3) grid (0,6);
\end{scope}
\end{tikzpicture}\\
\textbf{3. Orienter les arêtes}\\
$M^2$\\
\begin{tikzpicture}[every node/.style={minimum size=1cm},on grid,scale=\scaleS]
\begin{scope}[every node/.append style={yslant=-0.5},yslant=-0.5]
  \node at (1.5,2.5) {2};
  \node at (0.5,1.5) {};
  \node at (1.5,1.5) {G};
  \draw (0,0) grid (3,3);
\end{scope}
\begin{scope}[every node/.append style={yslant=0.5},yslant=0.5]
  \node at (4.5,-0.5) {2};
  \node at (4.5,-1.5) {B};
  \draw (3,-3) grid (6,0);
\end{scope}
\begin{scope}[every node/.append style={yslant=0.5,xslant=-1},yslant=0.5,xslant=-1]
  \node at (3.5,1.5) {1};
  \node at (4.5,1.5) {A};
  \node at (4.5,0.5) {1};
  \draw (3,0) grid (6,3);
\end{scope}
\end{tikzpicture}\\
\textbf{4. Orienter les coins}\\
$M^4$\\
\begin{tikzpicture}[every node/.style={minimum size=1cm},on grid,scale=\scaleS]
\begin{scope}[every node/.append style={yslant=-0.5},yslant=-0.5]
  \node at (2.5,2.5) {1};
  \node at (1.5,1.5) {A};
  \node at (0.5,0.5) {1};
  \node at (2.5,0.5) {1};
  \draw (0,0) grid (3,3);
\end{scope}
\begin{scope}[every node/.append style={yslant=0.5},yslant=0.5]
  \node at (3.5,-0.5) {3};
  \node at (4.5,-1.5) {D};
  \node at (3.5,-2.5) {2};
  \draw (3,-3) grid (6,0);
\end{scope}
\begin{scope}[every node/.append style={yslant=-0.5,xslant=1},yslant=-0.5,xslant=1]
  \node at (-1.5,4.5) {H};
  \node at (-0.5,3.5) {2};
  \draw (-3,3) grid (0,6);
\end{scope}
\end{tikzpicture}
\end{minipage}
\begin{minipage}[t]{\colsize}
\textbf{Placer les coins avec armement}\\
\ri{H} $M$ \rh{H}\phantom{()}\\
\begin{tikzpicture}[every node/.style={minimum size=1cm},on grid,scale=\scaleS]
\begin{scope}[every node/.append style={yslant=-0.5},yslant=-0.5]
  \node at (0.5,2.5) {2};
  \node at (1.5,1.5) {A};
  \node at (0.5,0.5) {1};
  \draw (0,0) grid (3,3);
\end{scope}
\begin{scope}[every node/.append style={yslant=0.5},yslant=0.5]
  \node at (4.5,-1.5) {D};
  \draw (3,-3) grid (6,0);
\end{scope}
\begin{scope}[every node/.append style={yslant=-0.5,xslant=1},yslant=-0.5,xslant=1]
  \node at (-1.5,4.5) {H};
  \node at (-2.5,3.5) {};
  \draw (-3,3) grid (0,6);
\end{scope}
\end{tikzpicture}\\
\textbf{Placer les arêtes avec armement}\\
\rh{G} $F^2$ \ri{G}\\
\begin{tikzpicture}[every node/.style={minimum size=1cm},on grid,scale=\scaleS]
\begin{scope}[every node/.append style={yslant=-0.5},yslant=-0.5]
  \node at (1.5,2.5) {2};
  \node at (1.5,1.5) {A};
  \draw (0,0) grid (3,3);
\end{scope}
\begin{scope}[every node/.append style={yslant=0.5},yslant=0.5]
  \node at (4.5,-0.5) {3};
  \node at (4.5,-1.5) {D};
  \draw (3,-3) grid (6,0);
\end{scope}
\begin{scope}[every node/.append style={yslant=-0.5,xslant=1},yslant=-0.5,xslant=1]
  \node at (-2.5,4.5) {1};
  \node at (-1.5,4.5) {H};
  \node at (-2.5,3.5) {};
  \draw (-3,3) grid (0,6);
\end{scope}
\end{tikzpicture}\\
\textbf{Orienter les arêtes avec armement}\\
\ri{D} \ri{B} $M^2$ \rh{B} \rh{D}\\
\begin{tikzpicture}[every node/.style={minimum size=1cm},on grid,scale=\scaleS]
\begin{scope}[every node/.append style={yslant=-0.5},yslant=-0.5]
  \node at (1.5,2.5) {2};
  \node at (1.5,1.5) {G};
  \draw (0,0) grid (3,3);
\end{scope}
\begin{scope}[every node/.append style={yslant=0.5},yslant=0.5]
  \node at (4.5,-1.5) {B};
  \draw (3,-3) grid (6,0);
\end{scope}
\begin{scope}[every node/.append style={yslant=0.5,xslant=-1},yslant=0.5,xslant=-1]
  \node at (3.5,2.5) {};
  \node at (3.5,1.5) {1};
  \node at (4.5,1.5) {A};
  \node at (5.5,1.5) {2};
  \draw (3,0) grid (6,3);
\end{scope}
\end{tikzpicture}\\
\textbf{Orienter les coins avec armement}\\
\rh{H} $M^4$ \ri{H}\\
\begin{tikzpicture}[every node/.style={minimum size=1cm},on grid,scale=\scaleS]
\begin{scope}[every node/.append style={yslant=-0.5},yslant=-0.5]
  \node at (1.5,1.5) {A};
  \node at (0.5,0.5) {1};
  \node at (2.5,0.5) {1};
  \draw (0,0) grid (3,3);
\end{scope}
\begin{scope}[every node/.append style={yslant=0.5},yslant=0.5]
  \node at (5.5,-0.5) {1};
  \node at (4.5,-1.5) {D};
  \node at (3.5,-2.5) {2};
  \draw (3,-3) grid (6,0);
\end{scope}
\begin{scope}[every node/.append style={yslant=-0.5,xslant=1},yslant=-0.5,xslant=1]
  \node at (-0.5,5.5) {2};
  \node at (-1.5,4.5) {H};
  \node at (-2.5,3.5) {};
  \draw (-3,3) grid (0,6);
\end{scope}
\end{tikzpicture}
\end{minipage}
\vfill
\begin{center}
\scriptsize
\copyright 2021 Sébastien Beaugrand -- CeCILL 2.1
\end{center}
\newpage
\begin{center}
\Large
Rubik's cube 3x3x3
\normalsize
\end{center}
\vfill
\begin{minipage}[t]{\colsize}
\textbf{1. La croix du premier étage}\\

\begin{tikzpicture}[every node/.style={minimum size=1cm},on grid,scale=\scale]
\begin{scope}[every node/.append style={yslant=-0.5},yslant=-0.5]
  \node at (1.5,2.5) {1};
  \node at (1.5,1.5) {A};
  \draw (0,0) grid (3,3);
\end{scope}
\begin{scope}[every node/.append style={yslant=0.5},yslant=0.5]
  \node at (4.5,-1.5) {D};
  \draw (3,-3) grid (6,0);
\end{scope}
\begin{scope}[every node/.append style={yslant=-0.5,xslant=1},yslant=-0.5,xslant=1]
  \node at (-1.5,4.5) {H};
  \node at (-1.5,3.5) {2};
  \draw (-3,3) grid (0,6);
\end{scope}
\end{tikzpicture}\\
\rh{A} \ri{H} \rh{D} \rh{H}\\

\textbf{2. Les coins du premier étage}\\

\begin{tikzpicture}[every node/.style={minimum size=1cm},on grid,scale=\scale]
\begin{scope}[every node/.append style={yslant=-0.5},yslant=-0.5]
  \node at (2.5,2.5) {2};
  \node at (1.5,1.5) {A};
  \node at (2.5,0.5) {1};
  \draw (0,0) grid (3,3);
\end{scope}
\begin{scope}[every node/.append style={yslant=0.5},yslant=0.5]
  \node at (4.5,-1.5) {D};
  \draw (3,-3) grid (6,0);
\end{scope}
\begin{scope}[every node/.append style={yslant=-0.5,xslant=1},yslant=-0.5,xslant=1]
  \node at (-1.5,4.5) {H};
  \draw (-3,3) grid (0,6);
\end{scope}
\end{tikzpicture}\\
\ri{D} \ri{B} \rh{D} \rh{B}\\

\begin{tikzpicture}[every node/.style={minimum size=1cm},on grid,scale=\scale]
\begin{scope}[every node/.append style={yslant=-0.5},yslant=-0.5]
  \node at (1.5,1.5) {A};
  \draw (0,0) grid (3,3);
\end{scope}
\begin{scope}[every node/.append style={yslant=0.5},yslant=0.5]
  \node at (3.5,-0.5) {2};
  \node at (4.5,-1.5) {D};
  \node at (3.5,-2.5) {1};
  \draw (3,-3) grid (6,0);
\end{scope}
\begin{scope}[every node/.append style={yslant=-0.5,xslant=1},yslant=-0.5,xslant=1]
  \node at (-1.5,4.5) {H};
  \draw (-3,3) grid (0,6);
\end{scope}
\end{tikzpicture}\\
\rh{A} \rh{B} \ri{A} \ri{B}
\end{minipage}
\begin{minipage}[t]{\colsize}
\textbf{3. Les arêtes du second étage}\\
\emph{Algorithme de monsieur distrait}\\
\begin{tikzpicture}[every node/.style={minimum size=1cm},on grid,scale=\scale]
\begin{scope}[every node/.append style={yslant=-0.5},yslant=-0.5]
  \node at (1.5,1.5) {G};
  \draw (0,0) grid (3,3);
\end{scope}
\begin{scope}[every node/.append style={yslant=0.5},yslant=0.5]
  \node at (4.5,-1.5) {B};
  \draw (3,-3) grid (6,0);
\end{scope}
\begin{scope}[every node/.append style={yslant=0.5,xslant=-1},yslant=0.5,xslant=-1]
  \node at (3.5,1.5) {2};
  \node at (4.5,1.5) {A};
  \node at (4.5,0.5) {1};
  \draw (3,0) grid (6,3);
\end{scope}
\end{tikzpicture}\\
\begin{tabular}{@{}l@{\hspace{5pt}}l@{}}
\rh{B} & monsieur distrait part à droite\\
\rh{G} & ses amis descendent pour lui dire\\
\ri{B} & monsieur distrait revient\\
\ri{G} & ses amis remontent\\
\ri{B} & monsieur distrait continue à gauche\\
\ri{A} & il fait tomber tous ses amis\\
\rh{B} & il revient en arrière\\
\rh{A} & il les aide à se redresser\\
\end{tabular}\\

\begin{tikzpicture}[every node/.style={minimum size=1cm},on grid,scale=\scale]
\begin{scope}[every node/.append style={yslant=-0.5},yslant=-0.5]
  \node at (1.5,1.5) {B};
  \draw (0,0) grid (3,3);
\end{scope}
\begin{scope}[every node/.append style={yslant=0.5},yslant=0.5]
  \node at (4.5,-1.5) {D};
  \draw (3,-3) grid (6,0);
\end{scope}
\begin{scope}[every node/.append style={yslant=-0.5,xslant=1},yslant=-0.5,xslant=1]
  \node at (-1.5,4.5) {A};
  \node at (-0.5,4.5) {2};
  \node at (-1.5,3.5) {1};
  \draw (-3,3) grid (0,6);
\end{scope}
\end{tikzpicture}\\
\begin{tabular}{@{}l@{\hspace{5pt}}l@{}}
\ri{B} & monsieur distrait part à gauche\\
\ri{D} & ses amis descendent pour lui dire\\
\rh{B} & monsieur distrait revient\\
\rh{D} & ses amis remontent\\
\rh{B} & monsieur distrait continue à droite\\
\rh{A} & il fait tomber tous ses amis\\
\ri{B} & il revient en arrière\\
\ri{A} & il les aide à se redresser\\
\end{tabular}
\end{minipage}
\vfill
\begin{center}
\scriptsize
\copyright 2021 Sébastien Beaugrand -- CeCILL 2.1
\end{center}
\newpage
\begin{minipage}[t]{\colsize}
\textbf{4. La croix du troisième étage}\\
(à partir du point, virgule ou trait)\\
\emph{Algorithme de la lampe}\\
\begin{tikzpicture}[every node/.style={minimum size=1cm},on grid,scale=\scale]
\begin{scope}[every node/.append style={yslant=-0.5},yslant=-0.5]
  \node at (1.5,2.5) {1};
  \node at (1.5,1.5) {A};
  \draw (0,0) grid (3,3);
\end{scope}
\begin{scope}[every node/.append style={yslant=0.5},yslant=0.5]
  \node at (4.5,-1.5) {D};
  \draw (3,-3) grid (6,0);
\end{scope}
\begin{scope}[every node/.append style={yslant=-0.5,xslant=1},yslant=-0.5,xslant=1]
  \node at (-1.5,5.5) {3};
  \node at (-1.5,4.5) {H};
  \node at (-0.5,4.5) {2};
  \draw (-3,3) grid (0,6);
\end{scope}
\end{tikzpicture}\\
\begin{tabular}{@{}l@{\hspace{5pt}}l@{}}
\rh{A} & une lampe tombe\\
\rh{D} & un homme la redresse\\
\rh{H} & la remet à sa place\\
\ri{D} & la lampe retombe\\
\ri{H} & l'homme recule\\
\ri{A} & la redresse en tirant\\
\end{tabular}\\
~\\
~\\
~\\

\textbf{5. La ronde des arêtes}\\
\emph{Algorithme de la chaise}\\
\begin{tikzpicture}[every node/.style={minimum size=1cm},on grid,scale=\scale]
\begin{scope}[every node/.append style={yslant=-0.5},yslant=-0.5]
  \node at (1.5,1.5) {A};
  \draw (0,0) grid (3,3);
\end{scope}
\begin{scope}[every node/.append style={yslant=0.5},yslant=0.5]
  \node at (4.5,-1.5) {D};
  \draw (3,-3) grid (6,0);
\end{scope}
\begin{scope}[every node/.append style={yslant=-0.5,xslant=1},yslant=-0.5,xslant=1]
  \node at (-1.5,5.5) {2};
  \node at (-2.5,4.5) {1};
  \node at (-1.5,4.5) {H};
  \node at (-0.5,4.5) {3};
  \draw (-3,3) grid (0,6);
\end{scope}
\end{tikzpicture}\\
\begin{tabular}{@{}l@{\hspace{5pt}}l@{}}
\rh{D} & un monsieur monte\\
\rh{H} & il part loin\\
\rh{H} & encore plus loin\\
\ri{D} & sa chaise tombe\\
\ri{H} & il revient un peu en arrière\\
\rh{D} & redresse sa chaise\\
\ri{H} & revient encore en arrière\\
\ri{D} & s'assoit sur sa chaise\\
\end{tabular}\\
\\
\small{Pour deux arêtes mal placées:\\commencer avec une arête mal placée sur l'avant}
\end{minipage}
\begin{minipage}[t]{\colsize}
\textbf{6. Placer les coins}\\
\emph{Algorithme de madame curieuse}\\
\begin{tikzpicture}[every node/.style={minimum size=1cm},on grid,scale=\scale]
\begin{scope}[every node/.append style={yslant=-0.5},yslant=-0.5]
  \node at (0.5,2.5) {1};
  \node at (1.5,1.5) {A};
  \draw (0,0) grid (3,3);
\end{scope}
\begin{scope}[every node/.append style={yslant=0.5},yslant=0.5]
  \node at (5.5,-0.5) {3};
  \node at (4.5,-1.5) {D};
  \draw (3,-3) grid (6,0);
\end{scope}
\begin{scope}[every node/.append style={yslant=-0.5,xslant=1},yslant=-0.5,xslant=1]
  \node at (-2.5,5.5) {2};
  \node at (-1.5,4.5) {H};
  \draw (-3,3) grid (0,6);
\end{scope}
\end{tikzpicture}\\
\begin{tabular}{@{}l@{\hspace{5pt}}l@{}}
\ri{G} & ses amis de gauche montent\\
\rh{H} & elle va leur dire bonjour\\
\rh{D} & ses amis de droite montent\\
\ri{H} & elle va leur dire bonjour\\
\rh{G} & ses amis de gauche redescendent\\
\rh{H} & elle va leur dire au revoir\\
\ri{D} & ses amis de droite redescendent\\
\ri{H} & elle va leur dire au revoir\\
\end{tabular}\\
~\\
\small
Pour deux coins mal placés sur un cube 2x2x2:\\
les mettre sur l'avant et faire deux fois l'algorithme\\
\normalsize

\textbf{7. Orienter les coins}\\
\emph{Algorithme du petit chaperon rouge}\\
\begin{tikzpicture}[every node/.style={minimum size=1cm},on grid,scale=\scale]
\begin{scope}[every node/.append style={yslant=-0.5},yslant=-0.5]
  \node at (2.5,2.5) {1};
  \node at (1.5,1.5) {A};
  \draw (0,0) grid (3,3);
\end{scope}
\begin{scope}[every node/.append style={yslant=0.5},yslant=0.5]
  \node at (3.5,-0.5) {2};
  \node at (4.5,-1.5) {D};
  \draw (3,-3) grid (6,0);
\end{scope}
\begin{scope}[every node/.append style={yslant=-0.5,xslant=1},yslant=-0.5,xslant=1]
  \node at (-1.5,4.5) {H};
  \node at (-0.5,3.5) {3};
  \draw (-3,3) grid (0,6);
\end{scope}
\end{tikzpicture}\\
\begin{tabular}{@{}l@{\hspace{5pt}}l@{}}
\ri{D} & le loup descent\\
\ri{B} & le petit chaperon rouge va se cacher\\
\rh{D} & le loup remonte\\
\rh{B} & le petit chaperon rouge ressort\\
\ri{D} & le loup redescent\\
\ri{B} & le petit chaperon rouge retourne se cacher\\
\rh{D} & le loup remonte\\
\rh{B} & le petit chaperon rouge ressort\\
\end{tabular}\\
\\
\small{Tourner la face haute pour changer de coin}
\end{minipage}
\newpage
\begin{center}
\Large
Rubik's cube 4x4x4
\normalsize
\end{center}
\vfill
\begin{minipage}[t]{\colsize}
\textbf{1. Les centres}\\
\emph{Algorithme de l'ascenseur}\\
\begin{tikzpicture}[every node/.style={minimum size=1cm},on grid,scale=\scaleS]
\begin{scope}[every node/.append style={yslant=-0.5},yslant=-0.5]
  \node at (1.5,2.5) {A};
  \node at (2.5,2.5) {2};
  \node at (1.5,1.5) {A};
  \node at (2.5,1.5) {2};
  \draw (0,0) grid (4,4);
\end{scope}
\begin{scope}[every node/.append style={yslant=0.5},yslant=0.5]
  \node at (5.5,-1.5) {D};
  \node at (6.5,-1.5) {D};
  \node at (5.5,-2.5) {D};
  \node at (6.5,-2.5) {D};
  \draw (4,-4) grid (8,0);
\end{scope}
\begin{scope}[every node/.append style={yslant=-0.5,xslant=1},yslant=-0.5,xslant=1]
  \node at (-2.5,6.5) {1};
  \node at (-1.5,6.5) {H};
  \node at (-2.5,5.5) {1};
  \node at (-1.5,5.5) {H};
  \draw (-4,4) grid (0,8);
\end{scope}
\end{tikzpicture}\\
\begin{tabular}{@{}l@{\hspace{5pt}}l@{}}
\rh{Dd} & l'ascenseur monte\\
\rh{2H} & prend les passagers\\
\ri{Dd} & l'ascenseur redescend\\
\end{tabular}\\
~\\
\small
Ordre des couleurs avec le haut blanc et\\
le bas jaune: rouge, bleu, orange, vert\\
\normalsize

\textbf{2. Les arêtes}\\
\emph{Algorithme du bus}\\
\begin{tikzpicture}[every node/.style={minimum size=1cm},on grid,scale=\scaleS]
\begin{scope}[every node/.append style={yslant=-0.5},yslant=-0.5]
  \node at (0.5,2.5) {1};
  \node at (1.5,2.5) {A};
  \node at (2.5,2.5) {A};
  \node at (3.5,2.5) {=};
  \node at (1.5,1.5) {A};
  \node at (2.5,1.5) {A};
  \node at (3.5,1.5) {2};
  \draw (0,0) grid (4,4);
\end{scope}
\begin{scope}[every node/.append style={yslant=0.5},yslant=0.5]
  \node at (4.5,-1.5) {=};
  \node at (5.5,-1.5) {D};
  \node at (6.5,-1.5) {D};
  \node at (5.5,-2.5) {D};
  \node at (6.5,-2.5) {D};
  \draw (4,-4) grid (8,0);
\end{scope}
\begin{scope}[every node/.append style={yslant=-0.5,xslant=1},yslant=-0.5,xslant=1]
  \node at (-2.5,6.5) {H};
  \node at (-1.5,6.5) {H};
  \node at (-2.5,5.5) {H};
  \node at (-1.5,5.5) {H};
  \draw (-4,4) grid (0,8);
\end{scope}
\end{tikzpicture}\\
\begin{tabular}{@{}l@{\hspace{5pt}}l@{}}
\ri{Hh} & le bus arrive\\
\rh{D}  & la porte s'ouvre\\
\ri{A}  & un monsieur monte\\
\rh{H}  & il va au fond du bus\\
\ri{D}  & la porte se referme\\
\rh{A}  & le monsieur redescend\\
\rh{Hh} & le bus repart en arrière\\
\end{tabular}\\
~\\

\textbf{3. Résoudre comme un cube 3x3x3}\\
En résolvant les problèmes de parité.\\
Pour remplacer l'algorithme de 15 étapes:\\
\rh{Dd} et reprendre au début
\end{minipage}
\begin{minipage}[t]{\colsize}
\begin{flushleft}
\textbf{4. Résoudre les problèmes de parité}
\end{flushleft}
\begin{tikzpicture}[every node/.style={minimum size=1cm},on grid,scale=\scaleS]
\begin{scope}[every node/.append style={yslant=-0.5},yslant=-0.5]
  \node at (1.5,2.5) {A};
  \node at (2.5,2.5) {A};
  \node at (1.5,1.5) {A};
  \node at (2.5,1.5) {A};
  \draw (0,0) grid (4,4);
\end{scope}
\begin{scope}[every node/.append style={yslant=0.5},yslant=0.5]
  \node at (5.5,-1.5) {D};
  \node at (6.5,-1.5) {D};
  \node at (5.5,-2.5) {D};
  \node at (6.5,-2.5) {D};
  \draw (4,-4) grid (8,0);
\end{scope}
\begin{scope}[every node/.append style={yslant=-0.5,xslant=1},yslant=-0.5,xslant=1]
  \node at (-2.5,7.5) {2};
  \node at (-1.5,7.5) {2};
  \node at (-2.5,6.5) {H};
  \node at (-1.5,6.5) {H};
  \node at (-2.5,5.5) {H};
  \node at (-1.5,5.5) {H};
  \node at (-2.5,4.5) {1};
  \node at (-1.5,4.5) {1};
  \draw (-4,4) grid (0,8);
\end{scope}
\end{tikzpicture}\\
\begin{tabular}{@{}l@{\hspace{5pt}}l@{}}
\rh{2d}  & un monsieur monte de deux étages\\
\rh{2H}  & ouvre en grand la première porte\\
\rh{2d}  & remonte de deux étages\\
\rh{2Hh} & ouvre en grand deux autres portes\\
\rh{2d}  & remonte de deux étages\\
\rh{2h}  & ouvre en grand la deuxième porte\\
\end{tabular}\\
\begin{tikzpicture}[every node/.style={minimum size=1cm},on grid,scale=\scaleS]
\begin{scope}[every node/.append style={yslant=-0.5},yslant=-0.5]
  \node at (1.5,3.5) {1};
  \node at (2.5,3.5) {1};
  \node at (1.5,2.5) {A};
  \node at (2.5,2.5) {A};
  \node at (1.5,1.5) {A};
  \node at (2.5,1.5) {A};
  \draw (0,0) grid (4,4);
\end{scope}
\begin{scope}[every node/.append style={yslant=0.5},yslant=0.5]
  \node at (5.5,-1.5) {D};
  \node at (6.5,-1.5) {D};
  \node at (5.5,-2.5) {D};
  \node at (6.5,-2.5) {D};
  \draw (4,-4) grid (8,0);
\end{scope}
\begin{scope}[every node/.append style={yslant=-0.5,xslant=1},yslant=-0.5,xslant=1]
  \node at (-2.5,6.5) {H};
  \node at (-1.5,6.5) {H};
  \node at (-2.5,5.5) {H};
  \node at (-1.5,5.5) {H};
  \node at (-2.5,4.5) {2};
  \node at (-1.5,4.5) {2};
  \draw (-4,4) grid (0,8);
\end{scope}
\end{tikzpicture}\\
\begin{tabular}{@{}l@{\hspace{5pt}}l@{}}
\rh{2d} & un monsieur monte deux étages\\
\rh{2P} & ferme la porte de derrière à double tour\\
\rh{2H} & regarde autour de lui\\
\rh{g}  & redescend d'un étage\\
\rh{2H} & regarde autour de lui\\
\ri{d}  & redescend d'un étage\\
\rh{2H} & regarde autour de lui\\
\rh{d}  & remonte d'un étage\\
\rh{2H} & regarde autour de lui\\
\rh{2A} & ferme la porte de devant à double tour\\
\rh{d}  & monte au deuxième étage\\
\rh{2A} & ferme la porte de devant à double tour\\
\ri{g}  & monte au troisième étage\\
\rh{2P} & ferme la porte de derrière à double tour\\
\ri{2d} & redescend de deux étages\\
\end{tabular}
\end{minipage}
\newpage
\begin{center}
\Large
Rubik's cube 5x5x5
\normalsize
\end{center}
~\\
\begin{minipage}[m]{\colsize}
\textbf{1. Les centres}\\
\emph{Algorithme de l'ascenseur}\\
En préparant les lignes sur les faces\\
non encore faites\\

\textbf{2. Les arêtes}\\
\emph{Algorithme du bus}\\
En choisissant de tourner ou non les\\
milieux d'arêtes\\
\begin{tikzpicture}[every node/.style={minimum size=1cm},on grid,scale=\scaleS]
\begin{scope}[every node/.append style={yslant=-0.5},yslant=-0.5]
  \node at (0.5,3.5) {1};
  \node at (1.5,3.5) {A};
  \node at (2.5,3.5) {A};
  \node at (3.5,3.5) {A};
  \node at (1.5,2.5) {A};
  \node at (2.5,2.5) {A};
  \node at (3.5,2.5) {A};
  \node at (4.5,2.5) {=};
  \node at (1.5,1.5) {A};
  \node at (2.5,1.5) {A};
  \node at (3.5,1.5) {A};
  \node at (4.5,1.5) {2};
  \draw (0,0) grid (5,5);
\end{scope}
\begin{scope}[every node/.append style={yslant=0.5},yslant=0.5]
  \node at (6.5,-1.5) {D};
  \node at (7.5,-1.5) {D};
  \node at (8.5,-1.5) {D};
  \node at (5.5,-2.5) {=};
  \node at (6.5,-2.5) {D};
  \node at (7.5,-2.5) {D};
  \node at (8.5,-2.5) {D};
  \node at (6.5,-3.5) {D};
  \node at (7.5,-3.5) {D};
  \node at (8.5,-3.5) {D};
  \draw (5,-5) grid (10,0);
\end{scope}
\begin{scope}[every node/.append style={yslant=-0.5,xslant=1},yslant=-0.5,xslant=1]
  \node at (-3.5,8.5) {H};
  \node at (-2.5,8.5) {H};
  \node at (-1.5,8.5) {H};
  \node at (-3.5,7.5) {H};
  \node at (-2.5,7.5) {H};
  \node at (-1.5,7.5) {H};
  \node at (-3.5,6.5) {H};
  \node at (-2.5,6.5) {H};
  \node at (-1.5,6.5) {H};
  \draw (-5,5) grid (0,10);
\end{scope}
\end{tikzpicture}\\
\begin{tabular}{@{}l@{\hspace{5pt}}l@{}}
\ri{Hh}\rh{E}& le bus arrive\\
\rh{D}  & la porte s'ouvre\\
\ri{A}  & un monsieur monte\\
\rh{H}  & il va au fond du bus\\
\ri{D}  & la porte se referme\\
\rh{A}  & le monsieur redescend\\
\rh{Hh}\ri{E}& le bus repart en arrière\\
\end{tabular}
\end{minipage}
\begin{minipage}[t]{\colsize}
\begin{tikzpicture}[every node/.style={minimum size=1cm},on grid,scale=\scaleS]
\begin{scope}[every node/.append style={yslant=-0.5},yslant=-0.5]
  \node at (0.5,3.5) {\textbf{1}};
  \node at (1.5,3.5) {A};
  \node at (2.5,3.5) {A};
  \node at (3.5,3.5) {A};
  \node at (1.5,2.5) {A};
  \node at (2.5,2.5) {A};
  \node at (3.5,2.5) {A};
  \node at (4.5,2.5) {1};
  \node at (1.5,1.5) {A};
  \node at (2.5,1.5) {A};
  \node at (3.5,1.5) {A};
  \node at (4.5,1.5) {\textbf{2}};
  \draw (0,0) grid (5,5);
\end{scope}
\begin{scope}[every node/.append style={yslant=0.5},yslant=0.5]
  \node at (6.5,-1.5) {D};
  \node at (7.5,-1.5) {D};
  \node at (8.5,-1.5) {D};
  \node at (5.5,-2.5) {2};
  \node at (6.5,-2.5) {D};
  \node at (7.5,-2.5) {D};
  \node at (8.5,-2.5) {D};
  \node at (6.5,-3.5) {D};
  \node at (7.5,-3.5) {D};
  \node at (8.5,-3.5) {D};
  \draw (5,-5) grid (10,0);
\end{scope}
\begin{scope}[every node/.append style={yslant=-0.5,xslant=1},yslant=-0.5,xslant=1]
  \node at (-3.5,8.5) {H};
  \node at (-2.5,8.5) {H};
  \node at (-1.5,8.5) {H};
  \node at (-3.5,7.5) {H};
  \node at (-2.5,7.5) {H};
  \node at (-1.5,7.5) {H};
  \node at (-3.5,6.5) {H};
  \node at (-2.5,6.5) {H};
  \node at (-1.5,6.5) {H};
  \draw (-5,5) grid (0,10);
\end{scope}
\end{tikzpicture}\\
\begin{tabular}{@{}l@{\hspace{5pt}}l@{}}
\ri{Hh} & le bus arrive\\
\rh{D}  & la porte s'ouvre\\
\ri{A}  & un monsieur monte\\
\rh{H}  & il va au fond du bus\\
\ri{D}  & la porte se referme\\
\rh{A}  & le monsieur redescend\\
\rh{Hh} & le bus repart en arrière\\
\end{tabular}\\
~\\

\textbf{3. Résoudre comme un cube 3x3x3}\\
En résolvant les problèmes de parité.\\
Pour remplacer l'algorithme de 15 étapes:\\
\rh{Dd} et reprendre au début\\
\begin{tikzpicture}[every node/.style={minimum size=1cm},on grid,scale=\scaleS]
\begin{scope}[every node/.append style={yslant=-0.5},yslant=-0.5]
  \node at (1.5,4.5) {=};
  \node at (2.5,4.5) {1};
  \node at (3.5,4.5) {=};
  \node at (1.5,3.5) {A};
  \node at (2.5,3.5) {A};
  \node at (3.5,3.5) {A};
  \node at (1.5,2.5) {A};
  \node at (2.5,2.5) {A};
  \node at (3.5,2.5) {A};
  \node at (1.5,1.5) {A};
  \node at (2.5,1.5) {A};
  \node at (3.5,1.5) {A};
  \draw (0,0) grid (5,5);
\end{scope}
\begin{scope}[every node/.append style={yslant=0.5},yslant=0.5]
  \node at (6.5,-1.5) {D};
  \node at (7.5,-1.5) {D};
  \node at (8.5,-1.5) {D};
  \node at (6.5,-2.5) {D};
  \node at (7.5,-2.5) {D};
  \node at (8.5,-2.5) {D};
  \node at (6.5,-3.5) {D};
  \node at (7.5,-3.5) {D};
  \node at (8.5,-3.5) {D};
  \draw (5,-5) grid (10,0);
\end{scope}
\begin{scope}[every node/.append style={yslant=-0.5,xslant=1},yslant=-0.5,xslant=1]
  \node at (-3.5,8.5) {H};
  \node at (-2.5,8.5) {H};
  \node at (-1.5,8.5) {H};
  \node at (-3.5,7.5) {H};
  \node at (-2.5,7.5) {H};
  \node at (-1.5,7.5) {H};
  \node at (-3.5,6.5) {H};
  \node at (-2.5,6.5) {H};
  \node at (-1.5,6.5) {H};
  \node at (-3.5,5.5) {=};
  \node at (-2.5,5.5) {2};
  \node at (-1.5,5.5) {=};
  \draw (-5,5) grid (0,10);
\end{scope}
\end{tikzpicture}
\end{minipage}
\vfill
\begin{center}
\scriptsize
\copyright 2021 Sébastien Beaugrand -- CeCILL 2.1
\end{center}
\end{document}