Simple way to remove duplicated tiles to improve performance
Dieses Issue hat noch niemand übernommen.
- #25 von @loic-brtd — ohne Merge geschlossen
Bewertung
- Schwierigkeit
- 3/5
- Geschätzter Aufwand
- 1-2 Tage
- Anfängerfreundlichkeit
- 35/100
- Issue-Typ
- Refactoring
- Klarheit
- Größtenteils klar
- Aktivitätsstatus
- Veraltet
- Tech-Stack
- javascript
- Bereich
- performance
Rechercherichtung
Es werden keine Dateien oder Tests genannt. Beginne damit, die Logik für die Tile-Erzeugung und -Rotation zu finden, und vergleiche anschließend die aktuellen Tile-Anzahlen und die Erzeugungszeit mit dem vorgeschlagenen Deduplizierungsschritt; fertig ist die Aufgabe, wenn doppelte rotierte Tiles entfernt werden, ohne den resultierenden Satz eindeutiger Tiles zu verändern.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
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 🚀
- Vorherrschende Sprache
- JavaScript
- Sterne
- 219
- Forks
- 64
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Entwicklungsumgebung
Dieses Projekt bietet weder Dev-Container noch Dockerfile noch Beitragsleitfaden – die Einrichtung liegt bei Ihnen. Beginnen Sie mit der README; die allgemeinen Schritte stehen in unserem Leitfaden für den ersten Beitrag.
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus CodingTrain/Wave-Function-Collapse
-
Optimize grid updatesOffen
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 20/100
CodingTrain/Wave-Function-Collapse#41 · 2 Reaktionen ·
-
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 35/100
CodingTrain/Wave-Function-Collapse#38 · 2 Kommentare ·
-
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 25/100
CodingTrain/Wave-Function-Collapse#37 · 1 Kommentar ·
-
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 42/100
CodingTrain/Wave-Function-Collapse#35 · 1 Kommentar ·
-
Do NOT make a new gridOffen
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 30/100
Alle Issues in CodingTrain/Wave-Function-Collapse
Ähnliche Issues
-
bug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
capricorn86/happy-dom#2485 ·
Maintainer antworten meist innerhalb von 2 Tagen
-
Schwierigkeit 2/5 Unter einer Stunde Anfängerfreundlichkeit 74/100
siyuan-note/siyuan#20429 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 70/100
Maintainer antworten meist innerhalb von 2 Tagen
-
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 72/100
yjh051108/dsh-routing-suite#216 ·
-
[Bug] Completion info popup (.cm-completionInfo) ignores the configured editor fontEvtl. vergeben Ein verknüpfter Pull Request ist offen oder bereits gemergt. Offenbug user-priority/P2
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 62/100
t8y2/dbx#11718 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 1 Tag