gpt4 book ai didi

memory - 努力学习六边形

转载 作者:行者123 更新时间:2023-12-01 12:18:45 26 4
gpt4 key购买 nike

我正在努力了解编程语言 Hexagony .我查看了一些示例程序,并尝试编写一个简单的程序来读取输入和打印 Hey [input]! .这就是我所拥有的。

     , < . . C $ 
. . { . # . ;
. . . # . . 2 '
. . . . # C 3 < .
. # . # . . * . ; .
. E . . E . ; . . > /
= . . . } y . . 3 .
. . . . ; . . 3 .
. . . e $ . ; .
. . ; . . @ .
. H . . > &

Try it online!

如果没有输入,它会打印 Hey !正如预期的那样。但是对于任何输入,它都会打印 EE! .我很确定我的问题是我不明白内存指针如何在六边形网格上工作。如果输入的字符串太多,我假设我的代码在写入值方面存在问题,但我目前还不关心这个问题。我对使用 { 选择边的确切规则感到困惑。和 }命令以及 MP 的方向如何受此影响。

如果有人能给我一个更明确的解释,说明内存是如何工作的,MP 是如何定向的,这将是值得赞赏的

最佳答案

这是内存移动命令如何工作的图表:

enter image description here

内存指针 (MP) 有一个位置(它是内存网格的边缘)和沿该边缘的方向。在图中,MP 的初始位置用红色箭头标记,因此它当前指向北方。

MP 移动命令始终相对于 MP 的当前位置和方向。我已经根据哪个命令让你到达那里注释了四个相邻的边。所以{将 MP 向前和向左移动,然后 '例如,将其向后和向右移动。

要确定其新方向,您可以将此移动视为将 MP 围绕相邻六边形之一旋转 60 度。因此,根据选择的命令,MP 将指向上图中的以下方向:

Cmd   Orientation
{ north west
} north east
" north east
' north west

另外,为了防止这是困惑的一部分,请记住内存网格独立于源网格(所以这些不是包含命令的网格的边缘......它只是一个单独的、无限的六边形网格) .

至于你的实际程序,它似乎比内存布局有更大的问题。最重要的是,我不确定那些 #正在那里做: #切换到基于当前内存值模 6 的 6 个 IP 之一。假设您的输入是任意的,这基本上将您切换到随机 IP,这可能不是您想要的。

我强烈推荐尝试 Timwi 的 EsotericIDE (我也用它来生成上面的图表),它允许您逐步执行程序并包括内存网格的可视化。

我也很乐意为您提供帮助 in this SE chat room如果您对语言有任何进一步的问题。

关于memory - 努力学习六边形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46224096/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com