158 lines
2.0 KiB
JavaScript
158 lines
2.0 KiB
JavaScript
const block = [
|
|
[0, 0],
|
|
[0, 1],
|
|
[1, 0],
|
|
[1, 1],
|
|
];
|
|
|
|
const blinker = [
|
|
[0, 0],
|
|
[0, 1],
|
|
[0, 2],
|
|
];
|
|
|
|
const toad = [
|
|
[0, 1],
|
|
[0, 2],
|
|
[0, 3],
|
|
[1, 0],
|
|
[1, 1],
|
|
[1, 2],
|
|
];
|
|
|
|
const beacon = [
|
|
[0, 0],
|
|
[0, 1],
|
|
[1, 0],
|
|
[1, 1],
|
|
[2, 2],
|
|
[2, 3],
|
|
[3, 2],
|
|
[3, 3],
|
|
];
|
|
|
|
const glider = [
|
|
[0, 1],
|
|
[1, 2],
|
|
[2, 0],
|
|
[2, 1],
|
|
[2, 2],
|
|
];
|
|
|
|
const lightweightSpaceship = [
|
|
[0, 1],
|
|
[0, 2],
|
|
[0, 3],
|
|
[0, 4],
|
|
[1, 0],
|
|
[1, 4],
|
|
[2, 4],
|
|
[3, 0],
|
|
[3, 3],
|
|
];
|
|
|
|
const pulsar = [
|
|
[0, 2],
|
|
[0, 3],
|
|
[0, 4],
|
|
[0, 8],
|
|
[0, 9],
|
|
[0, 10],
|
|
[2, 0],
|
|
[2, 5],
|
|
[2, 7],
|
|
[2, 12],
|
|
[3, 0],
|
|
[3, 5],
|
|
[3, 7],
|
|
[3, 12],
|
|
[4, 0],
|
|
[4, 5],
|
|
[4, 7],
|
|
[4, 12],
|
|
[5, 2],
|
|
[5, 3],
|
|
[5, 4],
|
|
[5, 8],
|
|
[5, 9],
|
|
[5, 10],
|
|
[7, 2],
|
|
[7, 3],
|
|
[7, 4],
|
|
[7, 8],
|
|
[7, 9],
|
|
[7, 10],
|
|
[8, 0],
|
|
[8, 5],
|
|
[8, 7],
|
|
[8, 12],
|
|
[9, 0],
|
|
[9, 5],
|
|
[9, 7],
|
|
[9, 12],
|
|
[10, 0],
|
|
[10, 5],
|
|
[10, 7],
|
|
[10, 12],
|
|
[12, 2],
|
|
[12, 3],
|
|
[12, 4],
|
|
[12, 8],
|
|
[12, 9],
|
|
[12, 10],
|
|
];
|
|
|
|
const gosperGliderGun = [
|
|
[0, 24],
|
|
[1, 22],
|
|
[1, 24],
|
|
[2, 12],
|
|
[2, 13],
|
|
[2, 20],
|
|
[2, 21],
|
|
[2, 34],
|
|
[2, 35],
|
|
[3, 11],
|
|
[3, 15],
|
|
[3, 20],
|
|
[3, 21],
|
|
[3, 34],
|
|
[3, 35],
|
|
[4, 0],
|
|
[4, 1],
|
|
[4, 10],
|
|
[4, 16],
|
|
[4, 20],
|
|
[4, 21],
|
|
[5, 0],
|
|
[5, 1],
|
|
[5, 10],
|
|
[5, 14],
|
|
[5, 16],
|
|
[5, 17],
|
|
[5, 22],
|
|
[5, 24],
|
|
[6, 10],
|
|
[6, 16],
|
|
[6, 24],
|
|
[7, 11],
|
|
[7, 15],
|
|
[8, 12],
|
|
[8, 13],
|
|
];
|
|
|
|
export const PATTERNS = [
|
|
{ key: "block", label: "Block (still life)", cells: block },
|
|
{ key: "blinker", label: "Blinker (oscillator)", cells: blinker },
|
|
{ key: "toad", label: "Toad (oscillator)", cells: toad },
|
|
{ key: "beacon", label: "Beacon (oscillator)", cells: beacon },
|
|
{ key: "glider", label: "Glider", cells: glider },
|
|
{ key: "lwss", label: "Lightweight spaceship", cells: lightweightSpaceship },
|
|
{ key: "pulsar", label: "Pulsar", cells: pulsar },
|
|
{ key: "gosper", label: "Gosper glider gun", cells: gosperGliderGun },
|
|
];
|
|
|
|
export function getPatternByKey(key) {
|
|
return PATTERNS.find((pattern) => pattern.key === key) ?? null;
|
|
}
|