Вывод в окне программы изображений в соответствии с содержимым двумерного массива - 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
Листинг программы
  1. package arraytotable;
  2.  
  3. import javax.swing.table.AbstractTableModel;
  4.  
  5. /**
  6.  *
  7.  * @author Nicholas White
  8.  */
  9. public class CustomTableModel extends AbstractTableModel
  10. {
  11. int[][] aRandomArray =
  12.  
  13. {{0, 0, 0, 1, 0, 1, 0, 2, 0, 0},
  14. {2, 0, 2, 0, 0, 0, 0, 1, 0, 0},
  15. {0, 0, 2, 2, 0, 0, 1, 0, 0, 0},
  16. {0, 0, 1, 0, 2, 0, 0, 1, 2, 0},
  17. {0, 2, 0, 0, 0, 0, 1, 1, 2, 0},
  18. {0, 0, 1, 0, 2, 0, 0, 2, 2, 0},
  19. {0, 0, 1, 0, 2, 2, 0, 0, 1, 0},
  20. {0, 0, 2, 0, 0, 0, 2, 0, 0, 0},
  21. {0, 0, 1, 1, 1, 0, 0, 0, 0, 2},
  22. {0, 0, 2, 2, 0, 0, 0, 0, 1, 0}};
  23.  
  24.     @Override
  25.     public int getRowCount() {
  26.         return 10;
  27.     }
  28.  
  29.     @Override
  30.     public int getColumnCount() {
  31.         return 10;
  32.     }
  33.  
  34.     @Override
  35.     public Object getValueAt(int rowIndex, int columnIndex) {
  36.         return aRandomArray[rowIndex][columnIndex];
  37.     }
  38.    
  39. }

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


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

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

9   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы