2017-01-16 8 views
1

私はNodeJSのテキストベースのブラックジャックゲームを少し作っています。私はこの配列を持っています:特定の番号を手紙に割り当てる

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

ゲームはこの配列から乱数を取り出して表示します。しかし、文字であなたは数えることができません。ブラックジャックでは、 "J"、 "Q"、 "K"は10です。Aは1 OR 11です。

私はまだそれをユーザーに表示しますが、この10(または1/11)をフェイスカードに割り当てることはできますが、手紙を表示するにはどうすればいいですか?

+2

'var rank = {a:1,2:2,3:3、...、j:10、q:10、k:10};' 次に、a A. –

+1

の処理で例外があります。または、ロジックの内部にある実際の番号を使用しますが、何かを表示したい場合は、その番号の1つがマップに一致する場合はA、J、QまたはKに変更しますまたはスイッチ。それで、あなたがゲーム処理をしているときではなく、あなたが表示するときだけ、翻訳を行う必要があります。 – jfriend00

+0

初心者のプログラマーが文字列にあまりにも頼るのは一般的です。文字列は人のためのもので、コンピュータは数字を使用します。文字列を使ってカードを表現し、数字を調べるのではなく、数字を使ってカードを表現し、人間と話すために必要なときに文字列を調べます。前者の場合、ハッシュオブジェクトが必要です(後者の場合は配列)。世界のほとんどすべてのプログラミング言語で、後者ははるかに高速になります(JavaScriptは例外です - その配列はちょうど偽装されたハッシュです)。 –

答えて

1

私が考えている最初の方法は、文字列の配列ではなくオブジェクトの配列を定義することです。このデータ構造により

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

あなたはカウントを取得し、また、表示したいものは何でも表示するように数学を行うことができます。

関連する問題