오늘 과제에서 구현한 기능들
실시간 플레이어와 몬스터의 스테이터스 로그 출력
function displayStatus(stage, player, monster) {
console.log(chalk.magentaBright(`\n=== Current Status ===`));
console.log(
chalk.cyanBright(`| Stage: ${stage} `) +
chalk.blueBright(
`| 플레이어 HP: ${player.hp} /${player.maxHp} 플레이어 공격력: ${Math.round(player.atkPower * 10) / 10}`,
) +
chalk.redBright(
`| 몬스터 HP: ${monster.hp} / ${monster.maxHp} | 몬스터 공격력: ${monster.MonsterAtkPower}`,
),
);
console.log(chalk.magentaBright(`=====================\n`));
}
const battle = async (stage, player, monster) => {
let logs = [];
스테이지가 진행될 때마다 플레이어와 몬스터의 스탯증가
class Monster {
constructor(stage) {
this.hp = 100;
this.maxHp = 100;
this.MonsterAtkPower = 8;
this.incStates(stage); // 스테이지에 상승에 따른 몬스터 강화
}
incStates(stage) {
this.hp += (stage - 1) * 15; // 스테이지마다 HP 증가
this.maxHp += (stage - 1) * 15; // 최대 HP 증가
this.MonsterAtkPower += (stage - 1) * 10; // 공격력 증가
}
let playerIncHp = 30;
let playerIncAtk = 7;
let playerIncPos = 5;
player.hp += playerIncHp; // 플레이어 HP 증가
player.maxHp += playerIncHp;
player.atkPower += playerIncAtk; // 플레이어 공격력 증가
player.potion += playerIncPos;
// 스테이지 클리어 및 게임 종료 조건
let monsterIncHp = 15;
let monsterIncAtk = 10;
console.clear();
readlineSync.keyInPause(`몬스터를 처치했습니다!\n${chalk.yellow(`플레이어의 체력이 ${playerIncHp}, 공격력이 ${playerIncAtk}만큼 증가했습니다!`)}\n${chalk.red(`새로운 몬스터의 체력이 ${monsterIncHp}, 공격력이 ${monsterIncAtk}만큼 강화됩니다!!`)} `);
stage++;
}
15일 에는 다양한 도전기능들을 구현해 볼 생각이다
'내일배움캠프 TIL' 카테고리의 다른 글
본캠프 11/18 TIL (0) | 2024.11.20 |
---|---|
본캠프 11/15 TIL (0) | 2024.11.15 |
본캠프 11/13 TIL (0) | 2024.11.13 |
본캠프 11/12 TIL (0) | 2024.11.12 |
본캠프 11/05 TIL (0) | 2024.11.05 |