CodingTrain / CodingTrain/Wave-Function-Collapse

Encoding tiles symmetry and rotation

Aberta
#14 0 comentários 0 reações 0 responsáveis Ver no GitHub
Linguagem predominante
JavaScript
Estrelas
218
Forks
64
Métricas de merge de PRs
Nenhum PR com merge em 30d

Descrição

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.

Guia de contribuição

Nenhum guia de contribuição indexado para este repositório

Direção de pesquisa

Comece lendo a implementação base e rastreando onde os dados do padrão de peça são rotacionados. Codifique as quatro orientações S, L, F e R e verifique se rotacionar uma peça atualiza cada orientação de forma consistente, sem adicionar reflexos. A tarefa estará concluída quando as combinações de bordas descritas permanecerem corretamente alinhadas após cada rotação.

Escrita pelo modelo de indexação a partir do texto da issue.

Avaliação

Stack de tecnologia
javascript
Domínio
game-dev
Tipo de issue
Funcionalidade
Dificuldade
4/5
Tempo estimado
3-5 dias
Status de atividade
Estagnada
Clareza
Razoavelmente clara
Facilidade para iniciantes
35/100

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.