Войти
ПроектыФорумКонкурсы

RESTanks: на конкурс AI (7 стр)

Страницы: 16 7 8 911 Следующая »
#90
21:55, 17 мар 2023

#!
> а что с этой командой? могу менять статы в турнирной игре?
если ты про режим pvp, то /new дёргается один раз при входе в "лобби" игры. вызов /new после начала pvp сессии будет возвращать ошибку.

> и что если единственный участник каждый ход начинал заново?
если ты про режим pvp, то повторный вызов /new будет возвращать ошибку.
если ты про режим pve, то повторный вызов /new будет обнуляет все характеристики игрока, как будто он начал игру сначала.

#91
(Правка: 18 мар 2023, 0:45) 23:41, 17 мар 2023

Похоже, что методом /new я внёс неразбериху. Поэтому убираю его, а взамен будет метод "начать PVE игру": POST https://gdtanks.pythonanywhere.com/start_pve_game
В теле запроса необходимо передать характеристики танка:

{
    'hp': 2,
    'shells': 2,
    'attack': 2,
    'visibility_range': 2,
    'shooting_distance': 2
}

Для PVP режима будут отдельные методы

#92
9:28, 18 мар 2023

Добавил простенький пример AI на Питоне:

+ Показать
#93
(Правка: 16:35) 16:28, 18 мар 2023

Добавил бонусы. Они рандомно спаунятся на карте. Их можно подбирать, каждый бонус даёт возможность увеличить любую характеристику танка на единицу.

Чтобы узнать, есть ли поблизости бонусы, нужно позвать метод http://gdtanks.pythonanywhere.com/info
В ответе будет массив "bonuses", содержащий координаты бонусов.

Чтобы узнать, есть ли непотраченные бонусы, нужно позвать метод http://gdtanks.pythonanywhere.com/info
В ответе будет переменная "points_available", содержащая количество очков, которые можно потратить.

Чтобы прибавить бонус к желаемой характеристике, нужно позвать АПИ: http://gdtanks.pythonanywhere.com/add_point/PARAMETER_NAME

где PARAMETER_NAME — имя характеристики танка, например "hp"

На отладочной карте бонусы условно обозначаются вопросиками:

gd_tanks_bonuses | RESTanks: на конкурс AI
#94
17:23, 18 мар 2023

aliskda
> if info.status_code == 400:
> break # нас подбили, выходим из цикла
о, это интересные подробности

видимо придётся слезать с urlmon
там даже статусных кодов нету)

Return value
Returns S_OK if the operation succeeded, or E_OUTOFMEMORY if there is insufficient memory to complete the operation.

URLOpenBlockingStream function

и оно возвращает S_OK даже если линка не существует

#95
20:33, 18 мар 2023

#!
> Return value
> Returns S_OK if the operation succeeded, or E_OUTOFMEMORY if there is
> insufficient memory to complete the operation.
Похоже не какую-то супер-низкоуровневую штуку.

#96
1:44, 20 мар 2023

#!
> всегда избегал веб-программирование, оно действительно просто брало из кеша, соответственно команды получались одноразовые все
Это проблема GET запросов. Сейчас перевожу на POST, там нет кеширования (перевожу не только из-за этого, но и из-за того, что  изменения сущностей правильно делать через POST запросы).

#97
2:01, 20 мар 2023

aliskda
> Это проблема GET запросов

Это исключительно проблема браузеров. Которая здесь вообще непонятно каким боком.
Для http api ты можешь вообще свои методы придумать.

#98
10:09, 20 мар 2023

Der FlugSimulator
> Это исключительно проблема браузеров.
Ты уверен? Вот тут сравниваются GET и POST, и написано, что GET может кешироваться, а POST - нет:

+ Показать

К тому же #! жаловался, что у него были проблемы с кешированием.

#99
12:48, 20 мар 2023

aliskda
> Ты уверен?
Процентов на 200. Особенно если я сам пишу http доступ на базе tcp, или есть исходники.


> Вот тут сравниваются GET и POST, и написано, что GET может кешироваться, а POST - нет:
Именно там и написано "Example: A client (browser) sends an HTTP request..."


> #! жаловался, что у него были проблемы с кешированием.
Я не вдавался, что у него там. Может он http-либу от браузера использует. А может другую с кэшированием.
А может сервер настроен на кэширование.

#100
(Правка: 18:12) 17:23, 20 мар 2023

До сих пор в моей игре был "один танк на всех", как правильно заметил #!.
Теперь я добавил новые сущности: "игра" и "танк", которые позволят создавать множество танков и параллельных игр.

+ Алгоритм действий для клиента:
#101
18:45, 20 мар 2023

Пример простого AI на Питоне:

+ Показать
#102
19:30, 20 мар 2023

Серверная часть готова. Приглашаются желающие для написания клиентов!
Вся необходимая информация собрана в нульпосте.

#103
19:55, 20 мар 2023

aliskda
А в чем писать,  я имею ввиду программу? И с помощью чего отсылать код?
Просто я в этом абсолютный ноль.

#104
20:06, 20 мар 2023

Incvisitor
> А в чем писать,  я имею ввиду программу?
Можно писать на любом языке, в котором есть возможность делать HTTP вызовы.
Тебе на каком языке проще всего писать? Попробую сделать на нём пример.

> И с помощью чего отсылать код?
Отсылать не надо. Запускаешь написанный код у себя на компе и смотришь результат выполнения.

Страницы: 16 7 8 911 Следующая »
ПроектыФорумКонкурсы