【问题标题】:JavaScript Blackjack Game Coding QuestionsJavaScript 二十一点游戏编码问题
【发布时间】:2015-08-02 14:55:56
【问题描述】:

我班上的一项作业要求我编写一个非常基本的 javascript 二十一点游戏。庄家的手牌会自动生成在 17 到 21 之间的值,因此只有玩家必须决定要做什么。

我为庄家的手牌创建了一个随机生成器,并根据分配的要求创建了一个生成值 1-13(Ace-King)的随机生成器。但是值 11 和 12 和 13 对应于面牌(Jack/Queen/King),它们显然都具有相同的值 10。但是如何将值 11-13 重新分配为 10?

我也很难弄清楚如何为玩家编写决策结构。基本上是在寻找能给我以下输出的东西:

你想要一张卡片吗? (玩家输入答案) 您收到了 7。您想要另一张卡吗? (玩家输入答案) 你得到了一个国王。你的总数是 17。你想要另一张卡片吗?

等等……

我不是在寻找任何人来为我编写完整的代码,只是在寻找一个开始,因为我什至很难弄清楚从哪里开始做这一切。作业的设计结构非常开放,但它应该保持在 JavaScript 可能的最简单/基本级别。将不胜感激任何帮助。谢谢!

【问题讨论】:

  • 我会为决策结构使用按钮和文本字段。 BlackJack 对另一张牌使用“twist”,如果您不想要另一张牌,则使用“stick”。
  • 如果您需要特定帮助,请编辑您的帖子以显示您的代码

标签: javascript blackjack


【解决方案1】:
  1. 如何将值 11-13 重新分配为 10?
  1. 使用 if 语句检查数字是否在 11-13 之间并将其分配给 10
  1. 基本上是在寻找能给我以下输出的东西。
  1. 您的结构看起来像一个 while 循环可以工作。 (当玩家想要一张牌时,继续将它们发给他/她并将其添加到他们的总数中。如果他们失败,则结束 while 循环;如果选择不拿另一张牌,则退出 while 循环并比较谁的得分更高. 庄家或玩家。

祝你任务顺利。

编辑:

 if(playerCard >=10){
    playerCard = 10;
 }

这里不需要 else,因为如果 playerCard

【讨论】:

  • 这样的? if (playerCard >=10) { playerCard = 10 } else.....?
  • 只要 playerCard 被定义并且是一个整数,我觉得这很好
  • 编辑我的原始帖子?由于某种原因,无法在回复中使用四个空格代码。
【解决方案2】:

关于卡片值,我建议将卡片存储为 object 以保存它们的值和类型。

var cards = [ { name: 'Ace', value: 1 },
              { name: '2', value: 2 },
              { name: '3', value: 3 },
              { name: '4', value: 4 },
              { name: '5', value: 5 },
              { name: '6', value: 6 },
              { name: '7', value: 7 },
              { name: '8', value: 8 },
              { name: '9', value: 9 },
              { name: '10', value: 10 },
              { name: 'Jack', value: 11 },
              { name: 'Queen', value: 12 },
              { name: 'King', value: 13 }
            ];

然后您可以通过以下方式访问 Jack

var name = card[9].name;
var value = card[9].value;

对于 ace 为 1 或 11 的情况,我建议包含另一个名为 alt 值的字段。

例如。

{ name: 'Ace', value: 1, altValue = 11 }

附加逻辑 如果游戏是基于一副牌的,我会映射每张可能的牌并将其存储在与套装一起的牌数组中。

例如。

var cards = [ { name: 'Ace', value: 1 altValue: 11, suit: 'Hearts' },
              { name: '2', value: 2, suit: 'Hearts' }...

然后我会通过从卡片数组中移除一张卡片来从游戏中移除它。

【讨论】:

    猜你喜欢
    • 2011-02-04
    • 2016-06-21
    • 2012-10-16
    • 2013-10-08
    • 2023-03-21
    • 2020-05-18
    • 1970-01-01
    • 2015-06-18
    • 1970-01-01
    相关资源
    最近更新 更多