V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
mskf
V2EX  ›  算法

找到一个二重循环遍历某个点的上下左右四个临近点的方法

  •  
  •   mskf · 2019-10-18 00:06:08 +08:00 · 3643 次点击
    这是一个创建于 1865 天前的主题,其中的信息可能已经有所发展或是发生改变。

    在同一个循环中,也可以遍历四个斜着的临近点

    for i in [-1,1]:
        for j in [-1,1]:
        	# top,left,right,bottom
        	nx, ny = x+(i+j)//2,y+(i-j)//2
            
            # corners
            nx, ny = x+i,y+j
    

    以前都是写死 x+1,y x,y+1... 然后遍历,或者用三角函数循环角度,感觉上面写更简洁

    3 条回复    2019-10-18 00:12:11 +08:00
    ZRS
        1
    ZRS  
       2019-10-18 00:07:31 +08:00
    巧妙
    taotaodaddy
        2
    taotaodaddy  
       2019-10-18 00:10:25 +08:00 via Android
    棒棒
    mskf
        3
    mskf  
    OP
       2019-10-18 00:12:11 +08:00
    如果在其他语言中使用 for I = 0 to 1 遍历,只需要在开头加上 i=1-2*I, j=1-2*J 就可以了,下面完全一样
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3529 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 00:55 · PVG 08:55 · LAX 16:55 · JFK 19:55
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.