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瓦片的地图字典中的级别。每个数字是一个字典关键字,该字典关键字定义了参照每个彼此映射的映射位置,其中该值是2d列表。我需要一个函数来返回非对角线移动的数量,网格中的每个数字都是0。我将使用这个数字来计算难度级别。所以玩家离原点0越远,游戏就变得越困难。为了更好地理解这些数字是如何产生的。向北移动递增8,向南移动递增-8,向东移动递增- 9,向西移动递增9。因此,例如,地图17、-1、1和-17将等于2,而地图8、9、-9、-8将等于1,依此类推。我在学习编写像样的代码方面取得了一些进展,但有时所需的数学知识超出了我的能力。
发布于 2015-08-13 04:48:17
好的,我想出了一个简单得多的方法来解决我的问题。我使用了一个包含2个值的列表。对于北、南移动,I将位置0递增或递减1;对于西、东移动,I分别递增或递减位置1。然后我将位置0的绝对值和位置1的绝对值相加,并返回答案。这似乎给了我一个从0开始的准确距离。耶!
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
https://stackoverflow.com/questions/31973893
复制相似问题