六角网格

2024-06-08 01:00:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我想写一个流氓游戏,使用六边形瓷砖而不是方形瓷砖。(一个六边形与它的所有邻居的距离相等)有没有办法在ncurses中安排这一点?实际上,它只需要将pad中的奇数行偏移1/2字符宽度。在

我更喜欢python,但我也懂c++。把这个问题标记为两个,以防后者是必要的。在


Tags: 标记游戏距离宽度字符奇数瓷砖方形
2条回答

你可以靠近它。在

 __    __    __    __
/  \__/  \__/  \__/  \
\__/  \__/  \__/  \__/
/  \__/  \__/  \__/  \
\__/  \__/  \__/  \__/
/  \__/  \__/  \__/  \
\__/  \__/  \__/  \__/

终端单元趋向于接近2/1的比率;通过将X乘以4,Y乘以2,并每隔一行移动两个字符,就可以接近于一个六边形网格。在

^{pr2}$

也可以使用

x x x x x x x x x x x x x
 x x x x x o o x x x x x
x x x x x o + o x x x x x
 x x x x x o o x x x x x
x x x x x x x x x x x x x

例如,将X加倍并每隔一行移动一个空格。在

在代码(Python)中:

def screen_pos(i, j):
    return i*2 + (j & 1), j

def neighbors(i, j):
    h = 1 - (j & 1)
    return [(i-1, j), (i+1, j),
            (i-h, j-1), (i-h, j+1),
            (i-h+1, j-1), (i-h+1, j+1)]

看看rhex:https://github.com/dpc/rhex,它已经生锈了,但是应该能给你一个基本的概念,它是如何工作的。它使用一个hex2d rs库。在

相关问题 更多 >

    热门问题