Speed Up by only calculating entropy of cells adjacent to collapsed cells (+ naive backtracking demo)
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Accessibilité débutants
- 35/100
- Type d'issue
- Fonctionnalité
- Clarté
- Plutôt claire
- Activité
- À l'abandon
- Stack technique
- javascript
- Domaine
- performance
Piste de recherche
Commencez par la fonction draw() et comparez son calcul de validOptions avec l’implémentation CodePen liée. Examinez la démo et la vidéo liées pour comprendre l’optimisation proposée des cellules adjacentes et le comportement du backtracking naïf ; le travail devrait être considéré comme terminé lorsqu’une amélioration confirmée pour les grandes grilles et un périmètre convenu pour le travail de backtracking auront été définis.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
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
- Langage dominant
- JavaScript
- Étoiles
- 219
- Forks
- 64
- Métriques de merge des PR
- Aucune PR mergée en 30 j
Préparer son environnement
Ce projet ne fournit ni conteneur de développement, ni Dockerfile, ni guide de contribution : l'installation est à votre charge. Commencez par son README, et consultez notre guide de la première contribution pour les étapes générales.
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de CodingTrain/Wave-Function-Collapse
-
Optimize grid updatesOuverte
Difficulté 4/5 3-5 jours Accessibilité débutants 20/100
CodingTrain/Wave-Function-Collapse#41 · 2 réactions ·
-
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 25/100
CodingTrain/Wave-Function-Collapse#37 · 1 commentaire ·
-
Difficulté 1/5 Moins d'une heure Accessibilité débutants 42/100
CodingTrain/Wave-Function-Collapse#35 · 1 commentaire ·
-
Do NOT make a new gridOuverte
Difficulté 4/5 3-5 jours Accessibilité débutants 30/100
-
Preload more dataOuverte
Difficulté 4/5 3-5 jours Accessibilité débutants 35/100
CodingTrain/Wave-Function-Collapse#26 · 1 commentaire ·
Toutes les issues de CodingTrain/Wave-Function-Collapse
Issues similaires
-
Difficulté 1/5 Moins d'une heure Accessibilité débutants 72/100
yjh051108/dsh-routing-suite#216 ·
-
bug user-priority/P2
Difficulté 2/5 1-3 heures Accessibilité débutants 62/100
t8y2/dbx#11718 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
Les mainteneurs répondent en général sous 4 jours
-
bug confirmed perf
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
videojs/video.js#9400 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
agent/scanner bug hive/hosted-available-lke648397-260827-5n31
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
Les mainteneurs répondent en général sous 1 jour