From c392ad05e623204f3ba8a87025892b57bae8ef2e Mon Sep 17 00:00:00 2001 From: aleandro Date: Fri, 12 Jun 2026 20:49:22 +0200 Subject: [PATCH] Initial commit --- .vscode/tasks.json | 28 ++ main | Bin 0 -> 28832 bytes ...FConflict a.pagani.it 2026-01-22-12-21-01) | Bin 0 -> 18352 bytes ...onflict a.pagani.it 2026-01-22-12-21-01).c | 110 ++++++++ main.c | 261 ++++++++++++++++++ main_bak.c | 114 ++++++++ 6 files changed, 513 insertions(+) create mode 100644 .vscode/tasks.json create mode 100644 main create mode 100644 main (SFConflict a.pagani.it 2026-01-22-12-21-01) create mode 100644 main (SFConflict a.pagani.it 2026-01-22-12-21-01).c create mode 100644 main.c create mode 100644 main_bak.c diff --git a/.vscode/tasks.json b/.vscode/tasks.json new file mode 100644 index 0000000..08d9005 --- /dev/null +++ b/.vscode/tasks.json @@ -0,0 +1,28 @@ +{ + "tasks": [ + { + "type": "cppbuild", + "label": "C/C++: gcc build active file", + "command": "/usr/bin/gcc", + "args": [ + "-fdiagnostics-color=always", + "-g", + "${file}", + "-o", + "${fileDirname}/${fileBasenameNoExtension}" + ], + "options": { + "cwd": "${fileDirname}" + }, + "problemMatcher": [ + "$gcc" + ], + "group": { + "kind": "build", + "isDefault": true + }, + "detail": "Task generated by Debugger." + } + ], + "version": "2.0.0" +} \ No newline at end of file diff --git a/main b/main new file mode 100644 index 0000000000000000000000000000000000000000..1156f4503e36a7c655c55855409e053ebaa876a7 GIT binary patch literal 28832 zcmeHQ3v?9MdA>8NfdxHQFP?s|V8CF5#M3W?tp^JO<`qB=cI>W%v`A}&L{}>th$ApU zsWyvTk(JIo6u&BL$5w38;)JmM{`*+%j-(wW zhtt!Zvln*$d;j~t?tlOP?wy&{%nr};#k!_3RUGVYMy;|;fhm+72diWSppf0cGH{&C zZeqjGPT@GwUnl^2Magu;L#MUkZmh` z$xWS%DX99R`U-hB4PF!pr|F`pU@RY*(zQbLcRdsj*Gs-K2^AkTiLYDobxXb|l#b|@ zQ2CR5LZ8*rpH^6iJ}QO$$e5L{P4ZdcWJ#|e>7YW8KF(rl^@nbbWlTZExAxs&CDpC= zsdk~{Q&8EtTJn7;JFKuk@+qkFeGYswBqT**pu%H~)Hm4t&64w`pqviwlUYzfv9@Go zDbshd4zfk{YfOu4>y|dr=Hf%sLHrM0_pPVTeD9ePD^u3zwKo6u?bLPWX6M)VH{3Qa zzov3#jlZ^G>&&fp+&1&Jd3p79d2_fP(xvpFI;4^fD*9NCgwZV;ysK|%6u_eow7MFPE3<AQ;@xGUU*T1|!z=KV zJ2KQcqB90Bmkf^YiowU`+l3hXa3PW(yJPT5H}5DDL_|xmq>8gl)CjL~n=qMWbYzV1 ze0}GwKp%67{S5x1`?g+}1Q`Dxd+Qly3eu3JwWxUvdHp!p;o28+1e_@8+ zGMnD%UA@jTyJPl`&DMp%2@pJL0mv_H%yUiHO)?qqdx0@qjjs^6^Kx($OuLclFl|Jn z+cjY)(Y-7o=*v0%{09h3ziNhh&66M9W1hV1FtyX>xvRlk2>8uPA;1~w-sqaJsE?oQ z+qv)t@Un)vrDoH@*Fee4(7VBOGraIB8j(@QaO|nTU``vCP}LrKxzAqMQOGv-wMpK^ zD$tffh8g-&j~Qy{KI7>nn=f95o5H2NX2mJf-*I1QX{mX#$8CmAhPqB(o-qAns8j3E zI;Wosm0k*aK-FdX&)@mP+jp2J-*<=3o%`&Yq0Z@DAB98S z+fk(5Z%2_)Y)9c*Vn>m+%8nv)4ID%B!QFh0ds|elyhNdcH7g zk?X_-Nj-T;)Lle9B+AY{D{}3vfU(?WSTO|ZZefKTW#8c73b&0Bt`o{)*kDiGD@?E_ z?7+Hm@fOC4))uWP`dra!Pw3Z0p$nl;LZ^>WCijf`LnMMl(j9ddOKfOb+?)-8SWMXv z2-W!EtQ312VrFaz)N;n`DC1_#CV120X3U;g&X_$R%~;j+!Dp=EGs}$GrI{;c%Iuv> z)O^l(3fs&Z5%b}XcqmG}gp-{^tv#}ym&6l0Xz6rDOLf?ehI9E%fgP({=YcpGYy|)Vspg%CpN)5^~PtKxMZ#ACDN)lw)RY=ObL08+L4_)MrW?KdXCa*P-4BO z!k#1iOeirK%!`^om=EnFM0a+5PHxTBV4%H~bi$C<(j0)NZ3e_oV-j0(%JqCvMoV$p zwULzGQk-#ZB)M9O(`_Vau$_CMrPxKJt)qHy`5|=L4Eh*T(bHDBhbu!m>B+B2RuUMUQF_C(`wfHjY}eD^=CZv(-roCC+yi54af)qHk}$4&TSho6ZRwi_v?*6X!7hsZJ*xwR7@s(pQ zkPX-!T?o1CeH!X4(N@~#f10Te&O92_H^2Wx7@hcl8Kc*Fq9)6SD*1b%PR}b zusqK-&9LWL9@>Y77~0Pwpr6$nUuyCkLhX>=_>VE6{rP^OeKzblJG9WYB@>~Yn2c{? zD5`D9q9?<}2+0^EVlBHLN?_X^QpC{V5@OVR^L4r3d_EF63V8m_NaOa+(rftpCu1g#4Y{Sp_34c94V<87WkYjAoaQ>&e`0W*&hfl}rkw_sR%g9`uF?N|N z^-eFS=OU3M^iu@Y zzhsZ2DaEm1B#21HL3}>>k4R)b{qeP;am>ml8Pwl_&+v~Tkrx4@{rV57o0k+E$#4vb z|J^wu2}hq~NqQjZfuskL9!Pp1>4BsNk{(EUAnAesn;uv#pX;NZ??d}}D#Ze@GzrxM zhVXD9UXIKX5I=(BMLkF8I@y+|35=cxMMXVNh|VpjsQ%wwjnq-QOFkS(J(H(Xo=DKS z7nNSwPp33gzApevm2j+tqa;*7vaufd{2)4IqGAdVJx`?!NPW<>y}6-Y)y`SBJb`*)7HYuLJe`IIH5@_}MCB zizU2ILPh5;6SXBJC3m@};fZ9^-LvQC&B>eXo-=FC{MoZ-&*6{c64M}@dA|(7`|tz% zfyy4Z#$XyJPA>z+4UQ$F9gLqnqcsqFigUP$u9TGFD+p-Ly9nsR>0~!W8&<$u#?JsU zQVcxJi={Y?Ux>aE0M{lQMg(xk{3jf8wX{r%w~<@fh=%~#$Zaf*Dk&qkGZ$5ySwF#1 z%NR*yX>2(0pTftOO9z%sQZ$$2F@T&`aL{WtF5o@Xb05WF6dU~{fOf?oai8YnfWl9{ z0ks1+BVL9*fa)JdQq{4yGEJ1T%hZfwtg_ULtTCQs?VJLXFhr6ze1f#`%=g*+M!`sD7#Qc_HB+q|T#4=TWKiUFe*PKZmFC1p(M) z!Er+B+_S?`ASozSsX*tCq|P?d`FFB^xzu?}3is4$sq>i7c~0tl4?0KA6q39Guo}Vf zrqsD_ha*Q)ESD6}`3tFYKXf{_%Kp_-CuZgysqaOh?_;U&KQa9yPC*P$G|G>-6dQ36 z7~b_0)#YSqCqO^r(Hxb1C{prb~qr(@EnUkdzAYcpK94w0p)W=@WQ zpij*)vYf|_bmw{_L!X*!D~(akH;nO2PjNUl zp_Yr9w#?8RW7>^dmm6>C&U~Xs-(~z#-)LOYok7D`X8cHBX1ogAap2BL+*82q*V~Qf zWcxD+iDY3z+C|Db>QBS>VF8_cVObn2~4ajFdB9ln>HGcOQLlJ#kCp}<(*Zqy2k?kO=PpUlvQ=SLzFmR_NZVzx@ z1+E3Sc8TkO+K*t$J8;?WrLI?idkwe_;NFn9XMj5ZH-2BXn_%9ycH^&Qv#h|luidB- z7A-6==C&J4|6iE*5f8vi@XGt}%1(zc`X}(zIpEF!_Y3K%=YTte9C<;uo6!z~=5f$` zL*m|omwMp2U&3>jq-$OU?l?SmPPPxgb5DV0KWLtlxNQZ-j$K9rl1(BWEHKuz8`Z)Z zO}}N7QSfc&C&q~P4Chlu_K%Gb?Z)VQBRy!`l5fn?r(_#bK|1<4R(vc40pohH4%`5s z`;4*F3K}`zAhxXgjq&edo%zHVPpi%+Ms~F^4q(hKBRk(1gW70;$XstsavnCO0CQ`B zaf9>AMmDO`pER=dN!i9c)F&-7Ze1vvx1l+?Uo(3lXHS39m_l|r>YTfTX+dLzBd61F zKF!Ah%lpOx*;Ao5;aHX#IhzL?3ymQAel?`gck`NcEJyfQZk1yh*!bykXmX@tEPNPS z+SMqWj!~Wch5!Sm?z;8^m;$d%gKU}%F&8tW{kH=4W#qWAIM-)6+4gI?w(o2NKeqm_@l=CwU5-*JmRbLRy1tz)w2>DVN#`Ut9a_TdiHpI z&|k617mx!WySY(R$*->4?8`5&@s-zB2I}%x2kNSP!Jt3CB!5lA2LGnDBt9@Ss(dmj zuY%<_)CcnYwG}lDl|EJTCxAZ#p6s#O*$uoKA8Yv-h%B75xy#~v zt`MHN7%LQboOkk)iisq9tk;UNfzM>)*sL;1D8au05`CGxE~u{3jgj(Q@yq#f#T^)_KiZ1OBb=42bsPO#lg>{_m?S50*1} zxqu%g#J`dtDrBC_`zV5R^4Ac=u2)_!$r5i8==WLyZ)JU*w;F2#y>ejbDo|DWYrPHi zzDl+Jczv~%VB1h%FGa|AAK+~TUeC%!-bC*vh<`&uoS9x)Q5nmt-?lkez5y^85U^U+ zYU_f&ysFxUye)ycExtf-8_SELHZ=J0+6sRq%fs5{3v6MWu)4gyn&nk)tA$Vjg8|Wl zwXGgYc3i`YzJRZ$oET(nOHGg@!mzxcZ!3=6|9OErJ{x(yYVXEC`DUNDx)QvqCCw@- zUOF>aUM2XwV(I7nstz^foBb8Ap$?L9$m8mSXt&jV(*jz{BP0l>J>&zk=6GVtKnIdLK&3 zperd@Eu#8+CBK3fBq3ePCf#cMbeV?=UF{?mrC;60Qjl&C#1^al73idUM2cVC7gA7t zmni!coq}7yPxqWuTith3uuv+u+Aq=k>O0Me;#c>*6zq_MO22jdA@mb}v7}S?(G)ae z_;LNMpZ~rF9QlOo<3+985>kA|7Hj;__i!w~TkhMLheag}+P^D7eZUFF^4t z?2{ILwI5J0T@gxXwf||!ul&ynC82~L$fg3y|Em2RRA~H)|HDGjqhNt(Mvqqg$I%nZ zKdnfRD%c(66cwxfSAmYrf9w06+!lVTe%jAu;3LzHsr$<6y-HSns;%I!z>8f>lwaL< zzOVvF6h$XmeQkv&|5EHJ{c1lNeZLkt2SvrF;!|;O34KJO_|cW zpP?s~U){Ivk^HlwoT8%m6x6{S%RjbE(2ZR!pt4i6`oTZmq`6qxr$HGPZ@;2Uh=DTP|;iYXAi>fpcg2i(0($u zSeopfLHKJvFSu5z9}Gw#R{nb>zjd6)%LK!Fl1~A}ui$-y@PE5pa8xTs2^C)~RBJ~p zY32se;*WShbrL?511cWW_a6;U#SW^`(pf30bxM)!u{8P5PzK_^eWPI5XkoB4+5Z5L Csx|lk literal 0 HcmV?d00001 diff --git a/main (SFConflict a.pagani.it 2026-01-22-12-21-01) b/main (SFConflict a.pagani.it 2026-01-22-12-21-01) new file mode 100644 index 0000000000000000000000000000000000000000..e5286c9674c2c440f57f3103abca8bc989a0d70b GIT binary patch literal 18352 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 + +#define W 0 +#define Y 1 +#define O 2 +#define R 3 +#define B 4 +#define G 5 + + + +typedef struct Cube { + int front[3][3]; + int back[3][3]; + int top[3][3]; + int bottom[3][3]; + int right[3][3]; + int left[3][3]; +} Cube; + + +void initialize(Cube *cube) { + + for (int i=0; i<3; i++) { + for (int j=0; j<3; j++) { + cube->front[i][j] = W; + cube->back[i][j] = Y; + cube->top[i][j] = O; + cube->bottom[i][j] = R; + cube->right[i][j] = B; + cube->left[i][j] = G; + } + } +} + +void print(Cube *cube) { + char colors[] = {'W', 'Y', 'O', 'R', 'B', 'G'}; + + printf(" %c, %c, %c, \n", colors[cube->back[0][0]], colors[cube->back[0][1]], colors[cube->back[0][2]]); + printf(" %c, %c, %c, \n", colors[cube->back[1][0]], colors[cube->back[1][1]], colors[cube->back[1][2]]); + printf(" %c, %c, %c, \n", colors[cube->back[2][0]], colors[cube->back[2][1]], colors[cube->back[2][2]]); + + printf("\n"); + printf(" %c, %c, %c, \n", colors[cube->top[0][0]], colors[cube->top[0][1]], colors[cube->top[0][2]]); + printf(" %c, %c, %c, \n", colors[cube->top[1][0]], colors[cube->top[1][1]], colors[cube->top[1][2]]); + printf(" %c, %c, %c, \n", colors[cube->top[2][0]], colors[cube->top[2][1]], colors[cube->top[2][2]]); + + printf("\n"); + printf("%c, %c, %c, ", colors[cube->left[0][0]], colors[cube->left[0][1]], colors[cube->left[0][2]]); + printf("%c, %c, %c, ", colors[cube->front[0][0]], colors[cube->front[0][1]], colors[cube->front[0][2]]); + printf("%c, %c, %c, ", colors[cube->right[0][0]], colors[cube->right[0][1]], colors[cube->right[0][2]]); + + printf("\n"); + printf("%c, %c, %c, ", colors[cube->left[1][0]], colors[cube->left[1][1]], colors[cube->left[1][2]]); + printf("%c, %c, %c, ", colors[cube->front[1][0]], colors[cube->front[1][1]], colors[cube->front[1][2]]); + printf("%c, %c, %c, ", colors[cube->right[1][0]], colors[cube->right[1][1]], colors[cube->right[1][2]]); + + printf("\n"); + printf("%c, %c, %c, ", colors[cube->left[2][0]], colors[cube->left[2][1]], colors[cube->left[2][2]]); + printf("%c, %c, %c, ", colors[cube->front[2][0]], colors[cube->front[2][1]], colors[cube->front[2][2]]); + printf("%c, %c, %c, ", colors[cube->right[2][0]], colors[cube->right[2][1]], colors[cube->right[2][2]]); + + printf("\n\n"); + printf(" %c, %c, %c, \n", colors[cube->bottom[0][0]], colors[cube->bottom[0][1]], colors[cube->bottom[0][2]]); + printf(" %c, %c, %c, \n", colors[cube->bottom[1][0]], colors[cube->bottom[1][1]], colors[cube->bottom[1][2]]); + printf(" %c, %c, %c, \n", colors[cube->bottom[2][0]], colors[cube->bottom[2][1]], colors[cube->bottom[2][2]]); + + printf("----------------------------\n"); +} + +void rotate_face(int mat[3][3]) { + int temp[3][3]; + + for(int i=0;i<3;i++){ + for(int j=0;j<3;j++){ + temp[j][3-1-i] = mat[i][j]; + } + } + + for(int i=0;i<3;i++) { + for(int j=0;j<3;j++) { + mat[i][j] = temp[i][j]; + } + } +} + +void rotate_edge_corner (Cube *cube, char side[10]) { + // TODO + // Note: unify rotate_edge_corner with rotate_face +} + +void main (){ + + Cube cube; + initialize(&cube); + + cube.back[0][1]=3; + cube.back[2][2]=4; + + print(&cube); + + rotate_90(cube.back); + + print(&cube); + + rotate_90(cube.back); + + print(&cube); + +} \ No newline at end of file diff --git a/main.c b/main.c new file mode 100644 index 0000000..a374c5f --- /dev/null +++ b/main.c @@ -0,0 +1,261 @@ +#include + +#define UP 0 +#define DOWN 1 +#define LEFT 2 +#define RIGHT 3 +#define FRONT 4 +#define BACK 5 + + + +typedef struct Cube { + int x, y, z; + char sticker[6]; +} Cube; + + +void initialize(Cube* array, int pos[3][3][3]) { + for (int i=0; i<27; i++) { + // Calcolo le coordinate in base agli indici e le assegno ai cubetti + int x=i%3; + int y=(i/9); + int z=(i/3)%3; + + array[i].x=x; + array[i].y=y; + array[i].z=z; + + + // Inizializzo tutti gli sticker e associo i colori ai cubetti + array[i].sticker[DOWN] = 'W'; + array[i].sticker[UP] = 'Y'; + array[i].sticker[LEFT] = 'B'; + array[i].sticker[RIGHT] = 'G'; + array[i].sticker[BACK] = 'O'; + array[i].sticker[FRONT] = 'R'; + + + // Mi salvo che cubetto ho per ogni coordinata + pos[x][y][z]=i; + } +} + +void print(Cube* array, int pos[3][3][3]) { + printf(" %c %c %c\n %c %c %c\n %c %c %c", array[pos[0][2][2]].sticker[BACK], array[pos[1][2][2]].sticker[BACK], array[pos[2][2][2]].sticker[BACK], array[pos[0][1][2]].sticker[BACK], array[pos[1][1][2]].sticker[BACK], array[pos[2][1][2]].sticker[BACK], array[pos[0][0][2]].sticker[BACK], array[pos[1][0][2]].sticker[BACK], array[pos[2][0][2]].sticker[BACK]); + + printf("\n\n %c %c %c\n %c %c %c\n %c %c %c", array[pos[0][0][2]].sticker[UP], array[pos[1][0][2]].sticker[UP], array[pos[2][0][2]].sticker[UP], array[pos[0][0][1]].sticker[UP], array[pos[1][0][1]].sticker[UP], array[pos[2][0][1]].sticker[UP], array[pos[0][0][0]].sticker[UP], array[pos[1][0][0]].sticker[UP], array[pos[2][0][0]].sticker[UP]); + + printf("\n\n%c %c %c %c %c %c %c %c %c", array[pos[0][0][2]].sticker[LEFT], array[pos[0][0][1]].sticker[LEFT], array[pos[0][0][0]].sticker[LEFT], array[pos[0][0][0]].sticker[FRONT], array[pos[1][0][0]].sticker[FRONT], array[pos[2][0][0]].sticker[FRONT], array[pos[2][0][0]].sticker[RIGHT], array[pos[2][0][1]].sticker[RIGHT], array[pos[2][0][2]].sticker[RIGHT]); + printf("\n%c %c %c %c %c %c %c %c %c", array[pos[0][1][2]].sticker[LEFT], array[pos[0][1][1]].sticker[LEFT], array[pos[0][1][0]].sticker[LEFT], array[pos[0][1][0]].sticker[FRONT], array[pos[1][1][0]].sticker[FRONT], array[pos[2][1][0]].sticker[FRONT], array[pos[2][1][0]].sticker[RIGHT], array[pos[2][1][1]].sticker[RIGHT], array[pos[2][1][2]].sticker[RIGHT]); + printf("\n%c %c %c %c %c %c %c %c %c", array[pos[0][2][2]].sticker[LEFT], array[pos[0][2][1]].sticker[LEFT], array[pos[0][2][0]].sticker[LEFT], array[pos[0][2][0]].sticker[FRONT], array[pos[1][2][0]].sticker[FRONT], array[pos[2][2][0]].sticker[FRONT], array[pos[2][2][0]].sticker[RIGHT], array[pos[2][2][1]].sticker[RIGHT], array[pos[2][2][2]].sticker[RIGHT]); + + printf("\n\n %c %c %c\n %c %c %c\n %c %c %c\n\n\n\n", array[pos[0][2][0]].sticker[DOWN], array[pos[1][2][0]].sticker[DOWN], array[pos[2][2][0]].sticker[DOWN], array[pos[0][2][1]].sticker[DOWN], array[pos[1][2][1]].sticker[DOWN], array[pos[2][2][1]].sticker[DOWN], array[pos[0][2][2]].sticker[DOWN], array[pos[1][2][2]].sticker[DOWN], array[pos[2][2][2]].sticker[DOWN]); + + +} + + +void rotate(Cube* array, int pos[3][3][3], char rotazione) { + int involved_cubes[9]; + int index=0; + int tmp_x, tmp_y, tmp_z; + + // z=0 + if (rotazione == 'F') { + for (int i=0; i<3; i++) { + for (int j=0; j<3; j++) { + involved_cubes[index]=pos[i][j][0]; + index++; + } + } + + for (index=0; index<9; index++) { + int i=involved_cubes[index]; + tmp_x = array[i].x; + tmp_y = array[i].y; + + array[i].x=2-tmp_y; + array[i].y=tmp_x; + + pos[array[i].x][array[i].y][0]=i; + + + + char tmp = array[i].sticker[UP]; + array[i].sticker[UP] = array[i].sticker[LEFT]; + array[i].sticker[LEFT] = array[i].sticker[DOWN]; + array[i].sticker[DOWN] = array[i].sticker[RIGHT]; + array[i].sticker[RIGHT] = tmp; + } + + + + } + + // z=2 + if (rotazione == 'B') { + for (int i=0; i<3; i++) { + for (int j=0; j<3; j++) { + involved_cubes[index]=pos[i][j][2]; + index++; + } + } + + for (index=0; index<9; index++) { + int i=involved_cubes[index]; + tmp_x = array[i].x; + tmp_y = array[i].y; + + array[i].x=tmp_y; + array[i].y=2-tmp_x; + + pos[array[i].x][array[i].y][2]=i; + + + + char tmp = array[i].sticker[DOWN]; + array[i].sticker[DOWN] = array[i].sticker[LEFT]; + array[i].sticker[LEFT] = array[i].sticker[UP]; + array[i].sticker[UP] = array[i].sticker[RIGHT]; + array[i].sticker[RIGHT] = tmp; + } + } + + // y=0 + if (rotazione == 'U') { + for (int i=0; i<3; i++) { + for (int j=0; j<3; j++) { + involved_cubes[index]=pos[i][0][j]; + index++; + } + } + + for (index=0; index<9; index++) { + int i=involved_cubes[index]; + tmp_x = array[i].x; + tmp_z = array[i].z; + + array[i].x=tmp_z; + array[i].z=2-tmp_x; + + pos[array[i].x][0][array[i].z]=i; + + + + char tmp = array[i].sticker[FRONT]; + array[i].sticker[FRONT] = array[i].sticker[RIGHT]; + array[i].sticker[RIGHT] = array[i].sticker[BACK]; + array[i].sticker[BACK] = array[i].sticker[LEFT]; + array[i].sticker[LEFT] = tmp; + + } + } + + // y=2 + if (rotazione == 'D') { + for (int i=0; i<3; i++) { + for (int j=0; j<3; j++) { + involved_cubes[index]=pos[i][2][j]; + index++; + } + } + + for (index=0; index<9; index++) { + int i=involved_cubes[index]; + tmp_x = array[i].x; + tmp_z = array[i].z; + + array[i].x=2-tmp_z; + array[i].z=tmp_x; + + pos[array[i].x][2][array[i].z]=i; + + + + char tmp = array[i].sticker[FRONT]; + array[i].sticker[FRONT] = array[i].sticker[LEFT]; + array[i].sticker[LEFT] = array[i].sticker[BACK]; + array[i].sticker[BACK] = array[i].sticker[RIGHT]; + array[i].sticker[RIGHT] = tmp; + } + } + + // x=0 + if (rotazione == 'L') { + for (int i=0; i<3; i++) { + for (int j=0; j<3; j++) { + involved_cubes[index]=pos[0][i][j]; + index++; + } + } + + for (index=0; index<9; index++) { + int i=involved_cubes[index]; + tmp_y = array[i].y; + tmp_z = array[i].z; + + array[i].y=2-tmp_z; + array[i].z=tmp_y; + + pos[0][array[i].y][array[i].z]=i; + + + + char tmp = array[i].sticker[UP]; + array[i].sticker[UP] = array[i].sticker[BACK]; + array[i].sticker[BACK] = array[i].sticker[DOWN]; + array[i].sticker[DOWN] = array[i].sticker[FRONT]; + array[i].sticker[FRONT] = tmp; + } + } + + + // x=2 + if (rotazione == 'R') { + for (int i=0; i<3; i++) { + for (int j=0; j<3; j++) { + involved_cubes[index]=pos[2][i][j]; + index++; + } + } + + for (index=0; index<9; index++) { + int i=involved_cubes[index]; + tmp_y = array[i].y; + tmp_z = array[i].z; + + array[i].y=tmp_z; + array[i].z=2-tmp_y; + + pos[2][array[i].y][array[i].z]=i; + + + + char tmp = array[i].sticker[UP]; + array[i].sticker[UP] = array[i].sticker[FRONT]; + array[i].sticker[FRONT] = array[i].sticker[DOWN]; + array[i].sticker[DOWN] = array[i].sticker[BACK]; + array[i].sticker[BACK] = tmp; + } + } + + +} + + + +int main() { + Cube array[27]; + int pos[3][3][3]; + + initialize(array, pos); + + + rotate(array, pos, 'F'); + print(array, pos); + + rotate(array, pos, 'U'); + print(array, pos); + +} \ No newline at end of file diff --git a/main_bak.c b/main_bak.c new file mode 100644 index 0000000..bf49d86 --- /dev/null +++ b/main_bak.c @@ -0,0 +1,114 @@ +#include + +#define W 0 +#define Y 1 +#define O 2 +#define R 3 +#define B 4 +#define G 5 + + + +typedef struct Cube { + int front[3][3]; + int back[3][3]; + int top[3][3]; + int bottom[3][3]; + int right[3][3]; + int left[3][3]; +} Cube; + + +void initialize(Cube *cube) { + + for (int i=0; i<3; i++) { + for (int j=0; j<3; j++) { + cube->front[i][j] = W; + cube->back[i][j] = Y; + cube->top[i][j] = O; + cube->bottom[i][j] = R; + cube->right[i][j] = B; + cube->left[i][j] = G; + } + } +} + +void print(Cube *cube) { + char colors[] = {'W', 'Y', 'O', 'R', 'B', 'G'}; + + printf(" %c, %c, %c, \n", colors[cube->back[0][0]], colors[cube->back[0][1]], colors[cube->back[0][2]]); + printf(" %c, %c, %c, \n", colors[cube->back[1][0]], colors[cube->back[1][1]], colors[cube->back[1][2]]); + printf(" %c, %c, %c, \n", colors[cube->back[2][0]], colors[cube->back[2][1]], colors[cube->back[2][2]]); + + printf("\n"); + printf(" %c, %c, %c, \n", colors[cube->top[0][0]], colors[cube->top[0][1]], colors[cube->top[0][2]]); + printf(" %c, %c, %c, \n", colors[cube->top[1][0]], colors[cube->top[1][1]], colors[cube->top[1][2]]); + printf(" %c, %c, %c, \n", colors[cube->top[2][0]], colors[cube->top[2][1]], colors[cube->top[2][2]]); + + printf("\n"); + printf("%c, %c, %c, ", colors[cube->left[0][0]], colors[cube->left[0][1]], colors[cube->left[0][2]]); + printf("%c, %c, %c, ", colors[cube->front[0][0]], colors[cube->front[0][1]], colors[cube->front[0][2]]); + printf("%c, %c, %c, ", colors[cube->right[0][0]], colors[cube->right[0][1]], colors[cube->right[0][2]]); + + printf("\n"); + printf("%c, %c, %c, ", colors[cube->left[1][0]], colors[cube->left[1][1]], colors[cube->left[1][2]]); + printf("%c, %c, %c, ", colors[cube->front[1][0]], colors[cube->front[1][1]], colors[cube->front[1][2]]); + printf("%c, %c, %c, ", colors[cube->right[1][0]], colors[cube->right[1][1]], colors[cube->right[1][2]]); + + printf("\n"); + printf("%c, %c, %c, ", colors[cube->left[2][0]], colors[cube->left[2][1]], colors[cube->left[2][2]]); + printf("%c, %c, %c, ", colors[cube->front[2][0]], colors[cube->front[2][1]], colors[cube->front[2][2]]); + printf("%c, %c, %c, ", colors[cube->right[2][0]], colors[cube->right[2][1]], colors[cube->right[2][2]]); + + printf("\n\n"); + printf(" %c, %c, %c, \n", colors[cube->bottom[0][0]], colors[cube->bottom[0][1]], colors[cube->bottom[0][2]]); + printf(" %c, %c, %c, \n", colors[cube->bottom[1][0]], colors[cube->bottom[1][1]], colors[cube->bottom[1][2]]); + printf(" %c, %c, %c, \n", colors[cube->bottom[2][0]], colors[cube->bottom[2][1]], colors[cube->bottom[2][2]]); + + printf("----------------------------\n"); +} + +void rotate_90(int mat[3][3]) { + + // Rotate the single face + int temp[3][3]; + + for(int i=0;i<3;i++){ + for(int j=0;j<3;j++){ + temp[j][3-1-i] = mat[i][j]; + } + } + + for(int i=0;i<3;i++) { + for(int j=0;j<3;j++) { + mat[i][j] = temp[i][j]; + } + } + + + // Rotate the other 4 faces + + +} + + + +void main (){ + + Cube cube; + initialize(&cube); + + cube.back[0][1]=3; + cube.back[2][2]=4; + + print(&cube); + + //rotate_90(cube.back); + + print(&cube); + + // rotate_90(cube.back); + + print(&cube); + +} \ No newline at end of file