/
java56
/
Minesweeper
Обзор
Документация
Войти
/
java56
/
Minesweeper
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
src/main/java/com/mikhail/minesweeper/swagger/SwaggerConfig.java
35 строк
5 KB
Mikhail Gorbatenkov
46 - add a project description to swagger
19 фев 2025, 17:31
19 фев 2025, 17:31
85f8bef
Код
Авторство
О чём код?
package com.mikhail.minesweeper.swagger; import io.swagger.v3.oas.annotations.ExternalDocumentation; import io.swagger.v3.oas.annotations.OpenAPIDefinition; import io.swagger.v3.oas.annotations.info.Contact; import io.swagger.v3.oas.annotations.info.Info; import io.swagger.v3.oas.annotations.info.License; import io.swagger.v3.oas.annotations.servers.Server; @OpenAPIDefinition( info = @Info(title = "Игра Сапёр (Minesweeper)", description = "Каждая игра начинается с указания размера поля <code>width</code> и <code>height</code>, а также количества мин <code>mines_count</code> на нём. " + "Исходная задача не подразумевает ограничений, " + "но для тестовой реализации остановимся на разумном ограничении входных параметров: ширина и высота не более 30, количество мин не более <code>width * height - 1</code> (всегда должна быть хотя бы одна свободная ячейка).<br /><br />" + " Далее игроку предлагается в созданной игре (идентификация игры по полученному в ответ <code>game_id</code>) делать ходы, указывая координаты ячейки, которую игрок хочет открыть," + " а именно - <code>row</code> (номер ряда, начиная с нуля) и <code>col</code> (номер колонки, начиная с нуля).<br /><br /> В ответ на оба метода приходят данные о самой игре: уникальный идентификатор игры <code>game_id</code>, " + "размер поля и количество мин, указанные при создании игры, а также данные о поле <code>field</code> в виде двумерного массива символов (<code>height</code> строк, в каждой по <code>width</code> элементов), где пустые строки <code>\" \"</code> (пробелы) означают неоткрытые ячейки поля, " + "поля с цифрами от <code>\"0\"</code> до <code>\"8\"</code> означают открытые ячейки, где цифры указывают, сколько мин расположено в непосредственной близости от текущей ячейки. Также возвращается параметр <code>completed</code>, указывающий, завершена ли текущая игра.<br /><br /> " + "Игра заканчивается в случае, если пользователь указал на ячейку, где установлена мина (ячейки с минами при этом отмечены символом <code>\"X\"</code> - латинская заглавная \"икс\"), " + "либо пользователь открыл все ячейки, не занятые минами (в этом случае мины отмечены <code>\"M\"</code> - латинская заглавная \"эм\"). " + "Также при завершении игры должна появиться информация по всем остальным ячейкам - количество мин рядом с каждой из ячеек.<br /><br /> " + "Если в процессе игры пользователь открывает ячейку, рядом с которой нет ни одной мины (то есть ячейка со значением <code>\"0\"</code>), должны \"открыться\"" + " все смежные ячейки, рядом с которыми также нет ни одной мины, а также все смежные с ними \"числовые\" ячейки," + " рядом с которыми мины есть, с указанием их количества.<br /><br /> Не допускается после завершения игры делать новые ходы, а также повторно проверять уже проверенную ячейку. " + "Эти, а также иные ошибочные ситуации должны возвращать " + "ошибку с кодом <code>400 Bad Request</code> с текстовым описание ошибки в <code>error</code>.", contact = @Contact(name = "Михаил", email = "test@mail.ru"), license = @License(name = "Apache 2.0", url = "https://www.apache.org/licenses/LICENSE-2.0") ), externalDocs = @ExternalDocumentation(url = "https://minesweeper-test.studiotg.ru/", description = "Спецификация API для игры Сапёр"), servers = {@Server(url = "http://localhost:8085", description = "Сервер для игры Сапёр")} ) public class SwaggerConfig { }