Speed Up by only calculating entropy of cells adjacent to collapsed cells (+ naive backtracking demo)
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 35/100
- Tipo de issue
- Nueva funcionalidad
- Claridad
- Bastante claro
- Estado de actividad
- Estancado
- Stack tecnológico
- javascript
- Área
- performance
Línea de trabajo
Comienza en la función draw() y compara su cálculo de validOptions con la implementación de CodePen enlazada. Revisa la demo y el video enlazados para entender la optimización propuesta de celdas adyacentes y el comportamiento del backtracking ingenuo; el trabajo debería darse por terminado cuando incluya una mejora confirmada para cuadrículas grandes y un alcance acordado para el trabajo de backtracking.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
i was trying to draw a large grid (64x64) and it was slow, so i tweaked the draw() function to skip calculating validOptions for cells that weren't adjacent to any other collapsed cells
// if ZERO adjacent cells are collapsed, skip for now...
let at_least_one_collapsed = false;
for(neighbor of [
j > 0 ? grid[i + (j - 1) * DIM] : null, // up
i < DIM - 1 ? grid[i + 1 + j * DIM] : null, // right
j < DIM - 1 ? grid[i + (j + 1) * DIM] : null, // down
i > 0 ? grid[i - 1 + j * DIM] : null // left
]){
if(neighbor?.collapsed){
at_least_one_collapsed = true;
}
}
if(!at_least_one_collapsed){
nextGrid[index] = new Cell(tiles.length, index); //grid[index];
continue;
}
you can test it out on CodePen here: https://codepen.io/jakedowns/pen/PoRbeGQ
I also implemented naive backtracking, naive in the sense that it goes backwards step by step, instead of kind of propagating re-picking options in the local neighborhood of a cell with 0 options. that would be the more efficient way. gonna try to implement that next...
https://twitter.com/i/status/1547662617749045250
https://user-images.githubusercontent.com/1683122/179131109-84e6a5e7-0d79-4005-9073-d4cbae7e23e8.mp4
- Lenguaje dominante
- JavaScript
- Estrellas
- 219
- Forks
- 64
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Guía de contribución
No hay ninguna guía de contribución indexada para este repositorio
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de CodingTrain/Wave-Function-Collapse
-
Optimize grid updates Abierto
Dificultad 4/5 3-5 días Aptitud para principiantes 20/100
CodingTrain/Wave-Function-Collapse#41 · 2 reacciones ·
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 25/100
CodingTrain/Wave-Function-Collapse#37 · 1 comentario ·
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 42/100
CodingTrain/Wave-Function-Collapse#35 · 1 comentario ·
-
Do NOT make a new grid Abierto
Dificultad 4/5 3-5 días Aptitud para principiantes 30/100
-
Preload more data Abierto
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
CodingTrain/Wave-Function-Collapse#26 · 1 comentario ·
Todos los issues de CodingTrain/Wave-Function-Collapse
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
-
Theme loads third-party resources on every page (jsdelivr web font, cdnjs Font Awesome) – GDPR Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
docToolchain/docToolchain#1705 ·
-
Timezone select lists one option per character; duplicate "Failed" reason; shared tracker popover id Abiertobug
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
nightscout/nocturne#1414 ·
-
bug v2
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
modelcontextprotocol/inspector#2458 · 1 comentario ·
-
Mend: dependency security vulnerability status: needs triage 🕵️♀️
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
carbon-design-system/ibm-products#9907 ·