【问题标题】:Assign specific number to letter为字母分配特定数字
【发布时间】:2017-05-31 16:17:23
【问题描述】:

我正在使用 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 计数。那么如何将这 10(或 1/11)分配给面卡,但仍显示字母。

【问题讨论】:

  • 尝试使用像这样的字典:var ranks = {a:1,2:2,3:3,...,j:10,q:10,k:10}; 然后,处理 A 的过程中出现异常。
  • 或者,只使用逻辑内部的实际数字,但是当您想要显示某些内容时,如果它与地图或开关中的一个数字匹配,请将其更改为 A、J、Q 或 K .然后,您唯一需要进行翻译的时间是在显示时,而不是在进行游戏处理时。
  • 对于初学者来说,过度依赖字符串是很常见的。字符串用于人——计算机使用数字。与其使用字符串表示卡片然后查找数字,不如使用数字表示卡片并在需要与人类交谈时查找字符串。在前一种情况下,您需要一个哈希对象,在后一种情况下,您需要一个数组。在世界上几乎所有的编程语言中,后者都会快得多(JavaScript 是一个例外——它的数组只是伪装的哈希)。

标签: node.js numbers blackjack letter


【解决方案1】:

我想到的第一种方法是定义一个对象数组而不是字符串数组。

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

使用此数据结构,您可以进行数学运算以获取计数并显示您想要显示的任何内容。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多