1

当我尝试通过 Mac OS X SDK 中的 orbBasic 加载器将以下程序加载到球体时,它需要一段时间才能加载然后它不执行(没有任何消息)

10 A=50
20 P=4
30 LEDC rnd 8
40 for X=0 to P-1
50 L=X*360/P
60 if L>45 and L<136 then goto 69
61 if L>225 and L<306 then goto 69
62 if L>0 and L<46 then goto 67 
63 if L>135 and L<226 then goto 67
64 if L>305 and L<360 then goto 67
67 LEDC 2
68 goto 70
69 LEDC 1
70 goroll L,80,1
80 delay 30*A
90 goroll L,0,0
100 delay 300
110 next X
120 A=A*3/4
130 if A<10 then end
140 goto 30

如果我删除第 60...69 行,它的工作原理似乎与多个 if 语句有些问题

4

5 回答 5

0

我会补充

35 创

并观察执行进度以了解发生了什么。顺便说一句,我没有看到你的程序有任何问题。

其他人在此处发布说,使用 OSX SDK 下载较大的程序时出现问题,因此您的程序的结尾可能只是没有完成,并且您的 goto 30 永远不会被执行。

于 2014-03-11T03:38:33.297 回答
0

问题是 Sphero Mac OS X SDK 无法正确加载更大的程序(占用 2 块或更多块 orbBasic 内存)。程序没有问题。

于 2014-03-12T07:11:13.553 回答
0

我真的怀疑这是行号。我制作了许多带有奇怪行号的 orbBASIC 程序。事实上,你甚至不需要你没有引用的行上的数字。

我不认为这是导致它的原因,但是您是否知道第 50 行应该使 L 在第一次迭代时正好等于 0 (0*360/4)?

如果您删除一两个 if 语句,它仍然无法运行吗?

于 2014-02-12T22:00:20.480 回答
0

通常,OrbBASIC 中的完全失败且没有任何错误是球无法描述的事情。这可能类似于行号解析问题、不受支持的操作或抛出的错误值。

有时,OrbBASIC 解释器会弄乱行号。我知道它以前对我有用。尝试将所有行号设为 10 面额(10、20、30、... 100、110),看看是否有帮助。

我在那里看到的另一件事是除法运算符。它应该可以工作,但有时有点挑剔。我提出它的唯一原因是结果被用于那些问题行,如果结果不好,整个程序将在那里面目全非。

于 2014-02-11T07:14:38.117 回答
0

你的行号看起来有点奇怪 - 序列应该是 10、20、30、40、50 60、70。如果我是你,我会将 61 更改为 70、62 更改为 80,依此类推。

于 2014-02-11T07:10:01.303 回答