Ошибка синхронизации в C-программе - PullRequest
0 голосов
/ 11 декабря 2010

Ради интереса я написал небольшую программу на C, которая, по идее, должна победить в игре Snake. Я использую его для симуляции нажатий клавиш и тестирую его в одной из игр со змеями в Facebook. Проблема в том, что, поскольку я не занимаюсь обработкой изображений и не пытаюсь привязаться к Java в самой игре, мой полностью основанный на времени алгоритм варьируется из-за нескольких задержек, особенно когда страница игры решает загрузить новое объявление. Есть ли способ, которым я мог бы обойти это с помощью алгоритма, основанного на времени?

Спасибо

1 Ответ

0 голосов
/ 28 февраля 2012

Я не знаю, на что похожа игра, но вы пытаетесь автоматизировать взаимодействие с инопланетным интерфейсом.Если взаимодействие не может быть буферизовано (или оно не может, или вы не нашли / не применили метод для этого).

Лучший способ сделать это - соединить оба блока вместе, имеяВаш AI будет вызван, когда игра будет готова для другого заказа.В противном случае есть несколько идей, которые вы можете использовать:

  • Выполните некоторую базовую обработку, чтобы определить, отреагировала ли игра на команду, если нет, попробуйте снова.

  • Если вы можете подождать и повторить, попробуйте рассчитать время задержки и сделать взаимодействие синхронизированным, повторяя одну и ту же команду несколько раз.

  • Полностью избегайте источника задержки, напримерс помощью какого-либо инструмента для блокировки рекламы, использования правил брандмауэра для блокировки этих конкретных объявлений, блокировки скрипта, который загружает рекламу, и так далее.Но это будет означать, что реклама находится за пределами java-апплета - если это так, вы можете просто запустить апплет без страницы «контейнера».

...