#include <stdio.h>
#include <stdlib.h>
-#define N 3 /* Taille du cube */
+#define N 4 /* Taille du cube */
#define Taille N*N*N /* Nombre de petits cubes */
//#define Nb_sit 1 /* Nombre de situations de départ : pour 2, une seule */
-#define Nb_sit 3 /* Nombre de situations de départ : pour 3 et 4, il y en a 3 */
+#define Nb_sit 6 /* Nombre de situations de départ : pour 3 et 4, il y en a 3 */
+ /* Pour le cube d'ismael : 6 */
#define D 3 /* On travaille en 3 dimensions */
/* NB : pas adapté à faire autre chose que 3 dimensions !
Ou en tous cas pas sans un peu de boulot */
/* Pour changer la taille : changer N, changer la séquence des longueurs (en dessous),
et changer l'initialisation (voir le main) */
-// nombre de situations
+// nombre de situations testées
static int nb_tests = 0 ;
/* La séquence des longueurs : spécifique au cube */
/* N = 3 */
-int sequence[Taille] =
-{ 3, 0, 0, 1, 1, 2, 0, 1, 2, 0, 1, 1, 2, 0, 2, 0, 1, 1, 1, 2, 0, 2, 0, 2, 0, 2, 0 } ;
+//int sequence[Taille] =
+//{ 3, 0, 0, 1, 1, 2, 0, 1, 2, 0, 1, 1, 2, 0, 2, 0, 1, 1, 1, 2, 0, 2, 0, 2, 0, 2, 0 } ;
/* N = 2 */
{ 2, 0, 1, 1, 1, 1, 1, 1} ;
*/
/* N = 4 */
+
/*
int sequence[Taille] =
{
} ;
*/
+// Cube d'Ismael
+
+int sequence[Taille] =
+{
+3, 0, 0, 1, 2, 0, 1, 1, 3, 0, 0, 1, 2, 0, 1, 2, 0, 1, 2, 0, 1, 1, 1, 1, 1, 1, 1, 1,
+2, 0, 2, 0, 1, 1, 1, 1, 1, 2, 0, 3, 0, 0, 1, 1, 1, 3, 0, 0, 1, 2, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+3, 0, 0, 1
+} ;
+
+
/* La liste des orientations possibles */
int orientations[2*D][D] =
{
if(reussi)
return 1 ;
// si pas réussi, il faut tester d'autres orientations !
+
}
+ // libérer la situation qu'on a testée
+ free(retour) ;
}
}
if(V)
int orX[D] = {1,0,0} ;
/* Spécifique à la taille N donnée */
/* N = 3 */
-
+/*
prepare(situations_depart[0], 0, 0, 0, orX) ;
prepare(situations_depart[1], 0, 1, 0, orX) ;
prepare(situations_depart[2], 0, 1, 1, orX) ;
-
+*/
/* N = 2 */
// prepare(situations_depart[0], 0, 0, 0, orX) ;
+
+ /* N= 4, cube d'ismael */
+ prepare(situations_depart[0], 0, 0, 0, orX) ;
+ prepare(situations_depart[1], 0, 1, 0, orX) ;
+ prepare(situations_depart[2], 0, 1, 1, orX) ;
+
+ prepare(situations_depart[3], 1, 0, 0, orX) ;
+ prepare(situations_depart[4], 1, 1, 0, orX) ;
+ prepare(situations_depart[5], 1, 1, 1, orX) ;
+
+
/* Fin spécifique taille N donnée */