Appears I fixed the logic bug on the cells. The game seems to play out correctly now.

This commit is contained in:
2022-06-09 21:41:48 +00:00
parent 7b456510d5
commit 6e6acb6928
+10 -8
View File
@@ -86,8 +86,8 @@ int main(int argc, char** argv) {
GlobalList->cells = calloc(GetIndex(MAX_X, MAX_Y, MAX_X) + 1, sizeof(Cell*)); GlobalList->cells = calloc(GetIndex(MAX_X, MAX_Y, MAX_X) + 1, sizeof(Cell*));
GlobalList->capcity = GetIndex(MAX_X, MAX_Y, MAX_X); GlobalList->capcity = GetIndex(MAX_X, MAX_Y, MAX_X);
for(int x = 0; x < MAX_X; x++) { for(int x = 0; x <= MAX_X; x++) {
for(int y = 0; y < MAX_Y; y++) { for(int y = 0; y <= MAX_Y; y++) {
GlobalList->cells[GetIndex(x, y, MAX_X)] = CreateCell(x, y); GlobalList->cells[GetIndex(x, y, MAX_X)] = CreateCell(x, y);
} }
} }
@@ -104,6 +104,7 @@ int main(int argc, char** argv) {
Restart: Restart:
RestartSim = 0; RestartSim = 0;
Start = 0;
Seed(); Seed();
@@ -153,8 +154,6 @@ int main(int argc, char** argv) {
Cell* cell = GlobalList->cells[i]; Cell* cell = GlobalList->cells[i];
if (!cell) continue;
int count = 0; int count = 0;
Cell* topLeft = GlobalList->cells[GetIndex(cell->x - 1, cell->y - 1, MAX_X)]; Cell* topLeft = GlobalList->cells[GetIndex(cell->x - 1, cell->y - 1, MAX_X)];
@@ -172,13 +171,13 @@ int main(int argc, char** argv) {
Cell* right = GlobalList->cells[GetIndex(cell->x + 1, cell->y, MAX_X)]; Cell* right = GlobalList->cells[GetIndex(cell->x + 1, cell->y, MAX_X)];
if (right && right->Status == Alive) count++; if (right && right->Status == Alive) count++;
// Point BottomLeft; // Point BottomLeft;
Cell* bottomLeft = GlobalList->cells[GetIndex(cell->x + 1, cell->y - 1, MAX_X)]; Cell* bottomLeft = GlobalList->cells[GetIndex(cell->x - 1, cell->y + 1, MAX_X)];
if (bottomLeft && bottomLeft->Status == Alive) count++; if (bottomLeft && bottomLeft->Status == Alive) count++;
// Point Botttom; // Point Botttom;
Cell* bottom = GlobalList->cells[GetIndex(cell->x, cell->y + 1, MAX_X)]; Cell* bottom = GlobalList->cells[GetIndex(cell->x, cell->y + 1, MAX_X)];
if (bottom && bottom->Status == Alive) count++; if (bottom && bottom->Status == Alive) count++;
// Point BottomRight; // Point BottomRight;
Cell* bottomRight = GlobalList->cells[GetIndex(cell->x - 1, cell->y - 1, MAX_X)]; Cell* bottomRight = GlobalList->cells[GetIndex(cell->x + 1, cell->y + 1, MAX_X)];
if (bottomRight && bottomRight->Status == Alive) count++; if (bottomRight && bottomRight->Status == Alive) count++;
rect->x = cell->x * CELL_SIZE; rect->x = cell->x * CELL_SIZE;
@@ -207,8 +206,11 @@ int main(int argc, char** argv) {
} }
void Seed(){ void Seed(){
//for (int f = 0; f < GlobalList->capcity; f++) GlobalList->cells[f]->Status = Dead;
for(int i = 0; i < GlobalList->capcity; i++) { for(int i = 0; i < GlobalList->capcity; i++) {
if (GlobalList->cells[i] == NULL) continue; //if (GlobalList->cells[i] == NULL) continue;
if (i > 200) return;
if (GetNotSoRandomNumber(100) % 3 != 0) continue; if (GetNotSoRandomNumber(100) % 3 != 0) continue;
@@ -250,7 +252,7 @@ void HandleInput(void) {
break; break;
case SDL_MOUSEBUTTONDOWN: case SDL_MOUSEBUTTONDOWN:
if (event.button.button == SDL_BUTTON_RIGHT) exit(0); if (event.button.button == SDL_BUTTON_RIGHT) exit(0);
else Thing(event.button.x, event.button.y); //else Thing(event.button.x, event.button.y);
case SDL_KEYDOWN: case SDL_KEYDOWN:
if (event.key.keysym.sym == SDLK_s) Start = 1; if (event.key.keysym.sym == SDLK_s) Start = 1;
if (event.key.keysym.sym == SDLK_r) RestartSim = 1; if (event.key.keysym.sym == SDLK_r) RestartSim = 1;