【发布时间】: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