c
codeye
V1
2022/09/22阅读:25主题:默认主题
罗盘
你有一个8方向的罗盘,像这样。

你收到你所面对的方向(8个方向之一:N、NE、E、SE、S、SW、W、NW)和一定的转弯度数(45的倍数,在-1080和1080之间);正数意味着顺时针,负数意味着逆时针。
返回你在转弯后将面临的方向。
"S", 180 --> "N"
"SE", -45 --> "E"
"W", 495 --> "NE"
几个写法各有千秋 1、字典
def direction(facing, turn):
d = {'E':0,'SE':45,'S':90,
'SW':135,'W':180,'NW':225,
'N':270,'NE':315}
dvk = dict(zip(d.values(),d.keys()))
return dvk[(d[facing]+turn)%360]
2、数组
def direction(facing, turn):
compass = ['N', 'NE', 'E', 'SE', 'S', 'SW', 'W', 'NW']
return compass[(compass.index(facing) + turn//45) % 8]
继续其他高效写法?
作者介绍
c
codeye
V1