2014-02-11 1 views
1

, когда я пытаюсь загрузить следующую программу в сферу через загрузчик orbBasic в Mac OS X SDK, потребуется некоторое время, чтобы загрузить ее, т выполнить (без сообщения)Оператор OrbBasic multiple if не работает (в orbBasic загрузчике в Mac OS X SDK)

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 это работает кажется какая-то проблема с несколькими, если заявления

+0

Похоже, что проблема сохраняется, если я загружаю программу через orbBasicLoader из Sphero Mac OS SDK, а не приложение orbBasic на iPhone. – iddi

ответ

0

Ваша нумерация строк выглядит немного странно - последовательность должна быть 10, 20, 30, 40, 50 60, 70. Если бы я был вами, я бы изменил 61 до 70, от 62 до 80 и так далее.

+0

это определенно не нумерация – iddi

0

Обычно полный сбой в OrbBASIC без каких-либо ошибок - это то, что шар не может описать. Это может быть похоже на проблему синтаксического анализа номера строки, неподдерживаемую операцию или плохое значение, которое возникает.

Иногда интерпретатор OrbBASIC может перепутаться с номерами строк. Я знаю, что это было для меня раньше. Попробуйте сделать все ваши номера строк в номиналах 10 (10, 20, 30, ... 100, 110) и посмотреть, поможет ли это.

Еще одна вещь, которую я вижу там, является оператором разделения. Он должен работать, но иногда это немного сложно. Единственная причина, по которой я его поднимаю, - это результат, который используется в этих проблемных линиях, и если результат плохой, вся программа будет падать на его лице.

0

Я действительно сомневаюсь, что это нумерация строк. Я сделал много orbBASIC программ с гораздо более странными номерами строк. На самом деле вам даже не нужны номера в строках, на которые вы не ссылаетесь.

Я не думаю, что это вызывает его, но знаете ли вы, что строка 50 должна сделать L равным ровно 0 (0 * 360/4) на первой итерации?

Если вы удалите один или два из операторов if, он все еще не работает?

+0

это определенно не нумерация строк. Однако он не работает даже с одним оператором if (один, если оператор без 'и' работает, однако). Кажется, что есть некоторая проблема, когда код загружается в sphero - поскольку он зависает в течение 30-50 секунд, прежде чем загружать сообщение успешно. – iddi

0

Я хотел бы добавить

35 TRON

и наблюдать прогрессию выполнения, чтобы увидеть, что происходит. Однако, я не вижу никаких проблем с вашей программой.

Кто-то еще отправил здесь, что есть проблема с загрузкой больших программ с помощью OSX SDK, поэтому, возможно, конец вашей программы просто не превращается в мяч, и ваш goto 30 никогда не выполняется.

Dan

+0

Да, это потому, что это более крупная программа. – iddi

0

Проблема заключается в том, что сферо Mac OS X SDK не может загружать большие программы (которые занимают 2 или более блоков памяти orbBasic) правильно. Нет проблем с программой.

 Смежные вопросы

  • Нет связанных вопросов^_^