You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Web-Dev-For-Beginners/translations/ko/6-space-game/6-end-condition/assignment.md

8.1 KiB

샘플 게임 만들기

과제 개요

이제 우주 게임에서 게임 종료 조건과 재시작 기능을 마스터했으니, 이 개념들을 완전히 새로운 게임 경험에 적용할 차례입니다. 다양한 종료 조건 패턴과 재시작 메커니즘을 보여주는 자신만의 게임을 설계하고 구축하세요.

이 과제는 게임 디자인에 대해 창의적으로 사고하는 동시에 배운 기술적 역량을 연습하도록 도전합니다. 다양한 승리 및 패배 시나리오를 탐구하고, 플레이어 진행을 구현하며, 흥미로운 재시작 경험을 만듭니다.

프로젝트 요구사항

핵심 게임 기능

게임에는 다음과 같은 필수 요소가 포함되어야 합니다:

종료 조건 다양성: 게임이 끝나는 최소 두 가지 방식을 구현하세요:

  • 점수 기반 승리: 플레이어가 목표 점수에 도달하거나 특정 아이템을 수집
  • 목숨 기반 패배: 플레이어가 모든 목숨 또는 체력을 잃음
  • 목표 달성: 모든 적 처치, 특정 아이템 수집 또는 목표 달성
  • 시간 기반: 설정된 시간 또는 카운트다운이 0이 되면 종료

재시작 기능:

  • 게임 상태 초기화: 이전 게임 객체 모두 제거 및 변수 초기화
  • 시스템 재설정: 새로운 플레이어 상태, 적, 목표와 함께 새로 시작
  • 사용자 친화적 조작법: 게임 재시작을 위한 명확한 안내 제공

플레이어 피드백:

  • 승리 메시지: 플레이어 성취를 축하하는 긍정적인 피드백
  • 패배 메시지: 재도전을 독려하는 용기 부여 메시지 제공
  • 진행 표시기: 현재 점수, 목숨, 목표 상태 표시

게임 아이디어 및 영감

아래 게임 컨셉 중 하나를 선택하거나 자신만의 게임을 만드세요:

1. 콘솔 어드벤처 게임

전투 메커니즘이 포함된 텍스트 기반 모험 게임 만들기:

Hero> Strikes with broadsword - orc takes 3p damage
Orc> Hits with club - hero takes 2p damage  
Hero> Kicks - orc takes 1p damage
Game> Orc is defeated - Hero collects 2 coins
Game> ****No more monsters, you have conquered the evil fortress****

구현할 핵심 기능:

  • 다양한 공격 옵션이 있는 턴제 전투
  • 플레이어와 적 모두의 체력
  • 동전이나 아이템을 수집하는 인벤토리 시스템
  • 난이도가 다른 여러 유형의 적
  • 모든 적 처치 시 승리 조건

2. 수집 게임

  • 목표: 장애물을 피하면서 특정 아이템 수집
  • 종료 조건: 목표 수집 횟수 달성하거나 목숨 모두 소진
  • 진행: 게임이 진행될수록 아이템 접근 난이도 증가

3. 퍼즐 게임

  • 목표: 점차 어려워지는 퍼즐 해결
  • 종료 조건: 모든 레벨 완료 또는 이동/시간 소진
  • 재시작: 진행 상황 초기화 후 첫 레벨로 초기화

4. 디펜스 게임

  • 목표: 적의 웨이브로부터 기지 보호
  • 종료 조건: 모든 웨이브 생존(승리) 또는 기지 파괴(패배)
  • 진행: 적 웨이브 난이도 및 수 증가

구현 지침

시작하기

  1. 게임 디자인 계획:

    • 기본 게임 플레이 루프 스케치
    • 종료 조건 명확히 정의
    • 재시작 시 리셋할 데이터 식별
  2. 프로젝트 구조 설정:

    my-game/
    ├── index.html
    ├── style.css
    ├── game.js
    └── README.md
    
  3. 핵심 게임 루프 작성:

    • 게임 상태 초기화
    • 사용자 입력 처리
    • 게임 로직 업데이트
    • 종료 조건 확인
    • 현재 상태 렌더링

기술적 요구사항

