HTTP API для управления игрой.
cargo runСервер стартует на http://0.0.0.0:8080
| Method | URL | Описание |
|---|---|---|
| GET | /json |
Получить состояние игры в JSON |
| POST | /click?x=0&y=0 |
Левый клик (x - колонка, y - строка), возвращает состояние |
| POST | /flag?x=0&y=0 |
Поставить/убрать флаг, возвращает состояние |
| POST | /restart |
Начать новую игру, возвращает состояние |
Индексация: нумерация строк и колонок начинается с 0. x = колонка, y = строка.
# Получить состояние
curl http://127.0.0.1:8080/json
# Кликнуть на клетку в колонке 5, строке 3 (индексы с 0)
curl -X POST "http://127.0.0.1:8080/click?x=5&y=3"
# Поставить флаг на клетку в колонке 5, строке 3
curl -X POST "http://127.0.0.1:8080/flag?x=5&y=3"
# Начать заново
curl -X POST http://127.0.0.1:8080/restart{
"width": 30,
"height": 16,
"cells": [
[
{"row": 0, "col": 0, "cell": "empty", "is_opened": true, "is_labeled": false, "unknown_around": 0, "labeled_around": 0},
{"row": 0, "col": 1, "cell": "unknown", "is_opened": false, "is_labeled": false, "unknown_around": 3, "labeled_around": 1},
{"row": 0, "col": 2, "cell": "1", "is_opened": true, "is_labeled": false, "unknown_around": 0, "labeled_around": 0}
}
],
"time": 42,
"status": "",
"mines_found": 5
}row: номер строки (начинается с 0)col: номер колонки (начинается с 0)cell:"unknown"(неоткрыта),"mine","empty", или цифра (1-8)is_opened: открыта ли клеткаis_labeled: установлен ли флагunknown_around: количество неоткрытых клеток вокруг (0-8)labeled_around: количество клеток вокруг, помеченных флагами (0-8)
Всегда помечай клетки, которые считаешь минами, флагом:
curl -X POST "http://127.0.0.1:8080/flag?x=5&y=3"Важно:
- После каждого
/click,/flagили/restartзапроса сервер возвращает новое состояние игры в JSON. Используй его для планирования следующего хода. - Нумерация строк и колонок начинается с 0. x = колонка, y = строка.
- Каждая клетка в ответе содержит
rowиcol.
- не пытайся угадать, всегда сначала пробуй искать используя правила;
- начинай с поиска ячеек с цифрой где кол-во неоткрытых клеток вокруг равно цифре,
значит эти неоткрытые ячейки - мины; - если ячейка открыта, это цифра, и кол-во клеток с флагом вокруг равно цифре,
значит все клетки вокруг (кроме тех что с флагом) можно безопасно открывать
(для этого просто кликни по ячейке с самой цифрой).