Skip to content

Instantly share code, notes, and snippets.

@TatriX
Last active June 11, 2018 12:01
Show Gist options
  • Save TatriX/d93a3cd8f0fb299d783dedad3d8d0a03 to your computer and use it in GitHub Desktop.
Save TatriX/d93a3cd8f0fb299d783dedad3d8d0a03 to your computer and use it in GitHub Desktop.
StarCode: Паралельный пошаговый старкрафт

Краткое описание

Паралельный пошаговый старкрафт (пока 1 на 1).

Соперники ходят одновременно. Время хода ограничено X секундами. Ход можно закончить раньше, тогда его результат станет известен сразу.

Количество запросов которые игрок может выполнить за ход ограничено, и может быть улучшено через апгрейд базы.

Карта

Карта представляет из себя граф, где из каждого узла можно двигаться в 8 направлениях, если они не блокированы.

NW-N-NE
|\ | /|
W--*--E
|/ | \|
SW-S-SE

Каждому узлу соответсует UUID, а его координаты в общем случае неизвестны. Узел может содержать войска, здания, ресурсы, естественные препятствия.

Методы карты

  1. Получить список известных узлов
GET /nodes
[
 {id: 0x339, visible: true},
 {id: 0x310, visible: false},
 ...
]
  1. Получить инфу об узле
GET /nodes/0x339

{
  id: 0x339,
  units: [
    {type: "scv", hp: [100, 100], id: 0x11},
    {type: "scv", hp: [100, 100], id: 0x12},
    {type: "scv", hp: [100, 100], id: 0x13},
  ],
  buildings: [
    {type: "command-center", hp: [3000,3000], id: 0x21},
  ],
  resources: {
    {type: "minerals": hp: [800, 800], id: 0x32},
	{type: "gas", hp: [400, 400], id: 0x34}
  },
  neighbors: {
   n: 0x310,
   s: 0x312,
   ...
  },
}

Юниты

Юниты имеют набор характеристик: хп, типа брони, атаки, скорость, спец. способности.

Методы юнитов

  1. Получить инфу обо всех юнитах
GET /units
[
    {type: "scv", hp: [100, 100], id: 0x11},
    {type: "scv", hp: [100, 100], id: 0x12},
    {type: "scv", hp: [100, 100], id: 0x13},
    {type: "marine", hp: [300, 300], id: 0x14},
]
  1. Отдать приказ юниту
POST /units/0x11/build/refinery

201 OK
POST /units/0x41/move-attack/0x312

200 OK

Здания

Здания имеют хп, могут производить юниты, изучать улучшения и давать прочие бонусы.

Методы зданий

POST /buildings/0x21/train/marine?count=2

Улучшить здание

POST /buildings/0x21/upgrade/tier2

Изучить улучшение

POST /buildings/0x21/upgrade/liquid-shit

Бой

Бой происходит в каждом раунде на каждом узле, где встретились юниты игроков.

Юниты без дела, при появлении врага автоматически начинают атаку, если им не был отдан приказ hold.

По умолчанию юниты выбирают случайную цель. Микроконтроль позволяет вести сфокусированный огонь, но нужно помнить об ограниченном количестве запросов на ход.

Победа и поражение

Проигрывает соперник, который потерял все здания.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment