Я использую фрагмент кода, взятый с сайта The Nature of Code - https://natureofcode.com/book/chapter-7-cellular-automata/ - часть, которую я использовал, была из примера 7.1. Я пытаюсь создать одномерный клеточный автомат, используя IDE для обработки, но постоянно получаю сообщение об ошибке, в котором отсутствуют скобки в определенных местах.
Ошибка:
-Секретный кронштейн карри "}", строка 32
-Синтаксическая ошибка в "}", удалите это, строка 40
Я прошел через это несколько раз, но я не вижу, как это неправильно. Хотя я пытался изменить их, как говорится, только чтобы получить больше ошибок. Я подумал, может быть, они просто не в том месте, но я также не понимаю, как это так. Насколько я могу судить, они кажутся правильными, но, может быть, я что-то упустил. Это мой первый раз, когда я использую Processing, и я давно не использовал Java. Так что, возможно, я ошибаюсь.
class CA {
int[] cells;
int[] ruleset;
int w = 10;
// The CA should keep track of how
// many generations.
int generation = 0;
CA() {
cells = new int[width/w];
ruleset = new int[]{0,1,0,1,1,0,1,0};
cells[cells.length/2] = 1;
}
// Function to compute the next generation
void generate() {
int[] nextgen = new int[cells.length];
for (int i = 1; i < cells.length-1; i++) {
int left = cells[i-1];
int me = cells[i];
int right = cells[i+1];
nextgen[i] = rules(left, me, right);
}
cells = nextgen;
// Increment the generation counter.
generation++;
}
int rules(int a, int b, int c) {
String s = "" + a + b + c;
int index = Integer.parseInt(s,2);
return ruleset[index];
}
for (int i = 0; i < cells.length; i++) {
if (cells[i] == 1) fill(0);
else fill(255);
// Set the y-location according to the generation.
rect(i*w, generation*w, w, w);
}
}
Предполагается, что программа печатает каждое поколение одномерной СА поверх следующего.