Remove duplicate functions to set Grid Cells

This commit is contained in:
Unknown 2018-10-23 20:21:02 +02:00
parent e840a3e580
commit c8e2417ab8
2 changed files with 8 additions and 19 deletions

View file

@ -48,7 +48,7 @@ class Simulation {
for (var i = 0; i < (amount); i++) { for (var i = 0; i < (amount); i++) {
sanityCheck++; sanityCheck++;
math.Point cell = _getRandomPoint(rng, spreadFromCenter); math.Point cell = _getRandomPoint(rng, spreadFromCenter);
getCellState(cell.x, cell.y) map.get(cell.x, cell.y)
? i-- ? i--
: changeSet[map.toIndex(cell.x, cell.y)] = true; : changeSet[map.toIndex(cell.x, cell.y)] = true;
if (sanityCheck > 100 && sanityCheck > i * 3) break; if (sanityCheck > 100 && sanityCheck > i * 3) break;
@ -72,24 +72,8 @@ class Simulation {
return math.Point<int>(cx.toInt(), cy.toInt()); return math.Point<int>(cx.toInt(), cy.toInt());
} }
void setCellState(int x, int y, bool state) {
if (y >= map.height || x >= map.width) return null;
state ? map.set(x, y, true) : map.set(x, y, false);
}
bool getCellState(int x, int y) {
if (y >= map.height || x >= map.width) return null;
return map.get(x, y);
}
void toggleCellState(int x, int y) { void toggleCellState(int x, int y) {
if (y >= map.height || x >= map.width) return null; map.get(x, y) == null ? map.set(x, y, true) : map.set(x, y, false);
getCellState(x, y) == null
? setCellState(x, y, true)
: setCellState(x, y, false);
} }
Map<int, bool> update() { Map<int, bool> update() {
@ -126,7 +110,7 @@ class Simulation {
iy >= 0 && iy >= 0 &&
ix < map.width && ix < map.width &&
iy < map.height && iy < map.height &&
getCellState(ix, iy) == true && map.get(ix, iy) == true &&
!(x == ix && y == iy)) count++; !(x == ix && y == iy)) count++;
} }
} }

View file

@ -50,4 +50,9 @@ void main() {
expect(sut.loadSnapshot(), isNot(equals(snapshot))); expect(sut.loadSnapshot(), isNot(equals(snapshot)));
}); });
}, tags: "nobrowser"); }, tags: "nobrowser");
group("toggleCellState", () {
test("throws RangeError if outside the map bounds", () {
expect(() => sut.toggleCellState(10, 9), throwsRangeError);
}, tags: const ["nobrowser"]);
});
} }