Я думаю, что это может быть вашей проблемой.
if (n % 2 == 0) {
if (j == n / 2) {
StdDraw.setPenColor(Color.orange);
StdDraw.setPenRadius(0.006);
StdDraw.circle(circle_x + radius, circle_y, radius);
} else if ( (i == n / 2 ) ){ <---- HERE MIGHT BE YOUR PROBLEM
StdDraw.setPenColor(Color.red);
StdDraw.setPenRadius(0.006);
StdDraw.circle(circle_x, circle_y + radius, radius);
System.out.println(i + "=i");
}
В одном случае i и j имеют одно и то же значение. В вашем случае это 4. Если i и j оба равны 4, код всегда будет go в первом if (j == n/2)
и не будет выполнять else if...
Так что в основном красный кружок, который вы просили, не будет нарисован.
Кстати: проверка n%2==0
практически бесполезна, поскольку вы не меняете значение n (оно всегда равно 8). Таким образом, ваш последний код никогда не будет выполнен:
} else if (n % 2 != 0) {
if (j == n / 2 + 1) {
StdDraw.setPenColor(Color.orange);
StdDraw.setPenRadius(0.006);
StdDraw.circle(circle_x, circle_y, radius);
} else if (i == n / 2 + 1) {
StdDraw.setPenColor(Color.orange);
StdDraw.setPenRadius(0.006);
StdDraw.circle(circle_x, circle_y, radius);
}
}
Хотя нет никакой гарантии, но на основании вашего кода это может быть причиной.