일단제가짯던 테트리스 소스


요약해드리면




1  ▣ (낙하 완료되지않은 블록)


0 ' '(공백)

 

-2 ■ (블록 낙하 완료후)


-1 ▩ (테두리벽)


<왼쪽의 숫자는 대응대는 값>





이런식으로 배열에 숫자를 넣어서 해당되는숫자에 맞게 프린트 함수가 맵전체를 다시출력해주는 구조거든요



낙하 완료된 블록은 -1에서  -2로 넘어가고



블록이 ▣▣ 였다면


   

낙하완료후에 값이 -2로 바뀌면서  화면 재출력에 의해 ■ 로 바뀜




즉 벽이나 장애물은 각각 -1과 -2로 좌표 입력돼있고



회전 충돌여부는 원래 1이였던(낙하완료되지않은 블록) 블록이 회전후에 음수가 되는 블록이 하나라도 있으면 회전이안되는방식인데


(예를들어


 ▣ 

▣   상태라면   1이였던 블록 (배열상 좌표 [1],[2])의 블록이 회전후에는 좌표 [2][1] 의 벽과 만나게 되므로 회전이안되는 방식으로 짰거든요



이게 님이 말한 버그랑상관이 있는건가요? (블록 낙하 후처리문제)