CodingTrain / CodingTrain/Wave-Function-Collapse
Encoding tiles symmetry and rotation
- Lenguaje dominante
- JavaScript
- Estrellas
- 218
- Forks
- 64
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Descripción
The base implementation notes that you can "Augment pattern data with rotations and reflections."
I don't think you need reflections for the circuit problem but you might run into it with more complex setup.
Let's assume you don't need reflections.
For rotations you need to have 4 letters that indicate the orientation of the piece.
For this issue let's call them :
- S -> straight
- L -> rotated 90° to the left
- F -> "flipped" but really it's rotated 180°
- R -> rotated 90° to the right
So this tile :

would have edges 4S, 2, 4S, 0
And this one :

would have : 4S, 1, 1, 4R
Now the complicated bit is that you have to account for that whenever you are rotating a piece.
For a Left (90°) rotation :
- every S becomes L
- every L becomes F
- every F becomes R
- every R becomes S
This also fixes the problem of having 5.png left edge connecting to a 4S the wrong way because it will never be a 4S AND a top facing edge at the same time.
Guía de contribución
No hay ninguna guía de contribución indexada para este repositorio
Línea de trabajo
Comienza leyendo la implementación base y siguiendo dónde se rotan los datos del patrón de teselas. Codifica las cuatro orientaciones S, L, F y R, y verifica que rotar una pieza actualice cada orientación de forma coherente sin añadir reflejos. Se considera terminado cuando las combinaciones de bordes descritas siguen correctamente alineadas después de cada rotación.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- javascript
- Área
- game-dev
- Tipo de issue
- Nueva funcionalidad
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Estado de actividad
- Estancado
- Claridad
- Bastante claro
- Aptitud para principiantes
- 35/100