본문 바로가기

내가 꾸는 꿈

MBTI 성격검사 만들기 [노베이스 게임개발 20일차]

반응형

오늘은 주어진 문장들을 가지고 MBTI 성격검사 프로그램을 만들어 보는 날이다.(해당 MBTI지문들은 강사님께서 임의로 만든 질문이므로 신빙성은 없습니다. 저작권 이슈때문에 직접 만드신 지문입니다.)

 

먼저 MBTI의 결과를 출력해 줄 char MBTI의 문자열을 4글자를 만들어주었다. 마지막에 널문자도 와야 하므로 5의 크기를 갖는 배열을 만들어 주었다.

그 후 각 질문에 해당하는 점수를 초기값 0으로 맞춰주어 이후 입력에 따라 값을 더하고 뺄 예정이다.

그리고 check는 앞으로 있을 질문들에 대한 답을 저장하는 변수이고 value는 저장한 답을 평가의 수치로 치환할 변수이다.(예를 들어 1을 입력하면 check에 1을 저장한 후 1번 답변에 받는 점수 예를 들면 3을 value에 저장해 줄 것이다.)

 

사용자로부터 답변을 입력받은 getInt함수를 만들어 주었다. 만약 1~4의 답변 이외의 답을 입력한다면 다시 처음으로 돌아갈 수 있도록 리턴값을 자기 자신인 getInt()로 만들어주어 다시 한번 함수를 실행하도록 만들었다. (이러한 방식은 챗gpt을 통해 알아냈다.)

 

 

그런 다음 질문을 출력한 다음 각 질문에 대한 답을 check변수에 저장해 주었다. (총 16개의 문항이 있다.)

 

 

다음으로 반복문을 통해서 입력받은 각 check변수들에 알맞은 값을 value변수에 입력해 주었다.(1번은 -3점, 2번은 -1점, 3번은 1점, 4번은 3점. 이 값들의 총합을 보고 각 MBTI의 부분들에 맞는 성향들을 출력할 예정이다.)

 

 

이제 value들에 따라 각 성향들에 더하면 입력받은 답변을 토대로 점수를 매길 수 있다.

이때 -를 이용한 문항들은 기존 문항들과 반대로 1 -> 3점, 2 -> 1점, 3-> -1점, 4 -> -3점이다.

 

 

 

 

이제 마지막으로 합산한 점수에 따른 성향들을 각 MBTI문자열에 대입해 준 후,

 

마지막 배열에 널문자를 넣는 것을 까먹지 말고 완성된 MBTI를 출력해 주면 간이로 만든 MBTI 성격검사 프로그램이 완성된다.

 

이제 강의와 비교하며 좀 더 고칠 점을 찾아보았다.

 

강사님의 프로그램과 내 프로그램의 가장 큰 차이점은 함수의 차이였다.

내가 만든 프로그램도 잘 돌아갈 수 있지만 main함수에 너무 많은 내용이 들어있어 가독성이 떨어진다.

그래서 내가 만든 코드들을 함수화 하여 간략하게 한눈에 볼 수 있도록 다시 정리해 보았다.

 

먼저 질문을 받는 코드를 간소화하기 위해 question이라는 함수를 만들었다. 이 함수의 파라미터로 질문을 받고 사용자가 입력한 수를 다시 배열에 저장하기 위해 int* a 포인터를 통해 배열을 입력받고 i로 배열의 인덱스를 입력받았다.

 

그리고 잘못된 값을 입력받았을 때 나는 다른 방법을 이용했지만 강의에서 이용한 for루프를 사용해 보았다.

for 무한루프를 만들어 준 후 잘못된 값을 입력 시 continue구문을 통해 다시 반복되게 만들고 그 외의 경우에는 break를 이용해 for루프를 탈출하게 만들었다.

 

 

함수로 정리하고 나니 한눈에 볼 수 있도록 잘 정리가 된 모습이다.

 

 

후기:드디어 처음으로 내가 스스로 만든(마지막엔 강의를 보면서 고치긴 했지만) 프로그램이었다.

혼자힘으로 프로그램을 만드려고 하니 생각보다 내가 제대로 알고 있는 부분이 적었다는 걸 느꼈고,

하지만 그 과정 속에서 배운 내용들이 실전에선 어떤 식으로 쓰이는지 왜 쓰이는지 많은 내용들을 익힐 수 있는 시간이었다.

 

 

 

 

*본 포스팅은 학생의 입장에서 쓴 글로 정확하지 않을 수 있으며 댓글로 피드백해 주시면 감사하겠습니다.

클래스 101 개발자 라라 님의 강의를 통해 학습한 내용을 기반으로 두고 있습니다.

반응형