Войти
ФлеймФорумОбщее

Russian Ai Cup: Codetroopers (4 стр)

Страницы: 13 4 5 634 Следующая »
#45
1:42, 5 ноя. 2013

Я боюсь, что меня заплюют, но все же:
А как они защищаются от использования рефлексии в яве, питоне и т.д с целью изменить логику игры на стороне сервера? Я вот вижу они обфускацию используют, но ведь это не сильно спасает. И почему кстати сказать обфускация? Они боятся, что расковыряют?


#46
1:45, 5 ноя. 2013

Chaos_Optima
> у меня вот такая ошибка вылезает
скорее всего ты запустил несколько ранеров, или не завершил один из них

#47
1:47, 5 ноя. 2013

PANDA
> Они боятся, что расковыряют?
мне вот это больше всего не понятно... ведь давно бы уже нормальные ранеры написали и всякие тулзы для дебага

PANDA
> А как они защищаются от использования рефлексии в яве, питоне и т.д с целью
> изменить логику игры на стороне сервера?
не понял сути... каждая стратегия отдельный процесс, доступа ни файловой системе на сервере, ни тем более к процессам скорее всего нет
у каждой стратегии скорее всего своя песочница
общение с ранерами по сети

#48
1:49, 5 ноя. 2013

Кирюшык
ты видел код на С++? его как будто калека писал со сломанными руками, и больной головой.
вот пример при дебаге нашёл.

+ Показать

при этом там куча мэмликов, просто дохрена.
RemoteProcessClient::readCellVisibilities()
вызывается постоянно, внутри
cellVisibilities = new vector<vector<vector<vector<vector<bool> > > > >();
возвращает
return *cellVisibilities;
а удаляет cellVisibilities в деструкторе, который вызывается когда? Правильно, никогда.
дальше
    Trooper trooper = readTrooper();
    World world = readWorld();

    return new PlayerContext(trooper, world);
внутри конструктора.
private:
        const Trooper& trooper;
        const World& world;
    public:
        PlayerContext(const Trooper& trooper, const World& world);
    : trooper(trooper), world(world) { }
то есть человек писавший это вообще языка не знает.
#49
1:51, 5 ноя. 2013

Это печально. Надеюсь, поправят.

#50
1:51, 5 ноя. 2013

ещё
Trooper playerTrooper = playerContext->getTrooper();
притом что playerTrooper не POD и у него нет копирующего конструктора, это просто жесть.
(хотя тут конечно будет работать, но блин так не пишут!)
И таких ошибок просто неипическое количество.

#51
1:52, 5 ноя. 2013

cNoNim
> не понял сути... каждая стратегия отдельный процесс, доступа ни файловой
> системе на сервере, ни тем более к процессам скорее всего нет
> у каждой стратегии скорее всего своя песочница
> общение с ранерами по сети
Ясно, я думал оно просто загружает юзерские классы/скрипты и запускает их.

#52
1:55, 5 ноя. 2013

Chaos_Optima
> притом что playerTrooper не POD и у него нет копирующего конструктора, это
> просто жесть.
> И таких ошибок просто неипическое количество.
я у себя поправил подобные косяки )
будем надеяться, что у них на сервере там что нить более продуманное... хотя врятли

#53
1:58, 5 ноя. 2013

меня вот еще что интересует
player_id
это индекс игрока в раунде и его можно использовать для доступа к игроку через вектор игроков
или это глобальный индекс игрока в конкурсе...
не ну т.е. понятно у себя я могу посмотреть, но где гарантия что на сервере тоже самое
это гденить написано?

#54
1:59, 5 ноя. 2013

собственно почему такие вопросы
если это индекс в раунде
то по нему можно игроков по углам расставлять
или нет?

#55
2:09, 5 ноя. 2013

Уже поправили. Заменили всё нафиг.

#56
2:09, 5 ноя. 2013

Интерфейс теперь красивее, но блин. Я уже понаписал коду.

#57
2:14, 5 ноя. 2013

а функция RemoteProcessClient::readCellVisibilities() просто эпичная.
Тэкс вроде заставил работать, будем ковырять.

#58
2:32, 5 ноя. 2013

Кирюшык
> Интерфейс теперь красивее, но блин. Я уже понаписал коду.
все равно основные косяки так ни кто и не поправил...
сделать из World POD тип задача ну просто не выполнимая...
заменить ссылку на указатель ну ни как нельзя

#59
2:43, 5 ноя. 2013

Кирюшык
> Уже поправили. Заменили всё нафиг.
Где? Я скачал в 00:02.

Страницы: 13 4 5 634 Следующая »
ФлеймФорумОбщее

Тема в архиве.