Merge branch 'dev' of dev.ariona.fr:gator/explorata into dev

This commit is contained in:
Ali Gator 2022-12-27 13:04:38 +01:00
commit 2b042f89be
2 changed files with 20 additions and 3 deletions

View File

@ -40,7 +40,7 @@ export function picToBoard(pixels, board) {
const flat = pixels.reduce((acc, pixel, index) => { const flat = pixels.reduce((acc, pixel, index) => {
const i = index * 4; const i = index * 4;
const count = pixels[i] + pixels[i + 1] + pixels[i + 2]; const count = pixels[i] + pixels[i + 1] + pixels[i + 2];
const value = count >= 255 ? 1 : 0; const value = (count >= 255) & 1;
acc[index] = value; acc[index] = value;
return acc; return acc;
}, []); }, []);
@ -58,8 +58,7 @@ export function boardToPic(board) {
const img = new ImageData(board.width, board.height); const img = new ImageData(board.width, board.height);
const colors = [hexToRGB(live), hexToRGB(dead)]; const colors = [hexToRGB(live), hexToRGB(dead)];
board.grid.flat().reduce((acc, cell, index) => { board.grid.flat().reduce((acc, cell, index) => {
// TODO : bitshift operation instead of ternary const color = colors[(cell === 1) & 1];
const color = cell === 1 ? colors[0] : colors[1];
const i = index * 4; const i = index * 4;
acc[i] = color[0]; acc[i] = color[0];
acc[i + 1] = color[1]; acc[i + 1] = color[1];

18
tests/core.test.js Normal file
View File

@ -0,0 +1,18 @@
import { describe, expect, test } from "vitest";
import { evolve1d, create1dStateOneCell } from "src/modules/core.js";
import { presetRuleset } from "src/modules/preset.js";
describe("Core", () => {
test("evolve1d, rules73, 9 cells", () => {
const state = [0, 0, 0, 0, 1, 0, 0, 0, 0];
const got = evolve1d(state, presetRuleset[0].rules);
const valid = [1, 1, 1, 0, 0, 0, 1, 1, 1];
expect(got.length).toBe(state.length);
expect(got).toEqual(valid);
}),
test("create1dStateOneCell, 49 cells", () => {
const got = create1dStateOneCell(49);
expect(got.length).toBe(49);
expect(got[24]).toBe(1);
});
});