🔨 fix algorithm priority
This commit is contained in:
@@ -27,7 +27,7 @@ export const clearResidualColoredLayer = (
|
|||||||
const tunnels = getTunnellablePoints(grid, outside, snakeN, color);
|
const tunnels = getTunnellablePoints(grid, outside, snakeN, color);
|
||||||
|
|
||||||
// sort
|
// sort
|
||||||
tunnels.sort((a, b) => a.priority - b.priority);
|
tunnels.sort((a, b) => b.priority - a.priority);
|
||||||
|
|
||||||
const chain: Snake[] = [snake0];
|
const chain: Snake[] = [snake0];
|
||||||
|
|
||||||
@@ -63,7 +63,7 @@ export const clearResidualColoredLayer = (
|
|||||||
}
|
}
|
||||||
|
|
||||||
// re-sort
|
// re-sort
|
||||||
tunnels.sort((a, b) => a.priority - b.priority);
|
tunnels.sort((a, b) => b.priority - a.priority);
|
||||||
}
|
}
|
||||||
|
|
||||||
chain.pop();
|
chain.pop();
|
||||||
@@ -79,7 +79,7 @@ const getNextTunnel = (ts: T[], snake: Snake) => {
|
|||||||
|
|
||||||
const priority = ts[0].priority;
|
const priority = ts[0].priority;
|
||||||
|
|
||||||
for (let i = 0; ts[i] && ts[i].priority <= priority; i++) {
|
for (let i = 0; ts[i] && ts[i].priority === priority; i++) {
|
||||||
const t = ts[i].tunnel;
|
const t = ts[i].tunnel;
|
||||||
|
|
||||||
const d = distanceSq(t[0].x, t[0].y, x, y);
|
const d = distanceSq(t[0].x, t[0].y, x, y);
|
||||||
|
|||||||
@@ -78,6 +78,12 @@ export const closedO = createFromAscii(`
|
|||||||
# #
|
# #
|
||||||
#######
|
#######
|
||||||
`);
|
`);
|
||||||
|
export const tunnels = createFromAscii(`
|
||||||
|
|
||||||
|
### ### ###
|
||||||
|
#.# #.# #.#
|
||||||
|
#.# ### # #
|
||||||
|
`);
|
||||||
|
|
||||||
const createRandom = (width: number, height: number, emptyP: number) => {
|
const createRandom = (width: number, height: number, emptyP: number) => {
|
||||||
const grid = createEmptyGrid(width, height);
|
const grid = createEmptyGrid(width, height);
|
||||||
|
|||||||
Reference in New Issue
Block a user