Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
구현을 위해 이벤트 전달 방식을 바꿨습니다.
이제 모든 변경이
tile-updated
대신 각각의 이벤트를 가집니다.flag-set
: 깃발 set/unset 이벤트single-tile-opened
: 타일 하나 열림. mine일 수 있음.tiles-opened
: 빈 칸을 열어 연쇄적으로 타일이 열림.tiles-opened 이벤트는 현재 tiles 와 똑같은 형태이지만, 추후 사용형태가 변경될 것을 고려하여 새로 만들었습니다.
위 이벤트는 모두 BoardEventHandler에서 발행하며, CursorEventHandler에서 받아 커서를 골라 multicast로 다시 보냅니다.
tiles-opened
는view_includes
의 범위 쿼리가 필요하여view_includes_range
쿼리를 추가했습니다.타일 연쇄 열기 알고리즘은 BFS로, 포인팅 지점부터 뻗어나가며 필요하다면 새로운 섹션을 추가합니다. 알고리즘 중간에 각 꼭짓점 위치를 계산하여 반환할 사각형 범위를 구합니다. 타일 열기가 모두 끝난 후, 구한 범위의 타일들을 fetch해와 같이 반환합니다.