본문 바로가기

Studying/Python

14. miniProject(5) - Quiz 프로그램

이번엔 일련의 참, 거짓 퀴즈를 풀고 정답인지 아닌지 나타내는 프로그램을 작성해보기로 하자. 

 

이번엔 파일을 4개로 구분해서 진행하자. 

 

먼저 quiz 내용을 저장해놓을 data.py을 만든다. 

 

data.py

data.py에는 우리가 main.py에서 다룰 question_data 라는 list가 여러 dict 형태로 중첩되어 있다. 

 

여기서 text에 해당하는 value값으로 질문을, answer에 해당하는 value 값으로 답변을 가져올 것이다. 

 

그 다음은 question_model.py 을 만들 것이다. 

 

question_model.py

 

question_model.py에서는 data.py에서 textanswer을 가져와 질문 형식을 만들어준다. 

 

이제 실제 게임이 진행되는 과정을 다룬 quiz_brain.py를 만들어줄 것이다. 

 

quiz_brain.py

 

QuizBrain 클래스는 인자로 question_list를 받고, 속성 question_number, score를 각각 0으로 설정한다. 

 

여기에 3개의 함수를 선언하는데,

다음 문제가 있는지 판단하여 퀴즈 진행을 결정하는 함수, 퀴즈 번호와 정답 여부 및 다음 퀴즈를 표현하는 함수,

그리고 입력한 정답이 맞는지 판단하는 함수 이렇게 3개이다.  

 

정답 여부를 확인하는 check_answer 함수의 경우 인자로 내가 입력한 답과 실제 정답을 받아 비교하고

QuizBrain 속성으로 설정한 score에 점수를 추가하는 것까지 작성한다. 

 

이제 실제 퀴즈를 진행하는 main.py를 작성한다. 

 

main.py

 

앞 단계에서 만들었던 파일들에서 Question, quesion_data, QuizBrain 을 각각 불러온다. 

 

그리고 QuizBrainlist를 인자로 받고, 우리가 quetion_data에서 가져올 퀴즈 목록을 저장할 question_bank를 빈 list로 선언한다. 

 

for 반복문을 통해 question_datatext, answer에 해당하는 값을 가져와 Question 함수에 넣어 이를 new_question 변수에 할당하고, 이를 빈 list 였던 question_bankappend한다. 

 

이제 question_bank 가 채워진 list 로 준비되었기에 이를 QuizBrain에 인자로 넘기고 이를 quiz 라는 변수에 저장한다. 

 

그렇다면 QuizBrainmethod였던 still_has_questionnext_question을 그대로 quiz가 사용할 수 있게 된다. 

 

마무리로 퀴즈가 다 종료되면 최종 점수도 출력해준다.

 

출력화면