Skip to content

greedy-team/javascript-zombie-survival

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 

Repository files navigation

좀비 감염자의 선택

좀비 아포칼립스: 감염자의 이지선다

🔍 진행방식

  • 미션은 기능 요구사항, 프로그래밍 요구사항, 과제 진행 요구사항 세 가지로 구성되어 있다.
  • 세 개의 요구사항을 만족하기 위해 노력한다. 특히 기능을 구현하기 전에 기능 목록을 만들고, 기능 단위로 커밋 하는 방식으로 진행한다.

🎯 기능 요구사항

원인 불명의 감염 사태가 발생했다. 도시는 봉쇄되었고, 당신은 이미 좀비에게 물렸다. 완전히 좀비로 변하기 전에 치료제를 완성하거나, 15일을 버텨 구조대를 기다려야 한다.

  • 게임 시작 시 플레이어의 초기 상태는 체력 100, 식량 3, 감염도 10이다.
  • 매일(Day) 카드 1장을 뽑고, 카드의 선택지 2개 중 1개를 고른다.
  • 선택 후 2초(2000ms) 가 지난 후 결과가 출력된다.
  • 매일 선택 후 식량이 1 소비되며, 감염도가 3 증가한다.
  • 식량이 0인 상태에서는 매일 체력이 10 추가 감소한다.
  • 식량은 0 미만으로 내려가지 않는다. (최솟값 0)
  • 플레이어는 언제든 게임을 포기할 수 있다.

🃏 카드 덱 규칙

20장의 카드로 구성된 덱을 셔플하여 사용한다. 매일 1장을 뽑고 선택지를 고른다. 덱이 소진되면 자동으로 리셔플된다.

카드 장수 선택지 A 선택지 B
좀비 무리 5 맞서 싸운다 (체력 -15) 숨을 죽인다 (체력 -5, 감염도 +3)
약국 잔해 4 안으로 들어간다 (감염도 -10, 체력 -5) 밖의 식량만 줍는다 (식량 +2)
빈 아파트 3 문을 잠그고 쉰다 (체력 +15) 방마다 뒤진다 (식량 +2, 체력 -5)
무장한 생존자 3 식량을 건넨다 (체력 +5, 식량 -1) 치료를 부탁한다 (감염도 -15, 식량 -1)
감염 발작 3 이를 악물고 견딘다 (감염도 +10) 감염 부위를 도려낸다 (체력 -20, 감염도 -10)
무전 신호 2 위치를 송신한다 (구조 포인트 +1, 체력 -5) 덫일 수 있다... 무시 (식량 +1)

🏁 엔딩 조건

실패 엔딩

  • 체력 ≤ 0 → 사망
  • 감염도 ≥ 100 → 좀비화

성공 엔딩

  • 치료 선택 5회 누적 (치료 도움 + 자가치료) → 치료 성공
  • 구조 포인트 3 이상 + Day > 10 → 구조 성공
  • Day > 15 → 생존 성공 (구조대 도착)

📊 엔딩 결과 출력

게임이 종료되면 다음 정보를 출력한다.

=== 게임 종료 ===
생존 일수: 8일
최종 체력: 0
최종 식량: 2
최종 감염도: 85
엔딩: 사망

💻 실행 결과 예시

(미션 완성 후 실행결과 첨부할 것)


✅ 프로그래밍 요구사항

  • var를 사용하지 않는다. const, let만 사용한다.
  • 전역 변수를 사용하지 않는다.
  • 외부 라이브러리를 사용하지 않고, 순수 Vanilla JS로만 구현한다.
  • Airbnb 자바스크립트 코드 컨벤션을 지키면서 프로그래밍 한다.
  • indent(인덴트, 들여쓰기) depth를 2가 넘지 않도록 구현한다.
    • 예를 들어 while문 안에 if문이 있으면 들여쓰기는 2이다.
    • 힌트: indent depth를 줄이는 좋은 방법은 함수(또는 메소드)를 분리하는 것이다.
  • 함수(또는 메소드)가 한 가지 일만 하도록 최대한 작게 만들어라.
  • import 문을 이용해 스크립트를 모듈화하고 불러올 수 있게 만든다.
  • 함수(또는 메소드)의 길이가 15라인을 넘어가지 않도록 구현한다.

📝 과제 진행 요구사항

  • 미션 저장소를 Fork/Clone해 시작한다.
  • 기능을 구현하기 전에 docs/README.md 파일에 구현할 기능 목록을 정리해 추가한다.
  • Git의 커밋 단위는 앞 단계에서 README.md 파일에 정리한 기능 목록 단위로 추가한다.

✉️ 미션 제출 방법

  • 미션 구현을 완료한 후 GitHub을 통해 제출한다.
  • 미션을 제출할 때에는 docs의 markdown 파일에 기능 목록이 적어져 있어야한다.
  • 테스트를 통과해야만 제출이 가능하다.

✔️ 테스트 실행 가이드

  • 테스트 실행에 필요한 패키지 설치를 위해 Node.js 버전 20 이상이 필요하다.
  • 다음 명령어를 입력해 패키지를 설치한다.
npm install
  • 설치가 완료되었다면, 다음 명령어를 입력해 테스트를 실행한다.
npm run test
  • 모든 테스트가 pass한다면 성공!

🔗 참고 링크

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published