0
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 瓷砖的地图字典中的级别。每个数字都是一个字典键,定义了一个相对于其他地图的地图位置,其值为二维列表。我需要一个函数来返回网格中每个数字远离 0 的非对角线移动次数。我将使用这个数字来计算难度级别。所以玩家离0的原点越远,游戏就越难。为了更好地理解这些数字是如何产生的......向北移动增加 8,向南移动增加 -8,向东移动增加 -9,向西移动增加 9。例如地图 17,-1 ,1 和 -17 将等于 2,而地图 8,9,-9,-8 将等于 1,依此类推。我在学习编写体面的代码方面取得了一些进展,但有时所需的数学运算超出了我的能力。

4

1 回答 1

0

好的,所以我想出了一个更简单的方法来解决我的问题。我使用了 2 个值的列表。对于北、南移动,我将位置 0 递增或递减 1,对于西、东移动,我分别将位置 1 递增或递减 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

于 2015-08-12T20:48:17.463 回答