将二阶魔方划分8个象限,每个象限分,xyz三面。
对x旋转时相当于对[1,4, 8, 5]这四个象限顺时针旋转,zy方向颜色交换。
class square:def __init__(self):self.p = [[], ["绿", "红", "白"], ["蓝", "红", "白"], ["蓝", "橙", "白"], ["绿", "橙", "白"], ["绿", "红", "黄"], ["蓝", "红", "黄"], ["蓝", "橙", "黄"], ["绿", "橙", "黄"]]self.i = []def exchange(self):if 0 not in self.i:lst = [1, 4, 8, 5]elif 1 not in self.i:lst = [1, 5, 6, 2]else:lst = [1, 2, 3, 4]for k in lst:m = self.p[k][self.i[0]]self.p[k][self.i[0]] = self.p[k][self.i[1]]self.p[k][self.i[1]] = mm = self.p[lst[0]]for j in range(3):self.p[lst[j]] = self.p[lst[j + 1]]self.p[lst[3]] = mdef input(self, operation):for t in operation:if t == "x":self.i = [1, 2]elif t == "y":self.i = [0, 2]elif t == "z":self.i = [0, 1]else:raise ValueErrorself.exchange()def print(self):print((self.p[1][0] + self.p[1][1] + self.p[1][2]))def main():a = square()q = input("")a.input(q)a.print()if __name__ == '__main__':main()