Реализация игры «Инь-Ян» - Java

Узнай цену своей работы

Формулировка задачи:

Доброго времени суток. Я делаю курсовой проект на Java и столкнулся с проблемой, но обо всём по порядку. Краткая постановка задачи. Игра «Инь-Ян» представляет собой клеточный автомат, состояния ячеек и правила переключения которого приближённо отражают закон единства и борьбы противоположностей. Ячейки автомата имеют три состояния: пустая ячейка (мёртвая), живая ячейка Инь и живая ячейка Ян. Соседние по-Муру ячейки (у каждой ячейки их 8), если они живые, называются соседями. Правила переключения определены таким образом, чтобы популяции ячеек Инь и Ян противоборствовали, но не могли развиваться друг без друга. Вот эти правила: 1. Рождение. У пустой ячейки ровно три соседа (живых), и они не все одинаковые – в ней рождается Ян, если: среди соседей только один Ян, или Инь, среди соседей только один Инь. 2. Гибель от перенаселения (одиночества). Живая ячейка, имеющая больше четырех (меньше двух) соседей, умирает от перенаселения (от одиночества); 3. Гибель в неравном противостоянии. У живой ячейки ровно четыре соседа, из которых большинство – противоположного типа – ячейка умирает. Начальные конфигурации формируются случайно (с помощью генератора случайных чисел для заданных вероятностей Инь и Ян). Эволюция, порождаемая заданной начальной конфигурацией состояний клеток, может быть изучена в общем случае только путём её пошагового воспроизведения. Однако для каждого значения вероятности генерации можно отследить статистику результата через n шагов и говорить в каком случае будет больше вероятность вырождения автомата за заданное количество шагов. Готов уже весь код и текст работы, но есть загвоздка - где-то в программе закралась ошибка и в итоге вся популяция инь-ян погибает на третьем ходу, симуляции жизни не происходит. У меня, честно сказать, уже глаза замылились на эту работу, сколько не анализирую код, а проблему найти не могу. Помогите отследить ошибку. В архиве исходники классов проекта.

Решение задачи: «Реализация игры «Инь-Ян»»

textual
Листинг программы
  1. if ((countingReps(neighbors, 1) + countingReps(neighbors, 2)) > 4 ||
  2.                         (countingReps(neighbors, 1) + countingReps(neighbors, 2)) < 2) {
  3.  
  4.                     oneStepOfGameArray[i][j] = 0;
  5.  
  6.                 } else if ((countingReps(neighbors, 0) == 4)
  7.                         && (countingReps(neighbors, 2) != 2))
  8.  
  9.                     oneStepOfGameArray[i][j] = 0;
  10.  
  11.                 else if ((countingReps(neighbors, 1) + countingReps(neighbors,
  12.                         2)) == 3 && oneStepOfGameArray[i][j] == 0) {
  13.  
  14.                     if (countingReps(neighbors, 1) == 1)
  15.                         oneStepOfGameArray[i][j] = 1;
  16.                     else
  17.                         oneStepOfGameArray[i][j] = 2;
  18.                 }

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


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

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

15   голосов , оценка 3.933 из 5

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

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

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