Нужен алгоритм для установки фигур на моей игровой доске на Java - PullRequest
0 голосов
/ 04 апреля 2011

Я создаю игру (возможно, кто-то знает, ее зовут "Hexxagon").

В настоящее время я строю доску из 61 штуки.Форма шестиугольная, поэтому я не могу поместить кусочки в простую ортогональную матрицу.Мне нужно поместить каждую фигуру в отдельную позицию (x, y) на доске.

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

Я пишу игру на Java.

Куски должны выглядеть так.

Ответы [ 2 ]

1 голос
/ 04 апреля 2011

Ого, я помню эту игру. Возможно, вы захотите взглянуть на Координаты в картах листов на основе шестиугольника или Шестигранные системы координат , чтобы помочь вам начать работу. Вы почти наверняка захотите иметь объект, который представляет каждый кусок. В нем вы бы сохранили позицию, ссылки на смежные фигуры и текущее состояние.

Где-то в начале вам все еще нужно будет сконструировать, какие фигуры принадлежат на игровом поле, поскольку эта игра имеет особый макет. Вероятно, вы можете сохранить это в некотором массиве для представления платы. Затем при запуске вы интерпретируете его, чтобы построить объекты с правильными координатами и связями. Затем, чтобы нарисовать каждый кадр, вы можете просто перебрать эти объекты. Например. массив может выглядеть примерно так:

String[] board = new String[] {
        "    X    ",
        "   X X   ",
        "  X X X  ",
        " X X X X ",
        "X X X X X",
        " X X X X ",
        "X X   X X",
        " X X X X ",
        "X X X X X",
        " X     X ",
        "X X X X X",
        " X X X X ",
        "X X X X X",
        " X X X X ",
        "  X X X  ",
        "   X X   ",
        "    X    "
};

Разбор, который будет интересен :) Удачи!

0 голосов
/ 04 апреля 2011

Возможно, вы захотите проверить при обработке, я использовал ее, чтобы сделать доску с такими же формами для проекта. С ней проще работать с графикой, и она работает с Java.

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