在这段代码中给出 case RED部分的完整代码#include iostream#include vector#include stringusing namespace std; 定义魔方的颜色enum Color RED BLUE GREEN WHITE YELLOW ORANGE ; 定义魔方的转动方式enum Rotation CLOCKWISE COUNTERCLOCKWISE D
case RED: // 根据旋转方式调整 red 面的状态 switch (rotation) { case CLOCKWISE: // 将 up 面向右旋转一次,将 front 面上下颠倒后向右旋转一次,将 down 面向右旋转一次,将 back 面上下颠倒后向左旋转一次 for (int i = 0; i < 3; i++) { temp[i][2] = up[i][2]; up[i][2] = front[i][2]; front[i][2] = down[i][2]; down[i][2] = back[2 - i][0]; back[2 - i][0] = temp[i][2]; } // 将 red 面向右旋转一次 for (int i = 0; i < 3; i++) { for (int j = 0; j < 3; j++) { temp[i][j] = right[2 - j][i]; } } for (int i = 0; i < 3; i++) { for (int j = 0; j < 3; j++) { right[i][j] = temp[i][j]; } } break; case COUNTERCLOCKWISE: // 将 up 面向左旋转一次,将 front 面上下颠倒后向左旋转一次,将 down 面向左旋转一次,将 back 面上下颠倒后向右旋转一次 for (int i = 0; i < 3; i++) { temp[i][2] = up[i][2]; up[i][2] = back[2 - i][0]; back[2 - i][0] = down[i][2]; down[i][2] = front[i][2]; front[i][2] = temp[i][2]; } // 将 red 面向左旋转一次 for (int i = 0; i < 3; i++) { for (int j = 0; j < 3; j++) { temp[i][j] = right[j][2 - i]; } } for (int i = 0; i < 3; i++) { for (int j = 0; j < 3; j++) { right[i][j] = temp[i][j]; } } break; case DOUBLE: // 将 up 面向右旋转一次,将 front 面上下颠倒后向右旋转一次,将 down 面向左旋转一次,将 back 面上下颠倒后向左旋转一次 for (int i = 0; i < 3; i++) { temp[i][2] = up[i][2]; up[i][2] = down[2 - i][2]; down[i][2] = temp[i][2]; } for (int i = 0; i < 3; i++) { temp[i][2] = front[i][2]; front[i][2] = back[2 - i][0]; back[2 - i][0] = temp[i][2]; } // 将 red 面旋转180度 for (int i = 0; i < 3; i++) { for (int j = 0; j < 3; j++) { temp[i][j] = right[2 - i][2 - j]; } } for (int i = 0; i < 3; i++) { for (int j = 0; j < 3; j++) { right[i][j] = temp[i][j]; } } break; } break;
原文地址: https://www.cveoy.top/t/topic/bYf3 著作权归作者所有。请勿转载和采集!