최신 자바스크립트 사용:

  • 변수 선언에 constlet 사용
  • 적절한 곳에 화살표 함수 활용
  • 템플릿 리터럴, 구조 분해 할당 등 ES6+ 기능 적용

이벤트 기반 아키텍처:

  • 사용자 상호작용에 대한 이벤트 핸들러 생성
  • 이벤트를 통한 게임 상태 변경 구현
  • 재시작 기능에 이벤트 리스너 활용

깔끔한 코드 관행:

  • 단일 책임 함수 작성
  • 설명적인 변수 및 함수 이름 사용
  • 게임 로직과 규칙에 대한 주석 추가
  • 논리적 구역으로 코드 구성

제출 요구사항

제출물

  1. 완성된 게임 파일: 게임 실행에 필요한 모든 HTML, CSS, JavaScript 파일
  2. README.md: 다음 내용이 포함된 문서
    • 게임 플레이 방법
    • 구현된 종료 조건
    • 재시작 방법
    • 특별 기능 또는 메커니즘
  3. 코드 주석: 게임 로직과 알고리즘에 대한 명확한 설명

테스트 체크리스트

제출 전, 아래 항목을 확인하세요:

  • 브라우저 콘솔에서 오류 없이 실행됨
  • 명시된 여러 종료 조건 구현됨
  • 게임 상태가 깔끔히 초기화되며 정상 재시작됨
  • 플레이어에게 명확한 게임 상태 피드백 제공
  • 최신 자바스크립트 문법과 베스트 프랙티스 사용
  • README.md에 종합적인 문서 포함

평가 기준표

평가 항목 우수 (4) 능숙 (3) 발전 중 (2) 초급 (1)
게임 기능 다중 종료 조건, 원활한 재시작, 완성도 높은 게임 플레이 기본 종료 조건과 기능적 재시작 포함한 완전한 게임 일부 종료 조건 구현, 재시작에 약간 문제 있음 기능 제한 및 심각한 버그가 있는 불완전한 게임
코드 품질 최신 자바스크립트와 깔끔한 구조, 풍부한 주석, 체계적 코드 최신 문법과 적절한 주석, 명확한 구조 일부 최신 문법과 최소한의 주석 포함 구식 문법, 주석 부족, 엉성한 코드 구조
사용자 경험 직관적이고 명확한 안내, 우수한 피드백, 몰입도 높은 종료 및 재시작 충분한 안내와 피드백, 기능적인 종료 및 재시작 기본적 안내, 제한된 게임 상태 피드백 혼란스러운 안내와 열악한 사용자 피드백
기술 구현 게임 개발 개념, 이벤트 처리, 상태 관리를 능숙하게 구현 게임 개념을 잘 이해하고 양호한 구현 기본 이해와 괜찮은 구현 이해 부족과 열악한 구현
문서화 명확한 안내가 있는 포괄적 README, 잘 문서화된 코드, 철저한 테스트 증거 명확한 안내와 적절한 주석의 우수 문서 최소 안내의 기본 문서화 불충분하거나 부재한 문서화

점수 기준

  • 우수 (16-20점): 창의적 기능과 완성도 높은 구현으로 기대 수준 초과
  • 능숙 (12-15점): 모든 요구사항 충족, 탄탄한 실행
  • 발전 중 (8-11점): 대부분 요구사항 충족, 일부 사소한 문제 존재
  • 초급 (4-7점): 일부 요구사항 충족, 크게 개선 필요

추가 학습 자료

💡 프로 팁: 간단한 것부터 시작해 기능을 점진적으로 추가하세요. 잘 다듬어진 간단한 게임이 버그 많은 복잡한 게임보다 훨씬 낫습니다!


면책 조항:
이 문서는 AI 번역 서비스 Co-op Translator를 사용하여 번역되었습니다. 정확성을 위해 최선을 다하고 있지만, 자동 번역에는 오류나 부정확성이 포함될 수 있음을 유의하시기 바랍니다. 원문은 해당 언어의 원본 문서가 권위 있는 출처로 간주되어야 합니다. 중요한 정보의 경우 전문 인간 번역을 권장합니다. 본 번역 사용으로 인한 오해나 오역에 대해 당사는 책임을 지지 않습니다.