Skip to content

akawd/miner

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Minesweeper API

HTTP API для управления игрой.

Запуск

cargo run

Сервер стартует на http://0.0.0.0:8080

API Endpoints

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

Формат ответа /json

{
  "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.

Правила как искать мины:

  • не пытайся угадать, всегда сначала пробуй искать используя правила;
  • начинай с поиска ячеек с цифрой где кол-во неоткрытых клеток вокруг равно цифре,
    значит эти неоткрытые ячейки - мины;
  • если ячейка открыта, это цифра, и кол-во клеток с флагом вокруг равно цифре,
    значит все клетки вокруг (кроме тех что с флагом) можно безопасно открывать
    (для этого просто кликни по ячейке с самой цифрой).

About

Small app for Rust learning.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages