Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

타일 연쇄 열림 구현 #79

Merged
merged 8 commits into from
Dec 22, 2024
Merged

Conversation

onee-only
Copy link
Member

구현을 위해 이벤트 전달 방식을 바꿨습니다.
이제 모든 변경이 tile-updated 대신 각각의 이벤트를 가집니다.

  • flag-set: 깃발 set/unset 이벤트
  • single-tile-opened: 타일 하나 열림. mine일 수 있음.
  • tiles-opened: 빈 칸을 열어 연쇄적으로 타일이 열림.

tiles-opened 이벤트는 현재 tiles 와 똑같은 형태이지만, 추후 사용형태가 변경될 것을 고려하여 새로 만들었습니다.

위 이벤트는 모두 BoardEventHandler에서 발행하며, CursorEventHandler에서 받아 커서를 골라 multicast로 다시 보냅니다.
tiles-openedview_includes의 범위 쿼리가 필요하여 view_includes_range 쿼리를 추가했습니다.

image

타일 연쇄 열기 알고리즘은 BFS로, 포인팅 지점부터 뻗어나가며 필요하다면 새로운 섹션을 추가합니다. 알고리즘 중간에 각 꼭짓점 위치를 계산하여 반환할 사각형 범위를 구합니다. 타일 열기가 모두 끝난 후, 구한 범위의 타일들을 fetch해와 같이 반환합니다.

@onee-only onee-only requested a review from byundojin December 19, 2024 08:58
@onee-only onee-only marked this pull request as draft December 19, 2024 09:27
@onee-only onee-only marked this pull request as ready for review December 19, 2024 14:29
@onee-only onee-only merged commit f1694b6 into develop Dec 22, 2024
1 check passed
@onee-only onee-only deleted the feature/cascading-tile-open branch December 22, 2024 05:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants