◇ 할 일
◆ 스켈레톤 탐구 및 게임 설계
◇ 한 일
◆ 시나리오 정하기
◆ 게임 구상
시나리오
4. 산책하다 도와주는 북극곰 베르노( 따뜻함과 평온함을 상징하는 라틴어에서 유래된 이름.)
빙하기가 찾아온 지구. 심심해진 북극곰 포비돈(임시명)은 여행을 가기로 했습니다.
ex) 길 앞에 다람쥐 들이 얼음 속에서 도토리를 꺼내려 고생하고 있네요. 도와주시겠습니까?
1. 도와준다 2. 무시한다
도와주는 목적 : 음식, 아이템 얻기
◆주요 퀘스트 : 얼음에서 물건 꺼내기
▷사람의 경우 : 높은 확률로 공격, 완료 시 라이터, 라면 등 레어탬 지급
■사람을 만났다. 도와줄까 ? 피할까?
○ 자동 랜덤 이벤트( 접근만해도 공격 / 도와주고 공격당하기 / 도와주고 얻어먹기 )
- 사람이 공격함 : 1. 싸움, 2. 도망가기
- 사람 내구력 랜덤 설정, 스테이지 올라가면 증가
a. 싸움 : 1. 일반 공격 2. 양 팔로 때리기(쿨타임 만들기) ( 데미지 랜덤) 3. 방어하기(이번텀 공격있으면 데미지0) 4. 도망가기(아래 b.로 이동)
총을 맞았다/ 칼에 맞았다/주먹에 맞았다/ 차엿다 < 랜덤 hp 깎기
이기면 아이템 획득, 포만감 up
사망 시 패배. (지는 조건 : 포만감0 or 체력0)
스테이지 5 이후로 전투 자동 결과, 연속타격(3회?) 기능 만들기
- 사람이 공격함 : 1. 싸움, 2. 도망가기, 3. 전투 자동 진행
- 사람 내구력 랜덤 설정, 스테이지 올라가면 증가
a. 싸움 : 1. 3회 연속공격(3회차 랜덤 데미지 주고받기) 2. 일반 공격 3. 양 팔로 때리기(쿨타임 만들기) ( 데미지 랜덤) 4. 방어하기(이번텀 공격있으면 데미지0) 5. 도망가기(아래 b.로 이동)
총을 맞았다/ 칼에 맞았다/주먹에 맞았다/ 차엿다 < 랜덤 hp 깎기
b. 도망가기: 스테이지넘버 유지, 이벤트 새로 생성 전에 console.log('길을 따라 걷는다')같은거 출력
▷ 동물의 경우 : 다양한 음식 득탬. 소소한 포만감, 행복지수 up
■울버린/ 아기곰/ 다람쥐 를 만났다. (1. 도와준다, 2. 무시한다)
얼음 깨는 과정에서 랜덤으로 얼음에 의한 상처 받음-> 행복or Hp 깎기
음식에 따라 포만감 설정하기
1. 도와주자
-얼음 내구도 랜덤 설정, 스테이지 올라가면 내구도 올리기
- 얼음을 부수자 (1. 부수기) - 얼음 내구도 데미지 랜덤, 20번 안에 끝내자
1. 부수기 선택 할 때마다 얼음 깨는 과정에서 랜덤으로 얼음에 의한 상처 받음-> 행복or Hp 깎기
얼음 깨기 성공 시 얼음 안의 내용물 나눠받음 (음식에 따라 포만감 설정하기)
2. 무시한다 : 스테이지넘버 유지, 이벤트 새로 생성 전에 console.log('길을 따라 걷는다')같은거 출력
◆ 사이드 퀘스트 : 잠자리 만들기/ 불 피우기 / 공복- 받은거 먹기?
▷불 피우기( 1. O , 2. X)
■ 나뭇가지 모으기
■ 라이터여부로 불 붙이는 방법 차이.
-라이터 사용해서 불 붙이기(1. O , 2. X)
가방에 라이터 없으면 손으로 비비기
▷음식 먹기
소지한 아이템 중에 고르기. 라면은 불피우기 쿼스트 건너뛰면 사용못함
불피우기 건너뛰면 다음 스테이지로 넘어가기 전에 행복 깎기
◆ 게임 결과
행복도 기준으로
80~100 : 즐겨운 여행을 마친 베르노. 행복하게 집으로 돌아갑니다.
40~80 : 괜찮은 여행이었어요. 이번엔 어디로 여행을 가볼까요?
10~40 : 힘들어요 ㅠㅠ 어서 집으로 돌아가고 싶네요
0~10 : 괜히 나왔어. 집으로 돌아갈레요.
기각된 시나리오
1. 산책중에 야생동물 출현(먹이 주기)
2. 몬스터 사냥
3. 동물 빗질하기
동물별로 슽케이지 나눠서
털 빗기 -> 털 줍기 -> 털로 공 or 인형 만들기 => 다음 동물
▷ 털 빗기 :
1. 머리(_%완료), 2. 꼬리 (_%완료) , 3. 등 (_%완료) , 4. 배 (_%완료)
% 낮은 순으로 ' __의 털이 뭉쳐있다' , '털이 덜 빗어졌다' 등 출력
○ 공격 미스 - 고양이가 몸을 비틀었다 : 이번 털빗기 0% (랜덤. 털 빗기 선택시 5%정도?)
○ 일반 공격 -꼬리털 빗기 2% 완료 (일반공격성공률 높게. 완료%는 1~15% 랜덤으로)
○ 공격당함 -고양이가 나를 물었다 Hp 3 감소 (넣을 필요가 있을까?)
▷ 털 모으기 :
1. 털줍기 2. 청소기 돌리기(빨리 끝내기)
1. 모으기 2. 버리기
모으기 하면 인형만들기 단계로 이동
▷동물털로 인형 만들기 :
1. 공모양을 만든다(빨리끝남) 2. 인형을 만든다
바늘로 찌른다(완성도 랜덤 %), 털을 추가한다(추가횟수 제한?)
완성시 글자티콘가져와서 동물모양이나 공모양 띄워주기
과제 조건 맞추기
있는 조건이면 ◆, 없으면 ◆
필수 기능 가이드
1. 단순 행동 패턴 2가지 구현
- 공격하기 ◆
- 도망치기 ◆
2. 플레이어 클래스에서 플레이어 스탯 (공격력, 체력 등) 관리하기 ◆
3. 간단한 전투 로직 구현
- 플레이어 공격, 몬스터 피격 ◆
4. 스테이지 클리어 시 유저 체력 회복 ◆
5. 스테이지의 진행과 비례해서 몬스터의 체력과 공격력 증가 시키기 ◆
필수 기능 공통 가이드
1. switch 분기문을 사용하여 유저의 각 행동에 대한 로직을 처리해보세요.
2. while 반복문을 사용할 때는 종료 조건이 무조건 있어야 합니다.
b. 스테이지 클리어 및 게임 종료 조건
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. 새로운 기능을 추가하는 것을 망설이지 마세요!
◆ 기억할 것
참고한 코드로 기능 구현 성공하면 어떻게 동작하는지 정리부터 합시다.
코드 비교 사이트 : https://www.diffchecker.com/
'내일배움 과제 > CH 2 Rogue like JAVASCRIPT! 과제' 카테고리의 다른 글
CH2 TIL (0) | 2024.11.14 |
---|---|
텍스트 로그라이크 코드_2 (0) | 2024.11.13 |
텍스트 로그라이크 코드_1 (0) | 2024.11.12 |
1. 개발환경 세팅 (2) | 2024.11.11 |