2017-01-16 1 views
1

저는 NodeJS에서 텍스트 기반 블랙 잭 게임을하고 있습니다. 나는이 배열을 가지고있다 :편지에 특정 번호를 할당하십시오.

const ranks = Array('A', '2', '3', '4', '5', '6', '7', '8', '9', '10', 'J', 'Q', 'K'); 

게임은이 배열에서 임의의 숫자를 골라서 표시한다. 그러나 편지로 당신은 셀 수 없습니다. Blackjack에서 "J", "Q"및 "K"는 10입니다. A는 1 또는 11입니다.

나는 여전히 사용자에게 편지를 표시하고 싶지만 10으로 계산해야합니다. 이 10 (또는 1/11)을 페이스 카드에 어떻게 할당 할 수 있습니까? 그러나 여전히 편지를 표시하십시오.

+2

'var ranks = {a : 1,2 : 2,3 : 3, ..., j : 10, q : 10, k : 10}; ' 다음과 같은 사전을 사용하십시오. A. –

+1

을 처리하는 프로세스의 예외 또는 논리에 내부의 실제 숫자를 사용하지만 무언가를 표시하려면 해당 숫자 중 하나와 맵이 일치하면 A, J, Q 또는 K로 변경하십시오 또는 스위치. 그런 다음, 번역을 수행해야하는 유일한 시간은 게임 처리를 할 때가 아니라 디스플레이 할 때입니다. – jfriend00

+0

초보 프로그래머가 문자열에 너무 많이 의존하는 것은 일반적입니다. 문자열은 사람들을위한 것이며 컴퓨터는 숫자를 사용합니다. 문자열을 사용하여 카드를 표현한 다음 번호를 찾는 대신 숫자를 사용하여 카드를 나타내고 인간과 대화 할 때 필요할 때 문자열을 찾습니다. 전자의 경우에는 해시 객체 (후자의 경우에는 배열)가 필요합니다. 세계의 거의 모든 프로그래밍 언어에서, 후자는 훨씬 빨라질 것입니다 (자바 스크립트는 예외입니다 - 배열은 단지 위장에 해시입니다). –

답변

1

내가 생각하는 첫 번째 방법은 String 배열이 아닌 개체 배열을 정의하는 것입니다.

const ranks = [ 
{ 
    actualValue: 11, 
    faceValue: 'A' 
}, 
{ 
    actualValue: 2, 
    faceValue: '2' 
}, 
... 
]; 

이 데이터 구조를 사용하면 수학을 통해 계산을하고 표시 할 항목을 표시 할 수 있습니다.

관련 문제