hwi-middle/CppTetris

간헐적으로 블럭이 나타나지 않음

Closed this issue · 5 comments

image
이 경우 소프트 드롭은 무한정 계속할 수 있으나 하드 드롭시 프로그램이 멈추다가 아래와 같은 오류 발생:

image
문제 발생 위치 상 동적할당 문제인 것으로 판단됨.

현재까지 재현된 case들은 공통적으로 아래의 사항을 모두 만족했음.

* 실행 후 첫 게임이었음
* 첫 블록을 좌측 혹은 우측 끝으로 이동 후 하드드롭 했음

위 사항이 버그와 실질적으로 상관관계가 있는지 더 확인이 필요함.

+) 두 조건을 모두 만족하지 않았음에도 이슈가 발생한 case 발견, 위 조건은 고려하지 않고 디버깅 진행 요함

image
바닥과 충돌을 인식하지 못해 무한루프에 빠지고 X 좌표가 무한히 증가되는 것을 확인하였음.

CheckCollideWithFloor 함수는 제대로 동작함. 어디선가 X좌표 값이 꼬이고 있음.

delete한 currentTetromino는 멤버변수인데 새로이 선언하는 currentTetromino는 지역변수라서 생기는 문제인 것으로 생각됨. 다만 왜 '간헐적으로' crash가 나는지는 설명되지 않음

일단 문제되는 부분 수정완료