Optimize grid updates
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 4/5
- Tempo estimado
- 3-5 dias
- Facilidade para iniciantes
- 20/100
- Tipo de issue
- Refatoração
- Clareza
- Razoavelmente clara
- Status de atividade
- Estagnada
- Stack de tecnologia
- javascript
- Domínio
- performance
Direção de pesquisa
Comece revisando o pull request #40, que contém a otimização proposta para a atualização da grade, e compare-o com o fluxo de atualização atual. Considera-se concluído quando as atualizações começam nas células modificadas, propagam-se para os vizinhos afetados até se estabilizarem e evitam reconsiderar células que não foram alteradas, para que instâncias maiores possam ser resolvidas com eficiência.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
Hey, thank you very much for all your videos, I'm having a blast watching them!
I made a Pull Request here to make grid updates more efficient. Instead of watching all cells one by one hoping that there might be some change, we can start from a modified cell (i.e. options are reduced for this cell), and update the neighbours. For each neighbour that has fewer options than before, we continue and check its neighbours etc.
We stop when no update is possible anymore, and the system is stable.
The idea comes from Constraint Programming, where constraint propagation is a thing that can be done this way. Here the constraints handle the compatibility between adjacent cells, and when a cell changes (its options are reduced), it triggers the consistency check of attached constraints.
The next step will be to collapse a new cell, and check its neighbours etc.
This allows to solve much larger instances, since it doesn't consider untouched cells. Here with 100x100 cells for instance:

- Linguagem predominante
- JavaScript
- Estrelas
- 219
- Forks
- 64
- Métricas de merge de PRs
- Nenhum PR com merge em 30d
Preparar o ambiente
Este projeto não oferece contêiner de desenvolvimento, Dockerfile nem guia de contribuição, então a configuração fica por sua conta: comece pelo README e veja nosso guia da primeira contribuição para os passos gerais.
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de CodingTrain/Wave-Function-Collapse
-
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 35/100
CodingTrain/Wave-Function-Collapse#38 · 2 comentários ·
-
Dificuldade 5/5 Mais de uma semana Facilidade para iniciantes 25/100
CodingTrain/Wave-Function-Collapse#37 · 1 comentário ·
-
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 42/100
CodingTrain/Wave-Function-Collapse#35 · 1 comentário ·
-
Do NOT make a new gridAberta
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 30/100
-
Preload more dataAberta
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 35/100
CodingTrain/Wave-Function-Collapse#26 · 1 comentário ·
Todas as issues de CodingTrain/Wave-Function-Collapse
Issues semelhantes
-
[Bug]: [A11y] Missing accessible name on icon-only standalone links (WCAG 2.1 SC 2.4.4, 4.1.2)Abertabug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 72/100
jaegertracing/jaeger-ui#4596 ·
Mantenedores costumam responder em até 1 dia
-
Add: CNC Region Calima [CO]Abertachannels:add check:passed
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 72/100
Mantenedores costumam responder em até 9 dias
-
module: core
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 77/100
bigbluebutton/bigbluebutton#26028 ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 91/100
twbs/bootstrap#43050 · 1 comentário ·
Mantenedores costumam responder em até 1 dia
-
status:untriaged
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 78/100
midnightntwrk/servicedesk#248 ·
Mantenedores costumam responder em até 1 dia