#pragma once #include #include namespace matrix { typedef std::vector Row; typedef std::vector Matrix; struct each_cell { size_t x = ~0; size_t y = ~0; size_t width = 0; size_t height = 0; int cell = 0; each_cell(Matrix &mat); bool next(); }; struct each_row { Matrix &$mat; size_t x = ~0; size_t y = ~0; size_t width = 0; size_t height = 0; int cell = 0; bool row = false; each_row(Matrix &mat); bool next(); }; /* * Just a quick thing to reset a matrix to a value. */ inline void assign(Matrix &out, int new_value) { for(auto &row : out) { row.assign(row.size(), new_value); } } void dump(const std::string &msg, Matrix &map, int show_x=-1, int show_y=-1); }