RobotControl: как получить доступ к определенной высоте блока для расчета высоты столбца? - PullRequest
0 голосов
/ 02 декабря 2019

В настоящее время я работаю над программой-роботом, в которой я должен двигать ее руку, чтобы подбирать и опускать блоки на разных барах со следующими значениями инициализации для blockHeights и barHeights.

public class RobotControl implements Control
{
    private int height = 13;
    private int width = 1;
    private int depth = 0;

    private int[] barHeights;
    private int[] blockHeights;

    private Robot robot;

    // called by RobotImpl
    @Override
    public void control(Robot robot, int barHeightsDefault[], int blockHeightsDefault[])
    {
        this.robot = robot;

        this.barHeights = new int[] { 3, 4, 1, 5, 2, 3, 2, 6 };
        this.blockHeights = new int[] {  2, 1, 1, 2, 1, 3, 2, 3, 1, 1, 2, 2, 3};



        // initialise the robot
        robot.init(this.barHeights, this.blockHeights, height, width, depth);

Первоначально,Я думал, что блоки будут расположены по порядку, начиная с индекса 0 и далее, чтобы сформировать 2 исходных столбца (где я бы направил руку робота, чтобы приблизиться и поднять блоки), каждый с максимальной высотой 12. Однако когдаЯ запускаю приложение, блоки располагаются случайным образом, поэтому мои вычисления высоты столбцов все перепутаны. Например, фактические порядки блоков 1 столбца в приложении снизу вверх: 3, 1, 1, 2, 1, 2, 2 (отличается от порядка, в котором я их инициализировал).

Так что мой вопрос: «Как я могу получить доступ именно к тому блоку, который собирает робот, так как блок в моем коде начинается с blockHeights [0], а блок в приложении выбирает другой блок?»

Я новичокпоэтому, пожалуйста, проведите меня через него, и я опубликую дополнительные коды, если это будет необходимо. Заранее спасибо!

...