Skip to content

yItWorks/open-mission

Repository files navigation

오픈미션 프리코스

진행 방식

  • 프리코스 경험 기반으로 관련된 분야의 미션을 설계하고 구현한다.
  • 미션 주제는 자유롭게 정한다.
  • 스스로 도전하고 싶은 목표를 설정하고, 그에 맞는 실행 계획을 세워 미션을 진행한다.
  • 2주 동안 자료 조사, 기획, 실행 후 결과물을 제출한다.

미션 예시

  • 낯선 도구 해커톤
    • 설명: 난이도는 평범하나 평소에 잘 사용하지 않는 개발 도구나 언어(예: Rust, Kotlin, WebAssembly, 하드웨어 보드 등)로 문제를 해결한다.
    • 과제: 반드시 동작하는 작은 결과물(예: 간단한 앱, CLI 툴, 시뮬레이션) 제출한다.
  • 고난도 문제 해커톤
    • 설명: 평소에 익숙한 기술을 사용하여 난이도가 높은 문제를 해결한다.
    • 과제: 난도가 높은, 정답이 없는 문제를 정의하고, 해결해 가는 과정, 결과물을 제출한다.
  • 제한 협업 미션
    • 설명: 2~3명이 한 팀이 되어 처음 보는 사람과 협업한다.
    • 과제: 제한 조건을 만들어서 진행한다.
      • 예) “소통은 하루 15분 화상회의만 가능”, “코드 작성은 깃허브 이슈/PR로만”

기능 요구 사항

입출력 요구 사항

입력

  • 드래그 앤 드롭으로 블록 이동
  • 블록 홀드 중 키보드 입력
    • q: 블록 반시계 방향으로 90도 회전
    • e: 블록 시계 방향으로 90도 회전
    • w,s: 블록 상하 반전
    • a,d: 블록 좌우 반전

출력

  • 7 x 9의 게임판 생성
  • 조작 방법 및 승리 조건을 명시
  • 정사각형 5개를 변과 변을 맞대어 붙일 때 생기는 서로 다른 모양인 펜토미노 블록 12개를 생성

기능 명세

사용자 입출력

  • 1. 게임판, 설명서, 펜토미노 블록 초기화
  • 2. 블록 상호 작용
    • 2-1. 마우스와 상호작용
    • 2-2. 키보드와 상호작용
    • 2-3. 블록이 놓인 위치 저장
  • 3. 승리 메시지 출력

승리 판단

  • 1. 남겨진 칸이 3칸인지 확인
  • 2. 칸 중 하나가 오늘의 날짜(월, 일, 요일) 중 하나와 일치하는지 판단
  • 3. 남은 칸에 대해서 반복
  • 4. 오늘의 날짜와 모두 부합하다면 승리

정상 입력

  • 블록은 게임판 내부에 놓아져야 한다.
  • 블록을 잡은 채 상호작용 한다.

예외 처리

잘못된 입력의 경우 IllegalArgumentException을 발생시키고, 입력을 다시 받는다.

잘못된 입력

  • 게임판 외부로의 블록 놓기
  • 블록을 잡지 않은 채 키보드 입력

Commit convention

AngularJS Git Commit Message Conventions을 참고하여 커밋 메시지 작성할 것.

Type Description
feat 새로운 기능 추가
fix 버그 수정
docs 문서 관련 작업
style 코드 형식, 놓친 세미 콜론 등
refactor 리팩토링
test 테스트 수정 및 보완
chore maintain

체크리스트

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors