add virus
This commit is contained in:
21
src/cells.c
21
src/cells.c
@@ -52,6 +52,9 @@ void drawGrid(int grid[CELL_AMOUNT][CELL_AMOUNT])
|
|||||||
case WATER:
|
case WATER:
|
||||||
DrawRectangle(CELL_SIZE_PIXELS*j, CELL_SIZE_PIXELS*i, CELL_SIZE_PIXELS, CELL_SIZE_PIXELS, BLUE);
|
DrawRectangle(CELL_SIZE_PIXELS*j, CELL_SIZE_PIXELS*i, CELL_SIZE_PIXELS, CELL_SIZE_PIXELS, BLUE);
|
||||||
break;
|
break;
|
||||||
|
case VIRUS:
|
||||||
|
DrawRectangle(CELL_SIZE_PIXELS*j, CELL_SIZE_PIXELS*i, CELL_SIZE_PIXELS, CELL_SIZE_PIXELS, VIOLET);
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -125,6 +128,24 @@ void updateGrid(int grid[CELL_AMOUNT][CELL_AMOUNT]) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case VIRUS: /* It should not be too powerful. */
|
||||||
|
if (i + 1 < CELL_AMOUNT && grid[i+1][j] != VOID && grid[i+1][j] != VIRUS) {
|
||||||
|
int propagate = rand() % 10 == 0 ? 1 : 0;
|
||||||
|
if (propagate) grid[i+1][j] = VIRUS;
|
||||||
|
}
|
||||||
|
else if (i - 1 >= 0 && grid[i-1][j] != VOID && grid[i-1][j] != VIRUS) {
|
||||||
|
int propagate = rand() % 10 == 0 ? 1 : 0;
|
||||||
|
if (propagate) grid[i-1][j] = VIRUS;
|
||||||
|
}
|
||||||
|
else if (j+1 < CELL_AMOUNT && grid[i][j+1] != VOID && grid[i][j+1] != VIRUS) {
|
||||||
|
int propagate = rand() % 10 == 0 ? 1 : 0;
|
||||||
|
if (propagate) grid[i][j+1] = VIRUS;
|
||||||
|
}
|
||||||
|
else if (j-1 >= 0 && grid[i][j-1] != VOID && grid[i][j-1] != VIRUS) {
|
||||||
|
int propagate = rand() % 10 == 0 ? 1 : 0;
|
||||||
|
if (propagate) grid[i][j-1] = VIRUS;
|
||||||
|
}
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -53,6 +53,7 @@ typedef enum CellType
|
|||||||
SAND,
|
SAND,
|
||||||
STONE,
|
STONE,
|
||||||
WATER,
|
WATER,
|
||||||
|
VIRUS,
|
||||||
CELL_TYPE_MAX
|
CELL_TYPE_MAX
|
||||||
} CellType;
|
} CellType;
|
||||||
|
|
||||||
|
|||||||
@@ -56,6 +56,7 @@ char* enumToString(CellType brush)
|
|||||||
case SAND: return "Sand";
|
case SAND: return "Sand";
|
||||||
case STONE: return "Stone";
|
case STONE: return "Stone";
|
||||||
case WATER: return "Water";
|
case WATER: return "Water";
|
||||||
|
case VIRUS: return "Virus";
|
||||||
default: return "Unknown";
|
default: return "Unknown";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user