summaryrefslogtreecommitdiff
path: root/content/posts/2024-12-12-guessr/index.md
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--content/posts/2024-12-12-guessr/index.md (renamed from content/posts/2024-12-12-guessr.md)88
1 files changed, 46 insertions, 42 deletions
diff --git a/content/posts/2024-12-12-guessr.md b/content/posts/2024-12-12-guessr/index.md
index 235901c..39c5c54 100644
--- a/content/posts/2024-12-12-guessr.md
+++ b/content/posts/2024-12-12-guessr/index.md
@@ -1,13 +1,13 @@
---
categories:
-- Мои проекты
-date: '2024-12-12T22:27:49+03:00'
-description: ''
-image: files/2024-12-12-guessr_logo.webp
+ - Мои проекты
+date: "2024-12-12T22:27:49+03:00"
+description: ""
+image: guessr_logo.webp
location: Казань
tags:
-- IT
-- Проект выходного дня
+ - IT
+ - Проект выходного дня
title: Guessr
---
@@ -38,46 +38,50 @@ https://git.neonxp.ru/guessr.git/
- Создание новой игровой сессии, в ответ ставится кука внутри которой
зашифровано текущее состояние — ник, количество очков, ID текущего
угадываемого объекта (в начале пустое).
- ```http
- POST /api/state
- Content-Type: application/json
-
- {
- "username": "NeonXP"
- }
- ```
+
+ ```http
+ POST /api/state
+ Content-Type: application/json
+
+ {
+ "username": "NeonXP"
+ }
+ ```
- Получение состояния. Просто возвращает вышеуказанные параметры
- ```http
- GET /api/state
- ```
+
+ ```http
+ GET /api/state
+ ```
- Выдача нового объекта для угадывания. При этом возвращается ссылка на фото и
обновляется состояние, тем что в него вписывается ID объекта
- ```http
- POST /api/next
- ```
+
+ ```http
+ POST /api/next
+ ```
- Угадывание. Собственно, на вход передаются координаты куда на карте указал
игрок. А в ответ возвращается:
- - Название объекта
- - Расстояние от переданной точки до реального размещения объекта
- - Geojson строка в которой зашифрована линия соединяющая точку и объект (нужна
- для отрисовки красной линии на карте)
-
- При этом высчитываются очки которые получает игрок за попытку по формуле
- max(1000-d, 0), где d - расстояние между выбранной точкой и объектом в метрах.
- То есть, если разница меньше 1000м, то чем ближе - тем больше очков (максимум
- 1000 очков за 1 очень точное угадывание).
- ```http
- POST /api/guess
- Content-Type: application/json
-
- {
- "lat": 55.123,
- "lon": 49.123
- }
- ```
+ - Название объекта
+ - Расстояние от переданной точки до реального размещения объекта
+ - Geojson строка в которой зашифрована линия соединяющая точку и объект (нужна
+ для отрисовки красной линии на карте)
+
+ При этом высчитываются очки которые получает игрок за попытку по формуле
+ max(1000-d, 0), где d - расстояние между выбранной точкой и объектом в метрах.
+ То есть, если разница меньше 1000м, то чем ближе - тем больше очков (максимум
+ 1000 очков за 1 очень точное угадывание).
+
+ ```http
+ POST /api/guess
+ Content-Type: application/json
+
+ {
+ "lat": 55.123,
+ "lon": 49.123
+ }
+ ```
Вот в общем-то и всё API!
@@ -122,9 +126,9 @@ err := p.db.NewSelect().
- [ ] Авторизация и общая доска лидерства
- [ ] После угадывания спрашивать у игрока «сложность», чтобы потом можно было,
- например, настраивать чтобы попадались только простые объекты. И, например,
- разное количество очков за простые и сложные объекты
+ например, настраивать чтобы попадались только простые объекты. И, например,
+ разное количество очков за простые и сложные объекты
- [ ] Подумать как вынести игру в оффлайн, по типу того же ингресса. Это сложно
- и предстоит хорошо это обдумать
+ и предстоит хорошо это обдумать
-Как-то так :) А впереди новые выходные и новые «проекты выходного дня»! \ No newline at end of file
+Как-то так :) А впереди новые выходные и новые «проекты выходного дня»!