OrbBasic多个if语句不起作用(在Mac OS X SDK中的orbBasic加载器中)

时间:2014-02-11 03:41:17

标签: sphero-api

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

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语句的问题

5 个答案:

答案 0 :(得分:0)

你的行号看起来有点奇怪 - 序列应该是10,20,30,40,50,60,70。如果我是你,我会改变61到70,62到80等等。

答案 1 :(得分:0)

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

有时,OrbBASIC解释器可能会在行号上搞砸了。我知道它以前对我有用。尝试以10(10,20,30,...... 100,110)的面额制作所有行号,看看是否有帮助。

我在那里看到的另一件事是分部操作员。它应该工作,但有时候有点挑剔。我提出它的唯一原因是结果用在那些问题行中,如果结果不好,那么整个程序就会落在那里。

答案 2 :(得分:0)

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

我认为这不会导致它,但你知道第50行应该在第一次迭代时使L等于0(0 * 360/4)吗?

如果你删除了一个或两个if语句,它还没有运行吗?

答案 3 :(得分:0)

我会添加

35 tron

并观察执行进度以了解正在发生的事情。但是,我发现你的程序没有任何问题。

其他人在此发帖表示使用OSX SDK下载较大程序时出现问题,因此可能程序结束时不会将其发送到球,而且你的goto 30永远不会被执行。

答案 4 :(得分:0)

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