오늘의 목표
✔️ 알고리즘 풀이 세션 듣기
✔️ 개인과제 발제 듣기
⏱️ 오늘의 일정
9:00 ~ 11:00 - 개인과제 발제, 알고리즘 풀이 세션
12:00 ~ 21:00 - 개인 과제 풀이
📜 개인과제 발제, 알고리즘 풀이 세션
9:00 ~ 11:00 - 개인과제 발제, 알고리즘 풀이 세션
어제 예고한대로 개인과제에 관한 설명과 알고리즘 풀이 세션이 있었다.

개인과제는 텍스트로 만드는 로그라이크 게임이였는데, 시작 화면은 위와 같다.
뼈대 코드는 제공되어서 그나마 편하게 구현할 수 있을 것 같다.
기간은 일주일로 충분히 주어진듯 하고, 필수 구현 목록과 도전 목록으로 구분되어 평가를 받는걸로 설명 받았다.
도전 목록까지 구현하고 제출하면 Node.js 강의를 지급받는다고 하는데, 이번주 안에 제출하는걸로 목표를 삼고
미리 Node.js 강의를 수강할 수 있도록 해야겠다.
알고리즘 풀이세션은 총 10문제가 주어졌는데, 아쉽게도 풀이는 총 4문제에 그쳤다.
10문제 모두 비교해보고 싶었는데 아쉽게 됐다. ㅠㅠ
원래는 여기에 코드를 다 올리려고 했으나, 난잡해 보일거 같아서 따로 글로 정리할 생각이다.
📜 개인 과제 풀이
9:00 ~ 11:00 - 개인 과제 풀이
기본 적인 뼈대가 제공되어서, 오늘은 플레이어의 공격과 몬스터의 공격까지 구현했다.
플레이어와 몬스터의 공통점이 많아서 Creature ( 생명체 ) 클래스를 만들어 부모로 삼았다.
class Creature {
constructor() {
this.name = null;
this.weapon = null;
this.inventory = [];
}
equipWeapon(weaponType) {
switch (weaponType) {
case '1':
this.weapon = new MaceWeapon(this);
break;
case '2':
this.weapon = new SwordWeapon(this);
break;
case '3':
this.weapon = new TwohandSwordWeapon(this);
break;
}
}
attack(target) {
if (this.weapon != null) {
this.weapon.WeaponAttack(target);
}
}
OnDamage(damagePoint) {
if (this.hp - damagePoint < 0) {
this.hp = 0;
}
else {
this.hp -= damagePoint;
}
}
}
플레이어의 공격과 몬스터 공격은 무기를 선택해 공격하는 방식으로 우선 구현했다.
플레이어는 게임 입장 전에 무기를 3가지 ( 둔기, 검, 대검 ) 중에 선택해 장착하고 공격을 하도록 했고,
몬스터는 공격을 할때마다 랜덤하게 3가지 무기 중 골라서 공격하는 방식으로 구현했다.
class Monster extends Creature {
constructor() {
super();
this.name = "자바스크립트";
this.hp = 1000;
this.defensePoint = 0;
this.criticalPoint = 0.6;
this.inventory.push(new MaceWeapon(this));
this.inventory.push(new SwordWeapon(this));
this.inventory.push(new TwohandSwordWeapon(this));
}
attack(target) {
let weaponChoiceNum = rand(0, 2);
if (this.inventory.length > 0) {
if (this.inventory[weaponChoiceNum] != null) {
this.weapon = this.inventory[weaponChoiceNum];
this.weapon.WeaponAttack(target);
}
}
}
}
내일은 스테이지 클리어 조건과 랜덤하게 스테이지를 클리어 할때마다 추가 능력치를 부여할 생각이다.
🌙 하루를 마치며
오늘 드디어 개인과제가 시작되었다.
텍스트로 구현하는 게임은 경험이 좀 있어서 그런지 어떻게 구현할 지 생각이 바로바로 들었다.
자바스크립트로는 처음이기에 중간중간 막히는 부분은 튜터님이나 구글에 도움을 받아서
앞서 언급한대로 이번주 안에는 완성하는 것을 목표로 삼아야겠다.
'내일배움캠프' 카테고리의 다른 글
[내일배움캠프][TIL] 14일차 - 개인과제 (0) | 2024.08.23 |
---|---|
[내일배움캠프][TIL] 13 일차 (0) | 2024.08.23 |
[내일배움캠프][TIL] 11일차 - 알고리즘 (0) | 2024.08.20 |
[내일배움캠프][TIL] 10 일차 - 알고리즘 (0) | 2024.08.19 |
[내일배움캠프][TIL] 9일차 (0) | 2024.08.16 |