diff options
-rw-r--r-- | cube.c | 37 |
1 files changed, 30 insertions, 7 deletions
@@ -1,10 +1,11 @@ | |||
1 | #include <stdio.h> | 1 | #include <stdio.h> |
2 | #include <stdlib.h> | 2 | #include <stdlib.h> |
3 | 3 | ||
4 | #define N 3 /* Taille du cube */ | 4 | #define N 4 /* Taille du cube */ |
5 | #define Taille N*N*N /* Nombre de petits cubes */ | 5 | #define Taille N*N*N /* Nombre de petits cubes */ |
6 | //#define Nb_sit 1 /* Nombre de situations de départ : pour 2, une seule */ | 6 | //#define Nb_sit 1 /* Nombre de situations de départ : pour 2, une seule */ |
7 | #define Nb_sit 3 /* Nombre de situations de départ : pour 3 et 4, il y en a 3 */ | 7 | #define Nb_sit 6 /* Nombre de situations de départ : pour 3 et 4, il y en a 3 */ |
8 | /* Pour le cube d'ismael : 6 */ | ||
8 | #define D 3 /* On travaille en 3 dimensions */ | 9 | #define D 3 /* On travaille en 3 dimensions */ |
9 | /* NB : pas adapté à faire autre chose que 3 dimensions ! | 10 | /* NB : pas adapté à faire autre chose que 3 dimensions ! |
10 | Ou en tous cas pas sans un peu de boulot */ | 11 | Ou en tous cas pas sans un peu de boulot */ |
@@ -16,13 +17,13 @@ | |||
16 | /* Pour changer la taille : changer N, changer la séquence des longueurs (en dessous), | 17 | /* Pour changer la taille : changer N, changer la séquence des longueurs (en dessous), |
17 | et changer l'initialisation (voir le main) */ | 18 | et changer l'initialisation (voir le main) */ |
18 | 19 | ||
19 | // nombre de situations | 20 | // nombre de situations testées |
20 | static int nb_tests = 0 ; | 21 | static int nb_tests = 0 ; |
21 | 22 | ||
22 | /* La séquence des longueurs : spécifique au cube */ | 23 | /* La séquence des longueurs : spécifique au cube */ |
23 | /* N = 3 */ | 24 | /* N = 3 */ |
24 | int sequence[Taille] = | 25 | //int sequence[Taille] = |
25 | { 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 } ; | 26 | //{ 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 } ; |
26 | 27 | ||
27 | 28 | ||
28 | /* N = 2 */ | 29 | /* N = 2 */ |
@@ -30,6 +31,7 @@ int sequence[Taille] = | |||
30 | { 2, 0, 1, 1, 1, 1, 1, 1} ; | 31 | { 2, 0, 1, 1, 1, 1, 1, 1} ; |
31 | */ | 32 | */ |
32 | /* N = 4 */ | 33 | /* N = 4 */ |
34 | |||
33 | /* | 35 | /* |
34 | int sequence[Taille] = | 36 | int sequence[Taille] = |
35 | { | 37 | { |
@@ -38,6 +40,16 @@ int sequence[Taille] = | |||
38 | } ; | 40 | } ; |
39 | */ | 41 | */ |
40 | 42 | ||
43 | // Cube d'Ismael | ||
44 | |||
45 | int sequence[Taille] = | ||
46 | { | ||
47 | 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, | ||
48 | 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, | ||
49 | 3, 0, 0, 1 | ||
50 | } ; | ||
51 | |||
52 | |||
41 | /* La liste des orientations possibles */ | 53 | /* La liste des orientations possibles */ |
42 | int orientations[2*D][D] = | 54 | int orientations[2*D][D] = |
43 | { | 55 | { |
@@ -431,13 +443,24 @@ int main(argc, argv) | |||
431 | int orX[D] = {1,0,0} ; | 443 | int orX[D] = {1,0,0} ; |
432 | /* Spécifique à la taille N donnée */ | 444 | /* Spécifique à la taille N donnée */ |
433 | /* N = 3 */ | 445 | /* N = 3 */ |
434 | 446 | /* | |
435 | prepare(situations_depart[0], 0, 0, 0, orX) ; | 447 | prepare(situations_depart[0], 0, 0, 0, orX) ; |
436 | prepare(situations_depart[1], 0, 1, 0, orX) ; | 448 | prepare(situations_depart[1], 0, 1, 0, orX) ; |
437 | prepare(situations_depart[2], 0, 1, 1, orX) ; | 449 | prepare(situations_depart[2], 0, 1, 1, orX) ; |
438 | 450 | */ | |
439 | /* N = 2 */ | 451 | /* N = 2 */ |
440 | // prepare(situations_depart[0], 0, 0, 0, orX) ; | 452 | // prepare(situations_depart[0], 0, 0, 0, orX) ; |
453 | |||
454 | /* N= 4, cube d'ismael */ | ||
455 | prepare(situations_depart[0], 0, 0, 0, orX) ; | ||
456 | prepare(situations_depart[1], 0, 1, 0, orX) ; | ||
457 | prepare(situations_depart[2], 0, 1, 1, orX) ; | ||
458 | |||
459 | prepare(situations_depart[3], 1, 0, 0, orX) ; | ||
460 | prepare(situations_depart[4], 1, 1, 0, orX) ; | ||
461 | prepare(situations_depart[5], 1, 1, 1, orX) ; | ||
462 | |||
463 | |||
441 | 464 | ||
442 | /* Fin spécifique taille N donnée */ | 465 | /* Fin spécifique taille N donnée */ |
443 | 466 | ||