Simple way to remove duplicated tiles to improve performance
Personne n'a encore pris cette issue.
- #25 par @loic-brtd — fermée sans fusion
Évaluation
- Difficulté
- 3/5
- Temps estimé
- 1-2 jours
- Accessibilité débutants
- 35/100
- Type d'issue
- Refactorisation
- Clarté
- Plutôt claire
- Activité
- À l'abandon
- Stack technique
- javascript
- Domaine
- performance
Piste de recherche
Aucun fichier ni test n’est indiqué. Commencez par localiser la logique de génération et de rotation des tiles, puis comparez le nombre actuel de tiles et le temps de génération avec l’étape de déduplication proposée ; le travail est terminé lorsque les tiles pivotés en double sont supprimés sans modifier l’ensemble de tiles uniques obtenu.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
Hi 😃 We can write a function to get only the unique tiles in an array :
function removeDuplicatedTiles(tiles) {
const uniqueTilesMap = {};
for (const tile of tiles) {
const key = tile.edges.join(","); // ex: "ABB,BCB,BBA,AAA"
uniqueTilesMap[key] = tile;
}
return Object.values(uniqueTilesMap);
}
So we can apply rotations to all the tiles and then keep only the unique ones :
const initialTileCount = tiles.length;
for (let i = 0; i < initialTileCount; i++) {
for (let j = 1; j < 4; j++) {
tiles.push(tiles[i].rotate(j));
}
}
tiles = removeDuplicatedTiles(tiles);
In our case, we have 13 images. By rotating all of them, we get 52. And by removing the duplicates, we get down to 33.
On my PC, the generation time goes from 23s to 14s 🚀
- 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é 4/5 3-5 jours Accessibilité débutants 35/100
CodingTrain/Wave-Function-Collapse#38 · 2 commentaires ·
-
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
Toutes les issues de CodingTrain/Wave-Function-Collapse
Issues similaires
-
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 1/5 Moins d'une heure Accessibilité débutants 85/100
-
[quality] Nothing keeps docs/skills/manifest.md in sync with docs/skills/*.mdPeut-être pris @hivecommons-hive l’a pris aujourd’hui. Ouverteagent/quality hive/covered-by-pr hive/hosted-available-lke648397-260827-5n31 quality testing
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
Les mainteneurs répondent en général sous 1 jour
-
agent:blocked agent:ready
Difficulté 2/5 1-3 heures Accessibilité débutants 74/100
turbot/guardrails-fn#46 · 2 commentaires ·
Les mainteneurs répondent en général sous 1 jour
-
needs verification
Difficulté 2/5 1-3 heures Accessibilité débutants 65/100
Les mainteneurs répondent en général sous 6 jours