Как исправить ошибку «Неверные типы операндов для бинарного оператора»> = «первый тип: int [] второй тип int» - PullRequest
0 голосов
/ 18 марта 2020

** Ошибка с этой строкой: **

if ((board[r + vertical[movenumber]]) <= 8 && board[r + vertical[movenumber]] >= 1)

** Весь метод при необходимости: **

public void tour()
{

    int starter = 1;

    int start1 = (int)(Math.random() * 8 - 1) + 1;
    int start2 = (int)(Math.random() * 8 - 1) + 1;

    board[start1][start2] = starter;

    int r = start1;
    int c = start2;

    for (int count = 0; count < board[row].length; count++)
    {

        numb[count] = count;

    }

    for (int runs = 2; runs <= 64; runs++)
    {

        int movenumber = (int)(Math.random() * 8 - 1) + 1;

        if ((board[r + vertical[movenumber]]) <= 8 && board[r + vertical[movenumber]] >= 1)
        {

            if (board[r + vertical[movenumber]][c + horizontal[movenumber]] == 0)
            {

                board[r + vertical[movenumber]][c + horizontal[movenumber]] = runs;

                // System.out.println(r + "," + c);

                r = r + vertical[movenumber];
                c = c + horizontal[movenumber];

            }

        }

    }

}

1 Ответ

1 голос
/ 18 марта 2020

Ошибка довольно конкретная c - вы пытаетесь сравнить массив с int. Выражение board[r + vertical[movenumber]] является массивом (или, в частности, int[]), потому что ваша доска равна int[][]. Чтобы сделать его int, вам нужно добавить второй индекс, как вы делаете это в следующих строках: board[r + vertical[movenumber]][c + horizontal[movenumber]].

И с первого взгляда на код, я думаю, это должно быть r + vertical[movenumber] <= 8 вместо.

...