이 프로젝트는 파이썬 기초 문법(변수, 자료구조, 조건문, 반복문, 함수, 예외 처리)을 복습하고 활용하기 위한 콘솔 기반 Q&A 학습 게임입니다. 3명의 팀원이 협력하여 문제 출제부터 게임 로직 구현까지 전 과정을 경험하는 것을 목표로 합니다.
-
파이썬 기본 문법의 실제 적용 능력 향상
-
깃(Git)과 깃허브(GitHub)를 활용한 협업 경험
-
문제 해결 능력 및 코드 리팩토링 능력 향상
-
팀원 간의 효과적인 커뮤니케이션 및 역할 분담 연습
-
문제 데이터 관리: 텍스트 파일에서 문제와 정답을 불러와 게임에 사용합니다.
-
무작위 문제 출제: 플레이할 때마다 다른 순서로 문제가 출제됩니다.
-
중복 문제 방지: 이미 출제된 문제는 다시 나오지 않습니다.
-
정답 확인 및 채점: 사용자의 입력에 따라 정답 여부를 판단하고 점수를 계산합니다.
-
게임 종료: 모든 문제를 풀거나, 사용자가 원할 때 게임을 종료합니다.
-
예외 처리: 파일 로딩 오류, 잘못된 입력 등 예상치 못한 상황에 대비합니다.
우리 팀은 3명으로 구성되어 있으며, 각자의 역할을 다음과 같이 분담했습니다.
-
담당 기능:
-
문제 데이터 양식 지정 및 작성: 퀴즈 문제와 정답이 담길
quiz_data.csv파일의 형식을 정의하고 팀원들과 작성한 문제를 관리합니다. (예:문제|정답1,정답2) -
파일 로딩 함수 구현:
quiz_data.csv파일을 읽어와 파이썬 리스트 형태로 변환하는 함수를 개발합니다. -
파일 예외 처리: 파일을 불러오는 과정에서 발생할 수 있는
FileNotFoundError등의 예외를 처리하는 코드를 작성합니다.
-
-
담당 기능:
-
문제 출제 로직 구현: 데이터 관리자의 함수를 호출하여 문제 목록을 가져온 후,
random모듈을 사용하여 문제를 무작위로 출제하는 기능을 개발합니다. -
중복 문제 방지: 이미 출제된 문제는 다시 나오지 않도록 풀었던 문제의 인덱스나 고유값을 기록하고 관리하는 로직을 구현합니다.
-
메인 게임 루프 구현:
while반복문을 사용하여 게임 시작부터 종료까지의 전체적인 흐름을 제어하는 메인 함수를 개발합니다.
-
-
담당 기능:
-
사용자 입력/출력 관리:
input()및print()함수를 활용하여 문제 출력, 답변 입력, 채점 결과 및 최종 점수를 화면에 보여주는 기능을 담당합니다. -
채점 및 점수 계산: 사용자로부터 정답을 입력받아 채점하고, 최종 점수(목숨)를(을) 계산하는 코드를 작성합니다.
-
게임 종료 기준 설정: 사용자가 특정 명령을 입력하거나 모든 문제를 풀었을 때 게임이 종료되도록 하는 로직을 구현합니다. 종료 후 오답 내용을 반환합니다.
-
-
언어: Python 3.x
-
버전 관리: Git
-
협업 플랫폼: GitHub
-
main: 항상 안정적인 최신 코드가 유지되는 브랜치입니다. -
dev:main브랜치에 통합되기 전, 개발 중인 코드들이 병합되는 브랜치입니다. -
feature/개인이름-기능설명: 각 팀원이 담당하는 기능 개발을 위한 개인 브랜치입니다. (예:feature/jimin-data-loader)
작업 흐름:
-
dev브랜치에서 자신의feature/개인이름-기능설명브랜치를 생성합니다. -
해당 브랜치에서 기능을 개발하고 커밋합니다.
-
기능 개발 완료 후,
dev브랜치로 Pull Request를 생성하여 코드 리뷰를 요청합니다. -
리뷰 후
dev브랜치에 병합합니다. -
모든 기능이
dev에서 안정적으로 작동하면main브랜치로 병합합니다.
- 레포지토리 클론:
git clone https://github.com/JaMiLy-max/python_mini_project.git
cd [프로젝트 폴더명 : python_mini_project] # 클론된 레포지토리 폴더로 이동합니다.
- 게임 실행:
python3 main.py
- 지시에 따라 문제 풀이 진행
프로젝트에 대한 질문이나 제안은 언제든지 환영합니다.