Я использую фрагмент кода, взятый с веб-сайта The Nature of Code — https://natureofcode.com/book/chapter-7-cellular-automata/ — часть, которую я использовал, взята из примера 7.1. Я пытаюсь создать одномерный клеточный автомат с помощью Processing 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);
}
}
Предполагается, что программа печатает каждое поколение одномерного CA поверх следующего.
fill(0);
иfill(2555);
, не нужны. - person hlg   schedule 23.01.2019