You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+13-11Lines changed: 13 additions & 11 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,6 @@
1
1
# HyperNull
2
2
3
-
HyperNull - восходящая звезда в мире криптовалют. Боты собирают hypernull-коины (монеты), генерируемые в адресном пространстве видеопамяти. Спрос на HyperNull высок, в майнинге большая конкуренция, на каждую монету претендует сразу несколько майнеров. А система безопасности видеопамяти блокирует некоторые ячейки адресного пространства, усложняя тем самым задачу.
3
+
HyperNull - восходящая звезда в мире криптовалют. Боты собирают hypernull-коины (монеты), генерируемые в адресном пространстве видеопамяти. Спрос на HyperNull высок, в майнинге большая конкуренция, на каждую монету претендует сразу несколько майнеров. А система безопасности видеопамяти блокирует некоторые ячейки адресного пространства, усложняя задачу.
4
4
5
5
Ваша задача разработать алгоритм бота, который будет эффективно майнить hypernull-коины: соберет как можно больше монет за фиксированное количество раундов. Бот перемещается по ячейкам двумерной карты. За один ход (или раунд) он может перейти на соседнюю ячейку по горизонтали, вертикали или диагонали, если она свободна. Левая нижняя ячейка карты задается координатами (0, 0). Карты замкнуты по ширине и высоте. Это означает, что если бот находится в крайней правой ячейке и перемещается на одну позицию вправо, он попадает в крайнюю левую ячейку (переходит через границу). Это правило применяется вдоль всех направлений и учитывается при вычислении расстояний между ячейками.
6
6
@@ -62,14 +62,14 @@ HyperNull - восходящая звезда в мире криптовалют
62
62
```
63
63
64
64
- При запуске бот загружает [файл конфигурации](starter-bot/bot.properties), путь к которому задается первым аргументом командной строки и подключается к серверу.
65
-
- На каждое подключение сервер отправляет приветственное сообщение [`hello`](#-hello).
66
-
- Бот отвечает на приветствие сообщением [`register`](#-register), указывает желаемый режим матча и регистрационную информацию, подтверждая готовность участия в матче.
65
+
- На каждое подключение сервер отправляет приветственное сообщение [`hello`](#hello).
66
+
- Бот отвечает на приветствие сообщением [`register`](#register), указывает желаемый режим матча и регистрационную информацию, подтверждая готовность участия в матче.
67
67
- Сервер регистрирует участника и инициализирует матч. При необходимости дожидается готовности других ботов.
68
-
- Когда состав участников матча сформирован, сервер отправляет всем ботам сообщение [`match`](#-match) и запускает матч.
69
-
- На каждом раунде матча сервер отправляет сообщение [`update`](#-update) c текущим состоянием всем активным ботам.
70
-
- Сервер ожидает команды [`move`](#-move) и подтверждения хода от всех активных ботов и обновляет текущее состояние матча на основе полученных команд. Если бот не успевает прислать команду за отведенное время, он пропускает ход.
71
-
- Если бот выбывает из матча, сервер исключает его из списка активных и отправляет этому боту сообщение [`match_over`](#-match_over).
72
-
- При достижении лимита по количеству раундов матч завершается. Всем активным ботам отправляется сообщение [`match_over`](#-match_over).
68
+
- Когда состав участников матча сформирован, сервер отправляет всем ботам сообщение [`match`](#match) и запускает матч.
69
+
- На каждом раунде матча сервер отправляет сообщение [`update`](#update) c текущим состоянием всем активным ботам.
70
+
- Сервер ожидает команды [`move`](#move) и подтверждения хода от всех активных ботов и обновляет текущее состояние матча на основе полученных команд. Если бот не успевает прислать команду за отведенное время, он пропускает ход.
71
+
- Если бот выбывает из матча, сервер исключает его из списка активных и отправляет этому боту сообщение [`match_over`](#match_over).
72
+
- При достижении лимита по количеству раундов матч завершается. Всем активным ботам отправляется сообщение [`match_over`](#match_over).
73
73
74
74
## Протокол бота
75
75
@@ -86,7 +86,7 @@ end
86
86
87
87
### hello
88
88
89
-
Отправляется сервером при подключении бота. В ответ бот отправляет на сервер сообщение [`register`](#-register).
89
+
Отправляется сервером при подключении бота. В ответ бот отправляет на сервер сообщение [`register`](#register).
90
90
91
91
```
92
92
hello
@@ -156,7 +156,7 @@ end
156
156
-`NUM_BOT_COINS` количество монет, собранных ботом
157
157
-`BOT_ID` идентификатор бота
158
158
159
-
Сообщение всегда содержит информацию о текущем боте. Например, если в [`match`](#-match) боту присвоен идентификатор 1
159
+
Сообщение всегда содержит информацию о текущем боте. Например, если в [`match`](#match) боту присвоен идентификатор 1
160
160
161
161
```
162
162
match
@@ -177,7 +177,7 @@ end
177
177
178
178
### move
179
179
180
-
Отправляется ботом для совершения хода в каждом раунде. За раунд может быть отправлен только один `move`. Следующая команда может быть отправлена в следующем раунде, о начале которого сервер сигнализирует сообщением [`update`](#-update).
180
+
Отправляется ботом для совершения хода в каждом раунде. За раунд может быть отправлен только один `move`. Следующая команда может быть отправлена в следующем раунде, о начале которого сервер сигнализирует сообщением [`update`](#update).
0 commit comments