Вывод в окне программы изображений в соответствии с содержимым двумерного массива - 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];
    }
    
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 4 из 5
Похожие ответы