내일배움캠프/TIL

개인 과제 구현하기 240822

leswing 2024. 8. 22. 20:53

개인 과제를 하면서

 

그냥 코드를 만지면 초심자 입장에서는 전혀 진행이 안되고 있다보니

 

알고리즘 강의에서 들은 방법을 기초로 삼아서

 

의사 코드를 작성한다는 느낌으로 주석과 메모를 많이 작성하는 방식으로 기조를 잡았다.

 

지금 현재 상태의 전투 코드인데

const battle = async (stage, player, monster) => {
  let logs = [];

  while (player.hp > 0) {
    console.clear();
    displayStatus(stage, player, monster);

    logs.forEach((log) => console.log(log));

    console.log(chalk.green(`\n1. 공격한다 2. 도망간다.`));
    const choice = readlineSync.question('당신의 선택은? ');

    // 플레이어의 선택에 따라 다음 행동 처리
    logs.push(chalk.green(`${choice}를 선택하셨습니다.`));

    // switch ~ case로 플레이어 몬스터 스탯 변경
    // 해당 switch는 server에 있는 switch문을 그냥 복사해서 약간만 수정
    // 안되면 말고 일단 이렇게 넣어두기
    switch (choice) {
      case '1':
        logs.push(chalk.green('몬스터를 공격합니다.'));
        // 공격 함수를 통해 player와 monster의 hp수치에 변동
        // 이게 player의 attack메서드를 통해 몬스터의 hp 변동을 어떻게 줘야할 지 모르겠음
        player.attack();
        monster.attack();
        break;
      case '2':
        logs.push(chalk.yellow('도망갑니다'));
        // 라운드가 넘어가는 상황
        // stage를 넘기는 방법도 있고
        // 몬스터의 hp를 0으로 해버릴 수 있지 않을까
        
        break;
      default:
        logs.push(chalk.red('올바른 선택을 하세요.'));
        battle(); // 다시 입력받는 상태로 만들기
        // 이것도 뭐가 필요한지는 별도로 생각
    }
  }
};

각 케이스에 따라 어떤 방식으로 작동했으면 좋겠는지(아직 의사 코드라기에도 부족함)

 

를 주로 적었고 attack() 메서드에서 어떤 방법으로 작성을 하면 전투가 진행될 지를 주석을 달아보고 있다.

 

일단 오늘은 이렇게 진행을 해봤고 이걸 토대로 내일 구글링하던 질문을 하던 해서

 

과제를 확실하게 코드를 쓰는 느낌으로 진행해보고 싶다.

 

 

 

 

 

'내일배움캠프 > TIL' 카테고리의 다른 글

Node.js 숙련주차 240911  (0) 2024.09.11
오늘 대체 뭐한거지 240821  (0) 2024.08.21
JS 종합 문법 4주차 240819  (0) 2024.08.19
JS 문법 종합 3주차 240816  (0) 2024.08.16
JS 문법 종합 2주차 240814  (0) 2024.08.14