Jeg er lidt på den her.
Efter at have indkoorporeret det nye system, virker den del af funktionen der skal sørge for at der ikke er nogen lukkede rum, ikke mere.
Jeg har prøvet forskellige ting for at finde fejlen, men det her går over min forstand.
Denne del virker:
void new_grid() {
srand(time(0));
int x;
int y;
int z;
int x_cache;
int y_cache;
int z_cache;
bool loop;
for (z = 0; z < size; z++) {
for (y = 0; y < size; y++) {
for (x = 0; x < size; x++) {
write(x,y,z,yz,rand_int(2));
write(x,y,z,xz,rand_int(2));
write(x,y,z,xy,rand_int(2));
}
}
}
Denne del virker ikke:
for (z = 0; z < size; z++) {
for (y = 0; y < size; y++) {
for (x = 0; x < size; x++) {
if (read(x,y,z,yz)+read(x,y,z,xz)+read(x,y,z,xy) == 3) {
x_cache = x;
y_cache = y;
z_cache = z;
if (x == 0) {x_cache = size-1;}
else {x_cache = x;}
if (y == 0) {y_cache = size-1;}
else {y_cache = y;}
if (z == 0) {z_cache = size-1;}
else {z_cache = z;}
if (read(x,y,z,yz)+read(x,y,z,xz)+read(x,y,z,xy) == 3) {
x = x_cache;
y = y_cache;
z = z_cache;
write(x,y,z,yz,rand_int(2));
write(x,y,z,xz,rand_int(2));
write(x,y,z,xy,rand_int(2));
x--;
}
}
}
}
}
Denne del virker måske/måske ikke, men den stopper ihvertfald ikke programmet:
for (x = 0; x < size; x++) {
for (y = 0; y < size; y++) {
for (z = 0; z < size && read(x,y,z,yz) == 1; z++) {
if (z == size - 1) {
write(x,y,rand_int(size),yz,0);
}
}
}
for (z = 0; z < size; z++) {
for (y = 0; y < size && read(x,y,z,yz) == 1; y++) {
if (y == size - 1) {
write(x,rand_int(size),z,yz,0);
}
}
}
}
for (y = 0; y < size; y++) {
for (x = 0; x < size; x++) {
for (z = 0; z < size && read(x,y,z,xz) == 1; z++) {
if (z == size - 1) {
write(x,y,rand_int(size),xz,0);
}
}
}
for (z = 0; z < size; z++) {
for (x = 0; x < size && read(x,y,z,xz) == 1; x++) {
if (x == size - 1) {
write(rand_int(size),y,z,xz,0);
}
}
}
}
for (z = 0; z < size; z++) {
for (y = 0; y < size; y++) {
for (x = 0; x < size && read(x,y,z,xy) == 1; x++) {
if (x == size - 1) {
write(rand_int(size),y,z,xy,0);
}
}
}
for (x = 0; x < size; x++) {
for (y = 0; y < size && read(x,y,z,xy) == 1; y++) {
if (y == size - 1) {
write(x,rand_int(size),z,xy,0);
}
}
}
}
}
Jeg håber virkelig at der er en der kan hjælpe...