2017-01-16 71 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或11.

我仍然希望它向用戶顯示字母,但它必須以10計數。我如何將這10(或1/11)分配給面卡,但仍然顯示該字母。

+2

嘗試使用如下所示的字典: var rows = {a:1,2:2,3:3,...,j:10,q:10,k:10};' 然後,在處理A. –

+1

的過程中有一個例外,或者只是使用邏輯內部的實際數字,但是如果要顯示某些內容,請將其更改爲A,J,Q或K(如果它與地圖中的某個數字匹配)或一個開關。那麼,你唯一需要做翻譯的時候是你展示的時候,而不是當你正在做遊戲處理時。 – jfriend00

+0

開始程序員過分依賴字符串很常見。字符串是爲人們 - 計算機使用數字。與其使用字符串表示卡片然後查找數字,不如使用數字表示卡片,並在需要與人類交談時查找字符串。在前一種情況下,你需要一個散列對象,在後一種情況下,需要一個數組。在世界上幾乎所有的編程語言中,後者會更快(JavaScript是個例外 - 它的數組只是變相的哈希)。 –

回答

1

我想到的第一種方法是定義一個對象數組而不是一個字符串數組。

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

有了這個數據結構,你可以做你的數學計算,並顯示任何你想顯示。

相關問題