[RW1] ERROR 29: Bad IF construction

Использование и разработка софта (преимущественно на ПЦ)

Moderator: Shaos

Bormotoon
Junior
Posts: 3
Joined: 17 Dec 2004 12:55

[RW1] ERROR 29: Bad IF construction

Post by Bormotoon »

Я новичок в RW. Пишу своего первого робота и вот столкнулся с такой проблемой -

допустим, есть такой код

Code: Select all

 ACT front
 IF (N==@t_robot); call shoot_fr
 ELSE ....
Жму компиляцию. Получаю сообщение вида:
"ERROR 29: Bad IF construction [0]"

Что я неправильно сделал и как правильно?
User avatar
Shaos
Admin
Posts: 24083
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Need help!

Post by Shaos »

Bormotoon wrote:Я новичок в RW. Пишу своего первого робота и вот столкнулся с такой проблемой -

допустим, есть такой код

Code: Select all

 ACT front
 IF (N==@t_robot); call shoot_fr
 ELSE ....
Жму компиляцию. Получаю сообщение вида:
"ERROR 29: Bad IF construction [0]"

Что я неправильно сделал и как правильно?
; не надо было писать, т.е. надо так:

Code: Select all

 ACT front
 IF (N==@t_robot) call shoot_fr
 ELSE ....
или

Code: Select all

 ACT front
 IF (N==@t_robot)
 {
     call shoot_fr
 }
 ELSE ....
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 24083
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

Сменил тему топика, чтобы снаружи было понятно о чем речь идет
Я тут за главного - если что шлите мыло на me собака shaos точка net
Bormotoon
Junior
Posts: 3
Joined: 17 Dec 2004 12:55

Post by Bormotoon »

Ээээммм... Переделал. Получилось так:

Code: Select all

 ACT front
 IF (N==@t_robot) call shoot_robot_front
 ELSE
     {
      IF (N==@t_box||4>=D>1) step
      ELSE . . . . . .
Но все равно выскакивает та же ошибка. Я не понимаю - что такое?
Да, кстати, запустил робота, который был "в комплекте" - nsimple.rw1. Он же, вроде, должен работать. Но там та же ошибка выскакивает тоже на IF. Почему так? Может, из-за системы? У меня WinXP.
User avatar
Shaos
Admin
Posts: 24083
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

Bormotoon wrote:Ээээммм... Переделал. Получилось так:

Code: Select all

 ACT front
 IF (N==@t_robot) call shoot_robot_front
 ELSE
     {
      IF (N==@t_box||4>=D>1) step
      ELSE . . . . . .
Но все равно выскакивает та же ошибка. Я не понимаю - что такое?
Да, кстати, запустил робота, который был "в комплекте" - nsimple.rw1. Он же, вроде, должен работать. Но там та же ошибка выскакивает тоже на IF. Почему так? Может, из-за системы? У меня WinXP.
Установил у себя RW1 и скомпилировал nsimple - все ок. А в вышеприведенной записи не правильна строчка:

IF (N==@t_box||4>=D>1) step

вместо 4>=D>1 надо бы написать (4>=D&&D>1) или (D<=4&&D>1)
т.е. полное условие должно выглядеть так:

IF (N==@t_box||(D<=4&&D>1)) step

если будут проблемы опять, то мне надо бы полный текст робота, чтобы я его у себя проанализировал (можно мылом)
Я тут за главного - если что шлите мыло на me собака shaos точка net
Bormotoon
Junior
Posts: 3
Joined: 17 Dec 2004 12:55

Post by Bormotoon »

Отправил Вам код робота по почте.
User avatar
Shaos
Admin
Posts: 24083
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

Bormotoon wrote:Отправил Вам код робота по почте.
Основная проблема была в том, что после IF нельзя делать пробел
Вторая проблема - { и } должны быть на отдельных строках
(это решаемо в новой версии компилятора, но пока вот так).
Я тут за главного - если что шлите мыло на me собака shaos точка net