反转旋转骰子

反转旋转骰子

【题目描述】
骰子是一个立方体,每个面一个数字,初始为左1,右2,前3(观察者方向),后4,上5,下6,用123456表示这个状态,放置到平面上,可以向左翻转(用L表示向左翻转1次),可以向右翻转(用R表示向右翻转1次),可以向前翻转(用F表示向前翻转1次),可以向后翻转(用B表示向右翻转1次),可以逆时针旋转(用A表示逆时针旋转90度),可以顺时针旋转(用C表示逆时针旋转90度),现从初始状态开始,根据输入的动作序列,计算得到最终的状态。

【输入描述】
初始状态为:123456
输入只包含LRFBAC的字母序列,最大长度为50,可重复

【输出描述】
输出最终状态
输入例子:RA
输出例子:436512

def function_L(dict):
    temp = dict['left']
    dict['left'] = dict['up']
    dict['up'] = dict['right']
    dict['right'] = dict['down']
    dict['down'] = temp
    return dict

def function_R(dict):
    temp = dict['right']
    dict['right'] = dict['up']
    dict['up'] = dict['left']
    dict['left'] = dict['down']
    dict['down'] = temp
    return dict

def function_F(dict):
    temp = dict['front']
    dict['front'] = dict['up']
    dict['up'] = dict['behind']
    dict['behind'] = dict['down']
    dict['down'] = temp
    return dict

def function_B(dict):
    temp = dict['behind']
    dict['behind'] = dict['up']
    dict['up'] = dict['front']
    dict['front'] = dict['down']
    dict['down'] = temp
    return dict

def function_A(dict):
    temp = dict['front']
    dict['front'] = dict['left']
    dict['left'] = dict['behind']
    dict['behind'] = dict['right']
    dict['right'] = temp
    return dict

def function_C(dict):
    temp = dict['front']
    dict['front'] = dict['right']
    dict['right'] = dict['behind']
    dict['behind'] = dict['left']
    dict['left'] = temp
    return dict

def match(strings):
    for char in strings:
        if char not in ['L', 'R', 'F', 'B', 'A', 'C']:
            return -1
            break

flag = True
while(flag):
    strings = input('输入操作序列:')
    if len(strings)>0 and len(strings)<=50 and match(strings) != -1:
        flag = False
    else:
        continue

dict = {'left': 1, 'right': 2, 'front': 3, 'behind': 4, 'up': 5, 'down': 6}

for c in strings:
    if c == 'L':
        function_L(dict)
    elif c == 'R':
        function_R(dict)
    elif c == 'F':
        function_F(dict)
    elif c == 'B':
        function_B(dict)
    elif c == 'A':
        function_A(dict)
    elif c == 'C':
        function_C(dict)
print(dict)
result = []
for value in dict.values():
    result.append(str(value))
print(''.join(result))
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值