【发布时间】:2022-01-26 01:49:56
【问题描述】:
黑桃1,方块1,梅花1,红桃1,黑桃2,方块2,梅花2,红桃2,黑桃3,方块3,梅花3,红桃3 ,黑桃4,方块4,梅花4,红桃4,黑桃5,方块5,梅花5,红桃5,黑桃6,方块6,梅花6,红桃6,7黑桃,方块7,梅花7,红桃7,黑桃8,方块8,梅花8,红桃8,黑桃9,方块9,梅花9,红桃9,黑桃10 ,10 个方块,10 个梅花,10 个红桃
,,,
[这是程序返回的内容]
我正在尝试用 JavaScript 编写一个允许某人玩扑克的程序。我在可汗学院使用 ProcessingJS 终端。以下是我到目前为止的完整程序。它应该做的是创建一个名为 deck 的数组,其中包含一副牌中所有牌的名称(不包括面牌)。该程序的那部分有效。下一部分尝试创建一个名为 current 的新数组,它是 deck 的精确副本。然后它尝试打印出当前的,并且它成功地打印了。
最后一个 for 循环是导致问题的原因。它试图从当前的牌中随机抽取一张牌,并将其复制到另一个名为 player 的数组中,该数组应该是玩家的手牌。然后它会尝试从当前阵列中移除该卡。
但是,当它试图打印出数组播放器时,它打印的只是三个逗号。我不知道问题是什么,并且我查看了许多谈论推送和拼接的网站。我真的不知道出了什么问题。
再次,我希望程序显示玩家的手。感谢您的帮助。
var deck = [];
var current = [];
var enemy = [];
var player = [];
var suits = ['spades', 'diamonds', 'clubs', 'hearts'];
for (var i = 1; i < 11; i++) {
for (var x = 0; x < 4; x++) {
if (i <= 10) {
deck.push(i + ' of ' + suits[x]);
}
}
}
for (var c = 0; c < 40; c++) {
current[c] = deck[c];
}
println(current);
var y;
for (var a = 0; a < 4; a++) {
y = random(0, (current.length - 1));
player.push(current[y]);
current.splice(y);
}
println(player);
【问题讨论】:
标签: javascript arrays push splice