作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我玩了一个很棒的沙盒塔防游戏 Mindustry .
很酷的事情是您可以使用游戏嵌入式处理器块来控制单元。你可以命令他们 build 积木、在 map 上巡逻、包围最弱的敌人、治疗 friend 并将弹药带到炮塔。
有一些示例如何对此类块进行“编程”:
jump-to-line-if-statement-is-true
.
op add result x y
~ result=x+y
- 将变量设置为 arifmethics 操作的结果 + - */< > % == min max 等 @counter
这是执行行的一行,您还可以设置此变量的值以跳转到任何特定行 jump cond lineNo
- 跳转到行 lineNo
如果 cond
是真的op add retAddr @counter 1 # Save where we will continue after the function returns by adding 1 to the counter
set @counter myFunc # Jump to the line representing myFunc
...
set @counter retAddr # Return to the line set earlier after the function is called
最佳答案
不可能为任何语言实现完整的编译器,因为动态内存管理实际上是不可能的。然而,https://pypi.org/project/minpiler/是一个好的开始。
请注意该站点的空洞:
You won't be able to use most of the Python. All the restrictions arise from Mindustryprocessor architecture:
- There's no data structures, only scalar values are allowed (floats or opaque objects). The only exception are Memory cells that behave as fixed-size arrays of floats.
- You can't access variables indirectly, there're no pointers, no getattr.
- Subsequence of former, it's impossible to implement dynamic memory/stack (at least without Memory cells). This makes lists, iterators, classes, closures and other things impossible.
- Set of builtins is very restricted, you can only call what you have available in game (M.print, M.draw.clear, etc)
关于compiler-construction - Mindustry Game CPU 架构的最简单编译器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65456889/
我玩了一个很棒的沙盒塔防游戏 Mindustry . 很酷的事情是您可以使用游戏嵌入式处理器块来控制单元。你可以命令他们 build 积木、在 map 上巡逻、包围最弱的敌人、治疗 friend 并将
我是一名优秀的程序员,十分优秀!