내 경험임. 나는 프로그래밍을 초1 때 입문하고 중1 때 쯤인가 처음으로 테트리스 만들어 봤는데 저런 버그 있었음. 원인은 아직 내려놓지 않은 움직이는 블록 정보를 따로 보관 안하고 그냥 맵에 있는 블록 조작하도록 짜서 이미 내려놓은 블록과 움직이는 블록이 구분되지 않아서 생긴 문제임. 2차원 배열에 들어있는 상태 값으로 체크하면 임시방편으로 해결은 되겠지만 그보다는 게임 자체를 설계할 때 맵에는 이미 내려놓은 블록만 저장하고 움직이는 블록은 맵에 반영하지 않고 그냥 위치 정보와 상태 정보만 가지고 있다가 화면에 그려줄 때만 맵의 정보 + 움직이는 블록 합쳐서 보여주고 내려놓을 때만 맵에 반영하는 구조로 짜야 됨.
내 경험임. 나는 프로그래밍을 초1 때 입문하고 중1 때 쯤인가 처음으로 테트리스 만들어 봤는데 저런 버그 있었음. 원인은 아직 내려놓지 않은 움직이는 블록 정보를 따로 보관 안하고 그냥 맵에 있는 블록 조작하도록 짜서 이미 내려놓은 블록과 움직이는 블록이 구분되지 않아서 생긴 문제임. 2차원 배열에 들어있는 상태 값으로 체크하면 임시방편으로 해결은 되겠지만 그보다는 게임 자체를 설계할 때 맵에는 이미 내려놓은 블록만 저장하고 움직이는 블록은 맵에 반영하지 않고 그냥 위치 정보와 상태 정보만 가지고 있다가 화면에 그려줄 때만 맵의 정보 + 움직이는 블록 합쳐서 보여주고 내려놓을 때만 맵에 반영하는 구조로 짜야 됨.