Search
Write a publication
Pull to refresh
51
0
Антон Сердюк @m00t

Software Engineer

Send message
Пробельчик уберите в «java — jar example_bots/DualBot.jar» после дефиса
Может быть, кто-то расскажет, как надо было _правильно_ обрабатывать эту ситуацию? Сам не силен в Java
Скачал, запустил (ОС Windows XP). Столкнулся с проблемой, описанной немного выше в комментариях:
java -jar tools/PlayGame.jar maps/map1.txt 1000 1000 log.txt «java -jar example_bots/RageBot.jar» «java -jar example_bots/RageBot.jar» | java -jar tools/ShowGame.jar
WARNING: player 1 timed out.
WARNING: player 2 timed out.
Turn 1
Draw!


Советовали взять предыдущую версию starter_package. Посмотрел, чем они отличаются:

Старая версия дает боту такие данные:
P 11.6135908004 11.6587374197 0 119 0
Новая такие:
P 11,613591 11,658737 0 119 0

Вот из-за запятой в координатах, программа и рушится почему-то (PlanetWars.java: 255):
double x = Double.parseDouble(tokens[1]);
double y = Double.parseDouble(tokens[2]);

Заменил на
double x = Double.parseDouble(tokens[1].replace(',', '.'));
double y = Double.parseDouble(tokens[2].replace(',', '.'));


Перекомпилировал ботов — все заработало. Грешу на настройки локали какие-нибудь. Не уверен, что такой хак заработает на тестовом сервере.
Вообще такие примеры использования рекурсии как раз и приводят к неверному ее пониманию другими. Все, что можно просто реализовать через циклы, должно быть реализовано через циклы. Оставьте рекурсии задачи обхода дерева или синтаксического анализа, а факториал — через for (int i = 1; i <= n; i++) {}
строки 5 и 6 можно удалить: если N == 1, получим 1 * (1 — 1)! == 1 * 0! == 1
Поправьте факториал, дабы не вводить никого в заблуждение:
0! = 1;
N! = N * (N-1)!
Я бы даже сказал не статья, а заметка. Задумывалось как небольшой «tip» — типа «а вы знаете что...». Просто в свое время для меня было это не очевидно — пришлось копаться в исходниках немного.
В одной из ранних заметок вы упоминали С. Может быть действительно лучше разрабатывать такую платформу на более платформонезависимом (сорри за тавтологию) языке?
Я к тому, что дешевый VDS != шаред + root access в общем случае.
Есть шаред хостинг за 10$, все рюшечки имеются — вплоть до SSH. Есть VDS за 20-30$ или около того (64 оперативки, 400 проц) от ПервыхВДС. И есть веб-приложение на Zend Framework. На шареде летает. На VDS — 3-4 сек генерация страницы. Чтобы на ВДС тоже работало нормально, нужно купить далеко не за 20-30$ сервер.
Я не говорю про нагрузки от большого количества посетителей — это отдельная тема.
Можно узнать, какое отношение DI имеет к параллельной обработке данных?
ИМХО, проблема немного надумана. Первый пример с мультикурлом — ждем выполнения _всех_ загрузок, только потом их обрабатываем. Почему бы не обрабатывать каждую ленту сразу после ее загрузки? Т.е. поставили на загрузку 10, одна из них загрузилась, еще девять грузятся. В это время мы вполне ее успеем распарсить и сложить как надо в базу. Очень редко у меня многопоточный граббер упирался в своей роизводительности в роцессор и mySQL — как правило именно загрузка контента является самым узким местом. Ну так давайте параллелить только ее? Благо мультикурл прекрасно справляется с такой задачей.
12 ...
21

Information

Rating
Does not participate
Date of birth
Registered
Activity