#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); }