Вывод в окне программы изображений в соответствии с содержимым двумерного массива - Java
Формулировка задачи:
Есть курсовой проект: игра "Инь-Ян" (что-то на подобии "Жизни" Конвея).
Краткая постановка задачи.
Игра «Инь-Ян» представляет собой клеточный автомат, состояния ячеек и правила переключения которого приближённо отражают закон единства и борьбы противоположностей. Ячейки автомата имеют три состояния: пустая ячейка (мёртвая), живая ячейка Инь и живая ячейка Ян. Соседние по-Муру ячейки (у каждой ячейки их 8), если они живые, называются соседями.
На данный момент реализована часть функционала программы, основная логика. В частности реализован метод, подсчитывающий соседей, проверяющий условия рождения\смерти в ячейке и в итоге создающий двумерный массив, отражающий шаг игры. На выходе получается что-то на подобии:
int[][] aRandomArray =
{{0, 0, 0, 1, 0, 1, 0, 2, 0, 0},
{2, 0, 2, 0, 0, 0, 0, 1, 0, 0},
{0, 0, 2, 2, 0, 0, 1, 0, 0, 0},
{0, 0, 1, 0, 2, 0, 0, 1, 2, 0},
{0, 2, 0, 0, 0, 0, 1, 1, 2, 0},
{0, 0, 1, 0, 2, 0, 0, 2, 2, 0},
{0, 0, 1, 0, 2, 2, 0, 0, 1, 0},
{0, 0, 2, 0, 0, 0, 2, 0, 0, 0},
{0, 0, 1, 1, 1, 0, 0, 0, 0, 2},
{0, 0, 2, 2, 0, 0, 0, 0, 1, 0}};
представляющее игровое поле 10х10, где 0 - мёртвая клетка, 1 - Инь, 2 - Ян. Далее берётся этот массив, передаётся
этому же методу на вход и так до бесконечности. Но эта реализация подходит только для консоли, а задача стоит сделать в GUI.
Прошу поделиться идеями, как лучше всего представить данный массив в программе средствами Java Swing, AWT. При этом за место 0 - выводиться картинка с чёрным фоном, 1 - соответственно символ Инь, 2 - Ян. Задача усложняется тем, что состояния клеток меняются на каждом шаге, в зависимости от того, сколько и какие соседи у каждой конкретной клетки. И эти шаги так же должны отображаться в реальном времени с определённой задаваемой задержкой.
Как-то так. Заранее спасибо! Любой готовый код могу выложить по необходимости.
Решение задачи: «Вывод в окне программы изображений в соответствии с содержимым двумерного массива»
textual
Листинг программы
- package arraytotable;
- import javax.swing.table.AbstractTableModel;
- /**
- *
- * @author Nicholas White
- */
- public class CustomTableModel extends AbstractTableModel
- {
- int[][] aRandomArray =
- {{0, 0, 0, 1, 0, 1, 0, 2, 0, 0},
- {2, 0, 2, 0, 0, 0, 0, 1, 0, 0},
- {0, 0, 2, 2, 0, 0, 1, 0, 0, 0},
- {0, 0, 1, 0, 2, 0, 0, 1, 2, 0},
- {0, 2, 0, 0, 0, 0, 1, 1, 2, 0},
- {0, 0, 1, 0, 2, 0, 0, 2, 2, 0},
- {0, 0, 1, 0, 2, 2, 0, 0, 1, 0},
- {0, 0, 2, 0, 0, 0, 2, 0, 0, 0},
- {0, 0, 1, 1, 1, 0, 0, 0, 0, 2},
- {0, 0, 2, 2, 0, 0, 0, 0, 1, 0}};
- @Override
- public int getRowCount() {
- return 10;
- }
- @Override
- public int getColumnCount() {
- return 10;
- }
- @Override
- public Object getValueAt(int rowIndex, int columnIndex) {
- return aRandomArray[rowIndex][columnIndex];
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д