CodingTrain / CodingTrain/Wave-Function-Collapse

Encoding tiles symmetry and rotation

Abierto
#14 0 comentarios 0 reacciones 0 asignados Ver en GitHub
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 :
![4](https://user-images.githubusercontent.com/6383717/165170799-f486d23f-3919-4be4-bdf1-70ce30269eaf.png)

would have edges 4S, 2, 4S, 0

And this one :
![5](https://user-images.githubusercontent.com/6383717/165170893-5cb8e058-7ba7-48ba-b9ca-49da56452140.png)

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

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.