Не корысти ради ....
----------------------------------------------------- Результат в классе "B" дележ 1-2 места не понял. Очков одинаково... ----------------------------------------------------- > Результат в классе "B" дележ 1-2 места не понял. > Очков одинаково... робот xbm101.rw0 оказался выше, потомучто он до этого был выше (робот qvark2.rw0 появился только в последних соревнованиях), а при прочих равных (равное количество очков) учитываются былые заслуги, которые характеризуются занимаемым местом в таблице перед соревнованием (xbm101.rw0-39,qvark2.rw0 84). ----------------------------------------------------- DOVG (admin@........ru) 13:12:44 11.12.2002 ----------------------------------------------------- Ок! Еще пара вопросиков- 1) Не удается заставить работать двумерный массив, элементы которого метки. Если в принципе работает - можно пример 2Х2 ? 2) Есть очень длинный массив [1000] как его инициализировать со значениями (без циклов!), если в одну строку не помещается? ----------------------------------------------------- Shaos (shaos@.....ru) 19:22:53 16.12.2002 ----------------------------------------------------- > 1) Не удается заставить работать двумерный массив, элементы > которого метки. Если в принципе работает - можно пример 2Х2 ? Внимательно читаем описание языка (раздел 5. ТОНКОСТИ ПРОГРАММИРОВАНИЯ) и создаем свой вариант: robot "Map2" author "Shaos" @MAP2(2)=((@1)+2*(@2)) main() { DEF ARR[4] ARR[@MAP2(x,y)]=kk % что означает ARR[x,y]=kk % или kk=ARR[@MAP2(x,y)] % что означает kk=ARR[x,y] } > 2) Есть очень длинный массив [1000] как его инициализировать со > значениями (без циклов!), если в одну строку не помещается без циклов никак... ----------------------------------------------------- DOVG (admin@........ru) 13:25:48 17.12.2002 ----------------------------------------------------- Я хочу сделать так - robot "Map2" author "Shaos" @MAP2(2)=((@1)+2*(@2)) main() { % DEF ARR[4] = def ARR[4]={m0,m1,m2,m3} % ARR[@MAP2(x,y)]=kk % что означает ARR[x,y]=kk % или % kk=ARR[@MAP2(x,y)] % что означает kk=ARR[x,y] call ARR[3]% Работает call ARR[@MAP2(1,1)]% НЕ РАБОТАЕТ !!!!!!!!! } m0: ret m1: step ret m2: step step ret m3: step step step m4: step step step step ret ----------------------------------------------------- Shaos (shaos@.....ru) 09:52:44 19.12.2002 ----------------------------------------------------- > Я хочу сделать так Чуть поправим две строчки call ARR[3] % Работает call(ARR[@MAP2(1,1)]) % ТОЖЕ РАБОТАЕТ !!! во втором случае выражение является сложным и его надо заключить в скобки, что будет преобразовано препроцессором вот в такую запись (rw1c -p делает .rw! файл): A=ARR[((1)+2*(1))];CALL A ----------------------------------------------------- DOVG (admin@........ru) 15:04:54 19.12.2002 ----------------------------------------------------- A=ARR[((1)+2*(1))];CALL A Это видимо займет 3 такта? 2*(1))] -первый такт сложить -второй А= третий или я ошибаюсь? ----------------------------------------------------- Shaos (shaos@.....ru) 15:12:19 19.12.2002 ----------------------------------------------------- > A=ARR[((1)+2*(1))];CALL A > Это видимо займет 3 такта? На самом деле всего 1 такт. Длинные выражения выполняются за один такт, а переход на метку - за 0 тактов. ----------------------------------------------------- DOVG (admin@........ru ) 15:54:43 19.12.2002 ----------------------------------------------------- Уже лучше, но и один такт жалко. Еще Вас помучаю. Падение в дырку на чемпионате - 1 очко или нет? ----------------------------------------------------- Shaos (shaos@.....ru) 16:03:54 19.12.2002 ----------------------------------------------------- > Уже лучше, но и один такт жалко. в вашем случае, когда я научу препроцессор выполнять выражения из констант на этапе компиляции, данный код будет занимать 0 тактов > Еще Вас помучаю. предлагаю мучения перенести в rwar@yahoogroups.com (все равно все сообщения из форума форвадятся в этот списко рассылки - после моего премодерирования) ;) > Падение в дырку на чемпионате - 1 очко или нет? остался в живых - 2 очка живы оба (ничья) - 1 очко умер (убит или упал в яму) - 0 очков раньше, когда 1 очко давалось только за чистую победу (уничтожение противника), убегание в яму или перерасход энергии с помощью реактора (суицид) приводил к ничье (0/0) - сейчас это считается проигрышем ----------------------------------------------------- DOVG (admin@........ru ) 16:07:51 19.12.2002 ----------------------------------------------------- Огромное спасибо за консультации. Теперь буду мучать роботов :-) ----------------------------------------------------- Shaos (shaos@.....ru) 16:12:51 19.12.2002 --------------------------- radar 3 shot radar[0] if y0 : TFindOtR if x0 : TPoXOtR if m2 : ReactorFair if radar[0]1 : ReactorFair goto EndReactorFair TBackOtR: if m2 : ReactorFairAmmoBack if radar[1]0 : NARandom goto harakiri TFind: if y0 : TPoXRight TPoXLeft: act left if obj[n]>2 : NAWhatLeft left call StepDo3 goto ObhodFrontRight TPoXRight: act right if obj[n]>2 : NAWhatRight right call StepDo3 goto ObhodFrontRight UseRadarAmmoOtR: %-----------------------------------