본문 바로가기
내일배움 과제/CH 2 Rogue like JAVASCRIPT! 과제

텍스트 로그라이크 코드_1

by GREEN나무 2024. 11. 12.
728x90

이번 과제에서 고려해야 할 사항

더보기

 트러블 슈팅

좋은 트러블 슈팅 사례, 형식을 찾아보고 트러블 슈팅을 작성하고 발표해 주세요

배경 : 어떤 현상을 발견해서

발단 : 이런 장애가 생길 수 있다는 것을 인지했고,

전개 : 장애를 대응, 해결하던 와중에

위기 : 또 다른 장애 발견 또는 간단하게 해결할 수 없다는 것을 알게되어서,

절정 : 근본적인 해결을 위해 이런 방법으로 접근하였다.

결말 : 따라서, 이런이런 방법을 통해 근본적으로 해결 및 앞으로 유지, 보수에 용이하게 개선하게 되었다.

 과제 필수요건 채우기

완성도 필수 필수 기능 - 단순 행동 패턴 2가지 구현 - 클래스 문법 활용, 플레이어 스탯 관리 - 간단한 전투 로직 구현 - 스테이지 진행에 따른 이벤트 관리
  도전 도전 기능 - 확률 로직 적용 - 복잡한 행동 패턴 구현 - 새로운 기능 구현- 전체적인 코드 흐름
이해도 필수 - TIL에 트러블슈팅 과정을 기록해보세요. (과제 제출란에 TIL 링크를 제출해주세요.)
  도전 - 디렉토리 및 파일을 분리해보세요.- 변수명 등 코드를 직관적이고 이해하기 쉽게 작성해보세요.- 주석을 활용해 코드를 설명해보세요.
우수성 필수 - ReadMe를 작성해 과제를 소개해보세요.
  도전 - 특수 상황에 대한 예외 처리를 2가지 이상 구현해보세요.- 커밋 컨벤션을 지킨 커밋을 10회 이상 시행해보세요.

필수 기능 구현을 우선적으로 완성한 후, 도전 기능에도 도전하여 실력을 더욱 강화해 주시기 바랍니다. 각 기능의 구현 상태에 따라 평가가 이루어지며, 이는 팀 구성과 추후의 팀 프로젝트 성공에 큰 영향을 미칠 수 있습니다. 최선을 다해 모든 기능을 완성해 주시기 바랍니다!

필수 기능 가이드

1. 단순 행동 패턴 2가지 구현

- 공격하기 

- 도망치기 

2. 플레이어 클래스에서 플레이어 스탯 (공격력, 체력 등) 관리하기 

3. 간단한 전투 로직 구현

- 플레이어 공격, 몬스터 피격 

4. 스테이지 클리어 시 유저 체력 회복 

5. 스테이지의 진행과 비례해서 몬스터의 체력과 공격력 증가 시키기 

 

필수 기능 공통 가이드

1. switch 분기문을 사용하여 유저의 각 행동에 대한 로직을 처리해보세요.

2. while 반복문을 사용할 때는 종료 조건이 무조건 있어야 합니다.

   a. 스테이지 클리어 및 게임 종료 조건

   b. 몬스터와의 전투 종료 조건

3. Math.random()메서드를 통해서 랜덤한 숫자를 얻을 수 있습니다.

4. 플레이어의 공격은 선택에 의해서 이루어지지만, 몬스터의 공격은 자동으로 처리가 된 뒤 해당 플레이어의 로그에 보여지게 됩니다.

5. 함수의 호출 순서에 따라서 각 변수, 객체들을 관리하는 것이 중요합니다.

도전 기능 가이드

1. 확률 로직 적용

- 연속 공격, 방어, 도망치기 

- 스테이지 클리어시 유저 능력치 증가, 증가량 

- 몬스터의 공격력, 체력 증가량 

2. 복잡한 행동 패턴 구현

- 연속 공격 

- 방어하기 

- 그 외 다른 행동

 

도전 기능 공통 가이드

1.랜덤, 확률을 사용하는 것을 어렵게 생각하지 마세요.

   a. Math.random() 메서드를 응용하여 0~5 사이의 정수가 랜덤으로 생성된다고 가정할 때, 우리는 [0,1,2,3,4,5] 6가지 랜덤한 선택지를 가질 수 있게됩니다.

   b. 확률의 경우도 마찬가지로 Math.random() 메서드를 응용하여 0~99 사이의 정수를 생성한다고 할 때, 10%의 확률은 0~9사이의 숫자가 생성될 확률이랑 같습니다.

2. 새로운 기능을 추가하는 것을 망설이지 마세요!

 

코드 정리하기

game.js
0.00MB
server.js
0.00MB

 

 

 

 

 

 

문법 요약

이미지는 아스키 아트로 넣기


◆ 모듈 가져오기와 내보내기 (Import/Export)
   - 모듈 시스템을 통해 함수, 클래스, 변수 등을 다른 파일에서 가져오거나 내보냅니다. `import`와 `export` 키워드를 사용합니다.

import { getRandomInt } from './source.js';
export async function startGame() { /*...*/ }



랜덤 숫자 생성 함수
   - `Math.random()`과 `getRandomInt`를 사용해 랜덤한 수를 생성하는 로직입니다.

Math.random()은 0 이상 1 미만의 난수(임의의 숫자)를 반환합니다.

function getRandomInt(max) {
  return Math.floor(Math.random() * max);
}


  확률 이벤트 (조건부 연산자 (Conditional Operator))

50% 확률로 두 이벤트 중 하나를 선택하는 데 사용됩니다.

return Math.random() > 0.5 ? squirrelEvent : humanEvent;


   프로퍼티 계산 (Computed Property Names)
   - 객체의 프로퍼티를 동적으로 설정할 때 사용하는 문법입니다.

this[stat]는 stat에 전달된 문자열을 키로 사용해 속성(hp, fullness, happiness)을 동적으로 참조/수정합니다.
예를 들어, increaseStat("hp", 10) 호출 시 this.hp가 10 증가합니다.

increaseStat(stat, amount) {
  this[stat] = Math.min(this[stat] + amount, 100); // 'stat'에 동적으로 접근
}



 

'내일배움 과제 > CH 2 Rogue like JAVASCRIPT! 과제' 카테고리의 다른 글

CH2 TIL  (0) 2024.11.14
텍스트 로그라이크 코드_2  (0) 2024.11.13
0 설계  (1) 2024.11.12
1. 개발환경 세팅  (2) 2024.11.11