Случайная матрица: по индексу i, j найти те же значения

1

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

Цель состоит в том, чтобы иметь лучший результат, правило:

  • Игрок дает позицию
  • Я должен получить все эти позиции в списке
  • Расскажите ему счет (количество элементов в списке)
  • Затем сделайте случайное от 1 до 2 на этих позициях
  • Показать новую матрицу для других игроков

Итак, на данный момент с моим кодом я могу иметь позиции в одной строке и столбце, но не во всех позициях.

Это мой код:

    if(y > 0) 
        if(grille[x][y] == grille[x][y-1]) 
            unvisited.add(new Coord(x, y-1));       
    // position dessous
    if(y < len-1)
        if(grille[x][y] == grille[x][y+1]) 
            unvisited.add(new Coord(x, y+1));

И я не могу найти другие моменты...

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

Ошибка выхода:

Exception in thread "main" java.util.ConcurrentModificationException

Надеюсь, вы понимаете, чего я хочу, и извините за мой плохой английский.

  • 1
    Вы должны использовать Итератор, если хотите удалить элементы во время итерации, чтобы прекратить получать эту ошибку.
  • 0
    может это то что ты ищешь
Показать ещё 1 комментарий
Теги:
matrix

1 ответ

2
Лучший ответ

Это проблема с четырьмя связями, чтобы указать имя на ней. И вы ищете самый большой регион. Здесь http://en.wikipedia.org/wiki/Connected-component_labeling у вас есть некоторые алгоритмы. NB: m-connectivity и 8-connectivity - с диагоналями, осторожно здесь.

  • 0
    Спасибо, посмотрю, я отредактировал свой код

Ещё вопросы

Сообщество Overcoder
Наверх
Меню