uune 发表于 2020-6-8 14:10:58

本帖最后由 uune 于 2020-6-8 14:12 编辑

list1 = [1, 1, 1, 2, 1, 1, 2, 4, 4, 3,
         2, 1, 1, 1, 1, 1, 1, 1, 4, 2,
         1, 2, 3, 1, 4, 2, 1, 1, 2, 4,
         2, 1, 1, 1, 1, 1, 2, 1, 4, 1,
         1, 1, 1, 3, 2, 2, 3, 1, 2, 3,
         3, 2, 4, 1, 1, 1, 1, 1, 1, 4,
         2, 1, 1, 1, 1, 2, 2, 1, 4, 1,
         1, 2, 1, 3, 2, 1, 2, 4, 1, 4,
         1, 2, 1, 1, 1, 1, 4, 2, 2, 2,
         2, 1, 2, 1, 2, 2, 3, 4, 1, 1]

flag = -1         #为了记录第0个格子设置为-1
direction = 1       #默认向右走,+1
dex = []            #记录走过的格子
n = 0               #步数

#从哪边来的专向后该去那边
s2 = {1:10, 10:-1, -1:-10, -10:1}
s4 = {-10:-1, -1:10, 10:1, 1:-10}

while flag != 99:
    n += 1
   
    #右转
    if list1 == 2:
      direction = s2.get(direction)

    #掉头
    elif list1 == 3:
      direction = 0-direction
   
    #左转
    elif list1 == 4:
      direction = s4.get(direction)
      
    #直走
    flag += direction
    print('现在位置是:',flag)

    dex.append(flag)

#去重
dex = list(set(dex))
print('一共走了%d步'%n)
#求和
print('走过的格子的数字相加:',sum( for i in dex]))
页: 1 [2]
查看完整版本: Python:每日一题 123