我想找到 4 个变量之间的最小值。
这在几乎任何编程语言中都很容易做到,但我正在尝试在 YOLOL(Starbase 游戏编程语言)中这样做
这引入了约束:
- 没有循环
- 没有方法(我唯一的方法是 ABS 方法,在这种情况下我不需要它)
- 每行只能有 70 个字符(再多的话就会被忽略)
- 每行需要 0.2 秒才能执行,因此到目前为止首选一个衬里
您可以在此处找到更多信息:https ://wiki.starbasegame.com/index.php/YOLOL
问题如下:我有 4 个测距仪,每个测距仪都有一个单独的名称,给我一个从 0 到 1000 的值(INT 值,没有浮点数,没有负数)。它们用于测量到地面的距离。我不想显示 4 个值并让飞行员猜测,而是希望显示最小/最接近的值。
最简单的解决方案显然是单独比较所有 4 个值,但这需要在几行上进行,这会引入很长的执行时间,从而延迟使信息不太可靠。如果可能的话,我正在寻找的是一个可能的在线或双线
编辑:目前这是我最好的(运行 4 行/0.8 秒):
:tmp = 1000
IF :GFL<:tmp THEN :tmp=:GFL END IF :GFR<:tmp THEN :tmp=:GFR END
IF :GBL<:tmp THEN :tmp=:GBL END IF :GBR<:tmp THEN :tmp=:GBR END
:GroundDistance = :tmp GOTO01
我使用一个值:tmp
来防止输出:GroudDistance
(向飞行员显示女巫)在值更新时闪烁
:GFL
= 地面前左
:GFR
= 地面前右
:GBL
= 地面后左
:GBR
= 地面后右
:GroundDistance
= 显示给飞行员的值