«Не утверждение» проблема с массивом 2d символов Java - PullRequest
1 голос
/ 04 марта 2012

У меня есть 2d массив символов карты, где каждая позиция в массиве относится к символу в этой позиции на карте. У меня также есть текущая позиция пользователя. Я проверил, что моя карта содержит значения и что положение правильное и что я не пытаюсь достичь чего-либо за пределами карты. По какой-то причине моя карта n = map [....], e = ... etc не работает и возвращается с ошибкой «not a Statement» и «; необходимо и т. д. Я не понимаю, почему это не сработает. Есть идеи?

 public String look(int[] position, char[][] mapArray)
    {
    char[][] map = mapArray;
    char n;
    char e;
    char s;
    char w;
    int across;
    int down;
    across = position[0];
    down = position[1];
    System.out.println(across);
    System.out.println(down);
    n = map[(down + 1),across];
    e = map[down, (across + 1)];
    s = map[(down - 1), across];
    w = map[down, (across - 1)];
    //System.out.println("Across" + across);
    //System.out.println("Down" + down);
    //System.out.println("N" + n);
    //System.out.println("E" + e);
    //System.out.println("S" + s);
    //System.out.println("W" + w);
    return "hello";
    }

Ответы [ 3 ]

3 голосов
/ 04 марта 2012

Должно быть:

 n = map[(down + 1)][across];
2 голосов
/ 04 марта 2012

Для доступа к 2d массиву вам нужно:

n = map[(down + 1)][across]

вместо

n = map[(down + 1),across]

[то же самое относится и к другим доступам к 2d массиву]

Идея состоит в том,: map[(down + 1)] дает вам char[], и затем вы получаете доступ к этому char[] как любой массив [и, таким образом, вы используете два []]

0 голосов
/ 04 марта 2012

Это должно быть:

n = map[(down + 1)][across];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...