🚀 imrpove algorithm

This commit is contained in:
platane
2020-10-31 17:23:19 +01:00
parent d81ecec836
commit b595e7de53
22 changed files with 707 additions and 451 deletions

View File

@@ -1,6 +1,7 @@
import ParkMiller from "park-miller";
import { Color, createEmptyGrid, setColor } from "../grid";
import { randomlyFillGrid } from "../randomlyFillGrid";
import { createFromAscii } from "./createFromAscii";
const colors = [1, 2, 3] as Color[];
@@ -18,106 +19,65 @@ setColor(corner, 4, 0, 1 as Color);
setColor(corner, 4, 4, 1 as Color);
setColor(corner, 0, 0, 1 as Color);
export const enclave = createEmptyGrid(7, 7);
setColor(enclave, 3, 4, 2 as Color);
setColor(enclave, 2, 3, 2 as Color);
setColor(enclave, 2, 4, 2 as Color);
setColor(enclave, 4, 4, 2 as Color);
setColor(enclave, 4, 3, 2 as Color);
setColor(enclave, 3, 3, 1 as Color);
setColor(enclave, 5, 5, 1 as Color);
export const enclaveN = createFromAscii(`
export const enclaveBorder = createEmptyGrid(7, 7);
setColor(enclaveBorder, 1, 0, 3 as Color);
setColor(enclaveBorder, 2, 1, 3 as Color);
setColor(enclaveBorder, 3, 0, 3 as Color);
setColor(enclaveBorder, 2, 0, 1 as Color);
#.#
#
export const enclaveM = createEmptyGrid(7, 7);
setColor(enclaveM, 1, 0, 3 as Color);
setColor(enclaveM, 2, 0, 3 as Color);
setColor(enclaveM, 3, 0, 3 as Color);
setColor(enclaveM, 1, 4, 3 as Color);
setColor(enclaveM, 3, 4, 3 as Color);
setColor(enclaveM, 4, 1, 3 as Color);
setColor(enclaveM, 4, 2, 3 as Color);
setColor(enclaveM, 4, 3, 3 as Color);
setColor(enclaveM, 0, 1, 3 as Color);
setColor(enclaveM, 0, 2, 3 as Color);
setColor(enclaveM, 0, 3, 3 as Color);
setColor(enclaveM, 2, 2, 1 as Color);
`);
export const enclaveBorder = createFromAscii(`
#.#
#
export const enclaveK = createEmptyGrid(7, 7);
setColor(enclaveK, 1, 1, 3 as Color);
setColor(enclaveK, 2, 1, 3 as Color);
setColor(enclaveK, 3, 1, 3 as Color);
setColor(enclaveK, 0, 1, 3 as Color);
setColor(enclaveK, 0, 2, 3 as Color);
setColor(enclaveK, 0, 3, 3 as Color);
setColor(enclaveK, 3, 1, 3 as Color);
setColor(enclaveK, 3, 2, 3 as Color);
setColor(enclaveK, 3, 3, 3 as Color);
setColor(enclaveK, 1, 4, 3 as Color);
setColor(enclaveK, 3, 4, 3 as Color);
setColor(enclaveK, 3, 5, 3 as Color);
setColor(enclaveK, 1, 5, 3 as Color);
setColor(enclaveK, 2, 2, 1 as Color);
`);
export const enclaveM = createFromAscii(`
export const enclaveU = createEmptyGrid(17, 9);
setColor(enclaveU, 1, 1, 3 as Color);
setColor(enclaveU, 2, 1, 3 as Color);
setColor(enclaveU, 3, 1, 3 as Color);
setColor(enclaveU, 0, 1, 3 as Color);
setColor(enclaveU, 0, 2, 3 as Color);
setColor(enclaveU, 0, 3, 3 as Color);
setColor(enclaveU, 3, 1, 3 as Color);
setColor(enclaveU, 3, 2, 3 as Color);
setColor(enclaveU, 3, 3, 3 as Color);
setColor(enclaveU, 1, 4, 3 as Color);
setColor(enclaveU, 3, 4, 3 as Color);
setColor(enclaveU, 3, 5, 3 as Color);
setColor(enclaveU, 1, 5, 3 as Color);
setColor(enclaveU, 2, 2, 1 as Color);
setColor(enclaveU, 1, 2, 1 as Color);
setColor(enclaveU, 2, 3, 1 as Color);
setColor(enclaveU, 1, 3, 1 as Color);
setColor(enclaveU, 2, 4, 1 as Color);
setColor(enclaveU, 16, 8, 1 as Color);
###
# #
# . #
# #
# #
`);
export const closed = createEmptyGrid(16, 16);
setColor(closed, 1 + 5, 1 + 5, 3 as Color);
setColor(closed, 2 + 5, 4 + 5, 3 as Color);
setColor(closed, 2 + 5, 1 + 5, 3 as Color);
setColor(closed, 0 + 5, 2 + 5, 3 as Color);
setColor(closed, 0 + 5, 3 + 5, 3 as Color);
setColor(closed, 1 + 5, 4 + 5, 3 as Color);
setColor(closed, 3 + 5, 1 + 5, 3 as Color);
setColor(closed, 3 + 5, 2 + 5, 3 as Color);
setColor(closed, 3 + 5, 3 + 5, 3 as Color);
setColor(closed, 1 + 5, 2 + 5, 3 as Color);
setColor(closed, 1 + 5, 3 + 5, 3 as Color);
setColor(closed, 2 + 5, 2 + 5, 1 as Color);
export const enclaveK = createFromAscii(`
export const closedU = createEmptyGrid(20, 20);
setColor(closedU, 1 + 10, 1 + 10, 3 as Color);
setColor(closedU, 2 + 10, 1 + 10, 3 as Color);
setColor(closedU, 3 + 10, 1 + 10, 3 as Color);
setColor(closedU, 0 + 10, 1 + 10, 3 as Color);
setColor(closedU, 0 + 10, 2 + 10, 3 as Color);
setColor(closedU, 0 + 10, 3 + 10, 3 as Color);
setColor(closedU, 3 + 10, 1 + 10, 3 as Color);
setColor(closedU, 3 + 10, 2 + 10, 3 as Color);
setColor(closedU, 3 + 10, 3 + 10, 3 as Color);
setColor(closedU, 1 + 10, 4 + 10, 3 as Color);
setColor(closedU, 3 + 10, 4 + 10, 3 as Color);
setColor(closedU, 3 + 10, 5 + 10, 3 as Color);
setColor(closedU, 1 + 10, 5 + 10, 3 as Color);
setColor(closedU, 2 + 10, 5 + 10, 3 as Color);
setColor(closedU, 2 + 10, 2 + 10, 1 as Color);
setColor(closedU, 1 + 10, 2 + 10, 1 as Color);
setColor(closedU, 2 + 10, 3 + 10, 1 as Color);
setColor(closedU, 1 + 10, 3 + 10, 1 as Color);
setColor(closedU, 2 + 10, 4 + 10, 1 as Color);
####
# .#
# #
# #
# #
`);
export const enclaveU = createFromAscii(`
####
#..#
#..#
#.#
# # .
`);
export const closedP = createFromAscii(`
###
##.#
## #
##
`);
export const closedU = createFromAscii(`
####
#..#
#..#
#.#
###
`);
export const closedO = createFromAscii(`
#######
# #
# . #
# #
#######
`);
const createRandom = (width: number, height: number, emptyP: number) => {
const grid = createEmptyGrid(width, height);