Skip to content

Latest commit

 

History

History
126 lines (95 loc) · 4.9 KB

README.md

File metadata and controls

126 lines (95 loc) · 4.9 KB

묵찌빠 게임

📖 목차

  1. 소개
  2. 타임라인
  3. 시각화된 프로젝트 구조
  4. 실행 화면
  5. 트러블 슈팅
  6. 참고 링크

🌱 소개

'🐍'과 '🐉' 이 함께 만든 가위바위보 프로젝트입니다. 가위바위보 게임을 진행 후 묵찌빠 게임까지 진행되는 게임 프로젝트입니다. 부족하지만 최대한 기능구현에 목적을 두었습니다.

🧑‍🤝‍🧑 팀원

드래곤

📆 타임라인

22.08.23

  • Step1 플로우 차트 추가
  • Step1 기능 구현 완료
  • Step1 PR 전송

22.08.24

  • Step1 리뷰결과 수정
    • 컨벤션 수정
    • 네이밍 수정
    • 함수 세분화
  • Step2 플로우 차트 추가
  • Step2 기능 구현 완료
  • Step2 PR 전송

22.08.25

  • Step2 리뷰결과 수정
    • 함수 순서 변경
    • 네이밍 수정

22.08.26

  • README 작성

👀 시각화된 프로젝트 구조

Step 1_FlowChart Step 2_FlowChart

💻 실행 화면

STEP 1 가위바위보

승리 / 무승부 패배 / 입력 오류

STEP 2 묵찌빠

승리 패배

❓ 트러블 슈팅

🤔 고민했던 부분

  • if문과 switch 간의 사용 고민
    • if 은 다소 간단한 경우를 다룰 때 사용하고 원하는 한가지 이상의 조건을 다룰 수 있다.
    • switch 의 다양한 경우를 다룰 때 사용하는 것이 좋고 무조건 모든 조건을 설정해 주어야 한다.
    • 아래의 경우에서 switch 와 if 중 사용에 대한 고민이 적었다.
switch userNumber {
    case 1, 2, 3 :
        return compareTwoInput(userNumber, with: computerNumber)
    default :
        return "종료"
    }
  • loof문과 재귀함수의 사용 고민

    • 이 프로젝트에서는 loof 를 사용 했다.
    • 재귀함수를 사용했을 때 나오는 사이드 이펙트를 완벽하게 관리하지 못해 loof 를 사용했다.
    • 하지만 재귀함수 관리가 완벽할 경우에는 코드 직관성 또는 변수 사용량을 줄여 줄 수 있는 이점이 있다.
  • if let, guard let 사용 고민

    • if let은 그 구문 중괄호 안에서 사용이 된다. 여기서 바인딩 된 상-변수는 if let 밖에서 사용 할 수 없다.
    • guard let 은 오류 발생 시 중괄호 안의 구문이 실행되어 종료된다. 또한 guard let 밖에서 상-변수를 사용 할 수 있다.
    • if let 을 쓰게 된다면 바인딩 되었을 때 중괄호의 중첩이 하나 더 생기기 때문에 guard 문 사용을 더 고려 했으면 했다.

💪 개선해야 될 부분

  • 에러 처리
    • 이 프로젝트에서의 에러 모두 nil 값을 던져주어 사용 시에 오류 처리를 해준다.
    • 에러처리를 더 세부적으로 나누어서 어떤 오류가 문제인지를 확인시켜주어야 할 것 같다.
      • Result Type
      • Do try Catch
  • 은닉화 및 캡슐화
    • 처음에는 파일 및 함수를 세분화 하여 구현하지 않았다.
    • 추후 파워코딩 혹은 무거운 프로젝트를 다루게 된다면 접근 제한자를 사용한다던지, 함수의 재활용을 할 것이다.
    • 현재 우리의 프로젝트에서는 깊숙하게 세분화 하지 못했다.
    • 그렇게 된다면 추후 프로젝트를 다룰때 필요없이 중복 되는 부분이 많이 생기거나, 접근제한자를 정확하게 사용 할 수 없기 때문에 유지 관리가 힘들 것이다.
    • 그렇기 때문에 추후 프로젝트 과정에서는 조금더 파일 혹은 함수들을 최대한 간략하게 구성하려고 노력 해야 겠다.
  • 기본 문법 숙지
    • 이 프로젝트를 진행 하면서, 기본적인 문법이 많이 비어있어서 어려움을 겪었기 때문에 기초를 좀 더 다지려고 노력 해야 겠다.

🔗 참고 링크


🔝 맨 위로 이동하기