log

4 - Tlqkf 대체 뭐가 문제지?

blueShift 2022. 10. 9. 02:28

 

계속 배열 범위 외에 접근했다고 뜬다. 알 것 같은데, 해놓은 식을 보고 있자면, 근데 맞은데? 같아서 전혀 모르겠다. 중단점 겁내게 찍어서 확인하는 게 한두번도 아니고. 나 너무 힘들어.. 코딩을 할수록 내 자신이 너무 멍청하게만 느껴져..

 

 

 

 

 아무튼 두 가지 문제가 있다. 아니지. 지금 해결하려는 이 코드 블록에 버그가 발생하는 상황이다. 글로 풀어서 쓰다보면 뭔가 놓친 게 떠오르거나, 정리될 것 같아서 시도해본다. 단순 계산 오류이거나, 연산문 자체가 잘못됐거나. 혹은 이 방식 외에 그냥 쉽게 풀어가는 방법이 있을지도 모르겠는데.. 그게 모르겠어!!!!

 

 코드에선 '이 슬롯 안에 들어갈 수 있는지 검사'하는 함수, 맞다면 '해당 위치에 기록'하는 함수 부분으로 나뉘는데 얼추 비슷하다. 전자에서는 이 칸 자체에 들어갈만한 사이즈인지 확인, 이미 슬롯에 등록된 아이템들이 있는지 확인해서 true/false를 반환한다.

 

 후자는 bool[][] 배열 안에 해당 슬롯들을 기반으로 위치를 기억한다. 위에서 말한 등록된 아이템 확인이 여기의 배열을 검사하는데 쓰이는데. 이게 오류가 뜨는 것.

 

 영상 맨 후반처럼 안 맞는 상황이 나온다. 문제 하나는 저렇게, 자신만한 인벤토리일 때 안 맞는다고 뜨는 것.

 다른 하나는 이미 아이템들이 있을 경우에, 빈 칸이 있음에도 빈 칸이 아니라고 나오는 경우다.

 그래서 이상한 게, (어쩌면 가장 최초에) 먼저 들어갔을 때는 칸에 들어갔는데. 어떤 때엔 이미 있다고 안 들어간다.

 

  비슷한 상황을 재현해도 오류가 안 뜨는 것 보니까, 아마 후자는 고쳐진 것 같기도 하다. 언급은 안 했지만 분명 윗 문제는 위치를 잘못 기록했겠지 싶어서, 위치를 등록하는 함수를 한번 고쳤다. 고친 것과 그 이전이랑 뭐가 다른지가 모르겠다. 근데 된다. 아니, 대체 뭐냐고.

 

 

 영상에서 나온 오류는 1x1칸 짜리 아이템이 아니라, 1보다 큰 홀수짜리의 아이템에서 발생하는 문제 같다.

 

 잠깐 아 씨발 아니네. 아이템 데이터 자체가 잘못됐었네;;; 높이1, 넓이3으로 설정했었네? ㅋㅋㅋㅋㅋㅋㅋ

 어.. 그럼 이제 문제 없는건가? 아닌데...? 아닐 거 같은데..? 쓰으으읍...

 

 

 위 영상에서 두 칸 짜리가 안 들어간 이유는, 3칸 짜리 아이템이 먼저 등록됐었으니 그 칸은 비어있는 게 아닐 터다.

 

 왜냐면.. 그게 이제 앞으로 할 일이다. 등록이 되었으니, 이제 빼오기도 해야 된다.

 인벤토리 사이에 전송, 동일 인벤토리 내부의 이동을 다뤄야 한다.

 

 그 다음 인터페이스에서 또 해제되도록 접근하고.. 

 아니지. 일단 코드 정리부터 해야 된다. 고쳐 놓은 걸 기반으로 동일 함수 내부의 다른 코드 구문들을 수정하고..

 그리고 또 뭐가 있고.. 또 뭐가 있고.. 넘나 많은 것.. 제발 그만 시켜..

 

'log' 카테고리의 다른 글

6 - 패트리온을 어떡하지?  (0) 2022.10.19
5 - 스스로를 너무 재촉하지 말자  (0) 2022.10.11
3  (0) 2022.10.03
2 - 미진  (0) 2022.08.04
1 - 22년 7월. 첫 글.  (0) 2022.07.23