개인과제 Console_RPG 제출
스파르타 내배캠 9일차 TIL
C2조_💖 코딩(인줄 알았지 하드코딩 이지롱)
글 쓴 날짜인 04월 25일 6시까지 과제 제출을 하기 위해 오늘과 어제 계속 잡고 있었던 것 같다. 강의를 포기하고 했는데도 시간이 많이 부족한 느낌이었다. 그래도 강의를 일찍 포기한 만큼 개발에 집중할 수 있어서 json 파일로 플레이어 데이터를 저장하는 것 빼고 기본요구사항과 추가요구사항 모두 구현했다. 뒤로 갈수록 스파게티 코드가 되는 모습이 정말 마음에 안 들었지만 구현이 먼저라는 생각에 더 손을 댈 수 없었다. 내일 강의를 듣고 시간이 남는다면 저장 기능과 코드 분해를 해보려고 한다. 그 전에 피드백이 오면 좋을 것 같은데 워낙 인원이 많아서 주말 지나야 받을 수 있을 것 같다.
https://github.com/rlarhdal/Console_RPG
GitHub - rlarhdal/Console_RPG: 콘솔 RPG 게임 실습
콘솔 RPG 게임 실습. Contribute to rlarhdal/Console_RPG development by creating an account on GitHub.
github.com
코드
가장 많이 본 에러... null 값이니까 채워라, null 값 나오니까 어디서 가져와라 << 같은 경우는 결국 클래스를 불러올 때 매개변수를 지정하지 않았던가 아니면 매개변수를 지정해 놓고 참조하지 않았거나 였다. 결국 함수를 사용하는 스킬이 부족하여 나타나는 오류였기 때문에 그 부분은 오랜 시간 안 걸려서 해결하곤 했다.

하루종일 본 스파게티 코드가 여전히 눈에 아른거린다. 사실 위 사진보다 더 많은 if 문과 for문이 걸쳐져 있었다. 이렇게 하다보니 불필요한 조건들이 생기고 코드가 꼬여서 어디서 에러가 난 건지 한 줄씩 디버깅 했어야 했다. 그래서 한 시간을 꼬박 코드를 풀어내서 다른 클래스의 함수로 빼고 가져오는 일을 진행했다. 그래서 완성된 게 아래이다.

주석은 일부로 남겨두었다. 같은 내용의 코드인데 어떻게 생각하냐에 따라서 위처럼 줄어들 수 있다는 것을 나중의 나에게도 알려주고 싶었다. 참고로 참고할 만한 코드는 절대 아니다. 그냥...머리로 날아가는 비행기 짤과 같은 코드인 것 같다.
저 코드 안에서도 왜 안 돌아가지 싶은 것이 있었다.
int itemIndex = equipItems.FindIndex(equipItems => equipItems.equiped.Equals("[E]"));
이 코드인데 [E] 장비 착용이 된 아이템을 불러오는 코드이다. FindIndex로 리스트 안에 있는 조건과 같은 아이템을 불러온다. 옳다구나 썼지만 역시 잘 알아봐야 했다. 나는 [E]인 상태인 코드를 모두 불러오는 줄 알았는데(SQL처럼) 한 리스트만 불러오는 거였다. 그래서 자꾸 장비를 변경해서 착용할 때 공격력 장비는 모두 착용된 상태로 남았던 것이었다. 그래서 아래와 같이 조건을 붙이고 코드를 줄일 수 있었다.
int itemIndex = equipItems.FindIndex(equipItems => equipItems.equiped.Equals("[E]")&&equipItems.statInfo.Equals(stat));
마무리하며
오늘 왜 그러는지 모르겠지만 너무 피곤한 하루였다. 저녁을 먹고 나니 졸음이 와서 튜터링도 간신히 들었다. 아무래도 신경을 많이 써서 그랬겠지? 앞으로 스파르타 내배캠을 통해 이런 프로젝트를 많이 해서 얻어가는 것이 많은 시간을 보냈으면 좋겠다. 힘들지만 그 만큼 뿌듯했던 하루였다.