Stumbling about

This commit is contained in:
Johan Maasing 2025-01-26 20:07:57 +01:00
parent bc6a3cd1c1
commit a2f1e11af8
3 changed files with 41 additions and 33 deletions

View file

@ -2,16 +2,16 @@
#include <cstring>
#include "simulation.h"
void printGrid(simulation::SimulationGrid* grid)
void printGrid(simulation::SimulationGrid grid)
{
std::cout << std::string(grid->x_max+2, '_') << std::endl;
for (unsigned char y = grid->y_max; y > 0; y--)
std::cout << std::string(grid.x_max+2, '_') << std::endl;
for (unsigned char y = grid.y_max; y > 0; y--)
{
std::cout << "|";
for (unsigned char x = 0; x < grid->x_max; x++)
for (unsigned char x = 0; x < grid.x_max; x++)
{
unsigned int offset = simulation::getCellOffset(x, y-1, 0, grid);
unsigned int material = grid->cells[offset];
unsigned int material = grid.out[offset];
switch (material)
{
case simulation::VACUUM:
@ -26,11 +26,15 @@ void printGrid(simulation::SimulationGrid* grid)
}
std::cout << "|" << std::endl;
}
std::cout << std::string(grid->x_max+2, '_') << std::endl;
std::cout << std::string(grid.x_max+2, '_') << std::endl;
}
int main()
{
void initGrid(simulation::SimulationGrid grid) {
unsigned int offset = simulation::getCellOffset(0,1,0, grid);
grid.in[offset] = simulation::WATER;
}
int main() {
unsigned char xMax = 50;
unsigned char yMax = 20;
unsigned char zMax = 1;
@ -38,16 +42,20 @@ int main()
auto inCells = static_cast<unsigned int*>(std::malloc(bufferSizeInBytes));
std::memset(inCells, 0, bufferSizeInBytes);
auto outCells = static_cast<unsigned int*>(std::malloc(bufferSizeInBytes));
simulation::SimulationGrid inGrid = {
inCells, xMax, yMax, zMax
};
simulation::SimulationGrid outGrid = {
outCells, xMax, yMax, zMax
simulation::SimulationGrid grid = {
inCells,
outCells,
xMax,
yMax,
zMax
};
step(0, &inGrid, &outGrid);
initGrid(grid);
step(0, grid);
printGrid(&outGrid);
for (int n=0; n< 2; n++) {
printGrid(grid);
}
std::free(inCells);
std::free(outCells);
return 0;