Project_xxx
[Project_] JSROUGE - 3
wakelight23
2024. 11. 13. 21:32
JavaScript로 roguelike 장르의 게임 만들기 - 3
● 포커 게임을 만들고 족보가 필요한데 어떻게 표현해야 할까
→ 족보를 표현하는데는 다양한 방법이 있지만 '객체 리터럴'을 사용했다
● 우선 객체란?
// 객체 기본적인 형태
const obj = {
name : 'Lee', // key:value
age : 21 // key:value
};
- 'name', 'age' = 프로퍼티(property)
- obj 라는 객체 안에 있는 왼쪽 = key, 오른쪽 = value
// 객체에 함수가 존재할 경우
const obj2 = {
num : 5, // 여기는 Property
decrese : function () { // 함수일 경우에는 Method
this.num--;
}
};
- 프로퍼티(property) : 객체의 상태를 나타내는 값
- 메서드(method) : 프로퍼티를 참조하고 조작할 수 있는 조작
- 참고 사이트 ▼
● 객체 리터럴 (Object literal)
- literal : 사람이 이해할 수 있는 문자나 약속된 기호를 사용해 값을 생성하는 표기법
const rankings = [
{
name: '로얄 스트레이트 플러시',
description: '같은 무늬의 A, K, Q, J, 10',
example: [
{ suit: '♠', value: '10' },
{ suit: '♠', value: 'J' },
{ suit: '♠', value: 'Q' },
{ suit: '♠', value: 'K' },
{ suit: '♠', value: 'A' },
],
multiplier: 16.0,
}, ...
- 객체 리터럴을 사용해서 포커 족보를 표현
- name - 포커 패 명칭
- description - 상세설명
- example - 포커를 표현하는데 시각적으로 도움을 주는 배열
- multiplier - 포커 패에 따른 곱 계산
// rankings에 저장한 객체 출력
// 여러 개를 출력해야 함으로 forEach 사용
rankings.forEach((ranking) => {
console.log(chalk.cyan(`${ranking.name} (x${ranking.multiplier})`));
console.log(chalk.white(ranking.description));
console.log(displayHand(ranking.example));
console.log();
});
- 결과물 ▼

※ 포커 그림을 텍스트로 표현한 코드는 따로 있음.