Форум администраторов игровых серверов

Форум администраторов игровых серверов (https://forum.zone-game.info/TT.php)
-   Lineage II (https://forum.zone-game.info/forumdisplay.php?f=34)
-   -   координаты из двумерного массива (https://forum.zone-game.info/showthread.php?t=38909)

slayer48 31.07.2015 22:46

координаты из двумерного массива
 
есть массив следующего вида:

Код:

int[][] locs =
{
  {1234,334,110},
  {3536,112,343},
  {1111,333,666},
  // ...
};

пытаюсь выбрать из него координаты для телепорта таким путем:

Код:

int[] _loc = locs[Rnd.get(locs.length)];
Location loc = new Location(_loc[0], _loc[1], _loc[2]);
activeChar.teleToLocation(loc, true);

вроде бы все ок... но вот спустя какое-то время замечаю экзепшины ArrayIndexOutOfBoundsException.

что здесь не так? может есть способ проще/лучше? :ah:

спасибо!!

DrHolmes 31.07.2015 22:49

Re: координаты из двумерного массива
 
Цитата:

Сообщение от slayer48 (Сообщение 398099)
есть массив следующего вида:

Код:

int[][] locs =
{
  {1234,334,110},
  {3536,112,343},
  {1111,333,666},
  // ...
};

пытаюсь выбрать из него координаты для телепорта таким путем:

Код:

int[] _loc = locs[Rnd.get(locs.length)];
Location loc = new Location(_loc[0], _loc[1], _loc[2]);
activeChar.teleToLocation(loc, true);

вроде бы все ок... но вот спустя какое-то время замечаю экзепшины ArrayIndexOutOfBoundsException.

что здесь не так? может есть способ проще/лучше? :ah:

спасибо!!

А что непонятного то- массив попросту переполняется, вы же locs, Используйте не только в одном случае, и не как не освобождайте его после того как персонаж телепортировался, то есть те значения(что сохранились/Записались) там же и остаются.

finfan 31.07.2015 23:59

Re: координаты из двумерного массива
 
Код:

int[] _loc = locs[Rnd.get(locs.length-1)];
Переполнение:
Rnd.get() - возвращает до N, а не до N - 1

Gaikotsu 01.08.2015 06:50

Re: координаты из двумерного массива
 
эм, вобще-то синтаксис Rnd.get(x) как раз возвращает в диапазоне от 0 до x-1
это синтаксис Rnd.get(x, y) возвращает в заданном диапазоне, включая и граничные значения.

хотя конечно у автора темы возможно Rnd.get нестандартно работает, хотя с чего бы опять же.

KID 01.08.2015 17:58

Re: координаты из двумерного массива
 
Мсье DrHolmes, вам стоит прекратить советы на текущем этапе вашего развития. более углубленное изучение языка java/русского крайне необходимо.

копирните пример от finfan и ошибка пропадет. и лучше почитайте как работают массивы, будет полезно.


Текущее время: 19:02. Часовой пояс GMT +3.

Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2022, Jelsoft Enterprises Ltd. Перевод: zCarot