首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从原点开始有多少次非对角线移动?

从原点开始有多少次非对角线移动?
EN

Stack Overflow用户
提问于 2015-08-13 03:34:02
回答 1查看 38关注 0票数 0
代码语言:javascript
复制
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,依此类推。我在学习编写像样的代码方面取得了一些进展,但有时所需的数学知识超出了我的能力。

EN

回答 1

Stack Overflow用户

发布于 2015-08-13 04:48:17

好的,我想出了一个简单得多的方法来解决我的问题。我使用了一个包含2个值的列表。对于北、南移动,I将位置0递增或递减1;对于西、东移动,I分别递增或递减位置1。然后我将位置0的绝对值和位置1的绝对值相加,并返回答案。这似乎给了我一个从0开始的准确距离。耶!

代码语言:javascript
复制
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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31973893

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档