MailRuChamps / raic-2018

Russian AI Cup — artificial intelligence programming contest. Official website: http://russianaicup.ru
43 stars 32 forks source link

на сайте в примере для custom_rendering потерялись двоеточия #57

Closed adler3d closed 5 years ago

adler3d commented 5 years ago

dont_work

вот этот пример(из http://russianaicup.ru/p/localrunner):

[
  {
    "Sphere": {
      "x": 2.0,
      "y": 5.0,
      "z": 15.0,
      "radius": 0.1,
      "r": 1.0,
      "g": 0.0,
      "b": 0.0,
      "a": 0.5
    }
  },
  {
    "Text": "Debug text #0"
  },
  {
    "Line": {
      "x1" 0.0,
      "y1" 0.0,
      "z1" 0.0,
      "x2" 10.0,
      "y2" 20.0,
      "z2" 30.0,
       "width": 1.0,
       "r": 1.0,
       "g": 1.0,
       "b": 1.0,
       "a": 1.0
    }
  }
]

не работет.

код теста:

#define TOTEXT(A)#A
#define override override; std::string custom_rendering()override{return join(split(join(split(\
TOTEXT(-(\
[                          \
  {                        \
    "Sphere": {            \
      "x": 2.0,            \
      "y": 5.0,            \
      "z": 15.0,           \
      "radius": 0.1,       \
      "r": 1.0,            \
      "g": 0.0,            \
      "b": 0.0,            \
      "a": 0.5             \
    }                      \
  },                       \
  {                        \
    "Text": "Debug text #0"\
  },                       \
  {                        \
    "Line": {              \
      "x1" 0.0,            \
      "y1" 0.0,            \
      "z1" 0.0,            \
      "x2" 10.0,           \
      "y2" 20.0,           \
      "z2" 30.0,           \
       "width": 1.0,       \
       "r": 1.0,           \
       "g": 1.0,           \
       "b": 1.0,           \
       "a": 1.0            \
    }                      \
  }                        \
]                          \
)-)                        \
,")-"),""),"-("),"");}             
//
#include "MyStrategy.h"
#undef override
#undef TOTEXT

значение оправляемой строки custom_rendering вот тут:

writeline(string(buffer.GetString()) + "|" + custom_rendering + "\n<end>");`

равно: [ { "Sphere": { "x": 2.0, "y": 5.0, "z": 15.0, "radius": 0.1, "r": 1.0, "g": 0.0, "b": 0.0, "a": 0.5 } }, { "Text": "Debug text #0" }, { "Line": { "x1" 0.0, "y1" 0.0, "z1" 0.0, "x2" 10.0, "y2" 20.0, "z2" 30.0, "width": 1.0, "r": 1.0, "g": 1.0, "b": 1.0, "a": 1.0 } } ]

jsoneditoronline.org говроит, что:

Error: Parse error on line 1:
...}, { "Line": { "x1" 0.0, "y1" 0.0, "z1" 
-----------------------^
Expecting 'EOF', '}', ':', ',', ']', got 'NUMBER'

хотя я просто скопировал пример json`а отсюда: http://russianaicup.ru/p/localrunner

ок, сейчас поправлю, посмотрю что будет.

да, вот так всё заработало:

#define TOTEXT(A)#A
#define override override; std::string custom_rendering()override{QapDebugMsg("passed");return join(split(join(split(\
TOTEXT(-(\
[                          \
  {                        \
    "Sphere": {            \
      "x": 2.0,            \
      "y": 5.0,            \
      "z": 15.0,           \
      "radius": 0.1,       \
      "r": 1.0,            \
      "g": 0.0,            \
      "b": 0.0,            \
      "a": 0.5             \
    }                      \
  },                       \
  {                        \
    "Text": "Debug text #0"\
  },                       \
  {                        \
    "Line": {              \
      "x1": 0.0,            \
      "y1": 0.0,            \
      "z1": 0.0,            \
      "x2": 10.0,           \
      "y2": 20.0,           \
      "z2": 30.0,           \
       "width": 1.0,       \
       "r": 1.0,           \
       "g": 1.0,           \
       "b": 1.0,           \
       "a": 1.0            \
    }                      \
  }                        \
]                          \
)-)                        \
,")-"),""),"-("),"");}             
//
#include "MyStrategy.h"
#undef override
#undef TOTEXT