87 76 67 58 49 40 31 22 13 4
77 68 59 50 41 32 23 14 5 -4
69 60 51 42 33 24 15 6 -3-12
61 52 43 34 25 16 7 -2-11-20
53 44 35 26 17 8 -1-10-19-28
45 36 27 18 9 0 -9-18-27-36
37 28 19 10 1 -8-17-26-35-44
29 20 11 2 -7-16-25-34-43-52
21 12 3 -6-15-24-33-42-51-60
我正在使用这个数字网格来定义基于pygame tile的地图字典中的关卡。每个数字是一个字典键,用于定义参考每个其他地图的地图位置,其值为2d列表。我需要一个函数,它返回非对角线移动的数量,远离0,网格中的每个数字都是。我将使用此数字来计算难度级别。因此,玩家从原点0越远,游戏越难获得。为了更好地理解这些数字是如何生成的......向北移动增加8,向南移动增加-8,向东移动增加-9,向西移动增加9.因此例如地图17,-1 ,1和-17等于2,而地图8,9,-9,-8等于1,依此类推。我正在学习编写合适的代码,但有时需要的数学能力超出了我的能力。
答案 0 :(得分:0)
好的,所以我想出了解决问题的一种不那么复杂的方法。我使用了2个值的列表。我将位置0递增或递减1表示北,南移动并递增或递减位置1递减1表示西,东移动。然后我添加了位置0的绝对值和位置1的绝对值并返回了答案。这似乎给了我一个准确的距离0. YAY!
dif_list =[0,0]
if move == 'north':
dif_list[0] += 1
if move == 'south':
dif_list[0] -= 1
if move == 'west':
dif_list[1] += 1
if move == 'east':
dif_list[1] -= 1
def difficulty():
num = abs(dif_list[0])+abs(dif_list[1])
return num