Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/428.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
洗牌/显示卡到21点游戏(Javascript)_Javascript_Loops_Blackjack - Fatal编程技术网

洗牌/显示卡到21点游戏(Javascript)

洗牌/显示卡到21点游戏(Javascript),javascript,loops,blackjack,Javascript,Loops,Blackjack,你知道为什么“card2”会随机将一个对象放入数组中吗?它应该始终将对象放入数组中 const卡=[ { 卡片:“🂡”, 值:“1” }, { 卡片:“🂢”, 值:“2” }, { 卡片:“🂣”, 值:“3” }, { 卡片:“🂤”, 值:“4” }, { 卡片:“🂥”, 值:“5” }, { 卡片:“🂦”, 值:“6” }, { 卡片:“🂧”, 值:“7” }, { 卡片:“🂨”,

你知道为什么“card2”会随机将一个对象放入数组中吗?它应该始终将对象放入数组中

const卡=[
{
卡片:“🂡”,
值:“1”
},
{
卡片:“🂢”,
值:“2”
},
{
卡片:“🂣”,
值:“3”
},
{
卡片:“🂤”,
值:“4”
},
{
卡片:“🂥”,
值:“5”
},
{
卡片:“🂦”,
值:“6”
},
{
卡片:“🂧”,
值:“7”
},
{
卡片:“🂨”,
值:“8”
},
{
卡片:“🂩”,
值:“9”
},
{
卡片:“🂪”,
值:“10”
}
];
var deck=[];
shuffleDeck=()=>{
var tempDeck=[…卡片];
var card1=[0];
var card2=[0];
而(0!==tempDeck.length){
var randomIndex=Math.floor(Math.random()*tempDeck.length);
card1=临时拼接(随机索引,1);
card2=临时拼接(随机索引,1);
卡片组=[…卡片1,…卡片2];
}
}
shuffleDeck();

对于(var i=0;i我想问题应该更清楚……但是运行您的should并认为代码应该洗牌牌组,我想您的错误在那一行
deck=[…card1,…card2]因为你在一个循环中,你一次只在你的新牌组中放入两张牌,所以在下一次交互中,他们会忽略最后的值并将其覆盖,你应该使用
牌组。按
在牌组中添加新牌

const卡=[
{
卡片:“🂡”,
值:“1”
},
{
卡片:“🂢”,
值:“2”
},
{
卡片:“🂣”,
值:“3”
},
{
卡片:“🂤”,
值:“4”
},
{
卡片:“🂥”,
值:“5”
},
{
卡片:“🂦”,
值:“6”
},
{
卡片:“🂧”,
值:“7”
},
{
卡片:“🂨”,
值:“8”
},
{
卡片:“🂩”,
值:“9”
},
{
卡片:“🂪”,
值:“10”
}
];
var deck=[];
shuffleDeck=()=>{
var tempDeck=[…卡片];
var card1=[0];
var card2=[0];
而(0!==tempDeck.length){
var randomIndex=Math.floor(Math.random()*tempDeck.length);
card1=临时拼接(随机索引,1);
card2=临时拼接(随机索引,1);
甲板。推动(…卡片1,…卡片2);
}
}
shuffleDeck();
对于(变量i=0;i}
您的代码中有两件事需要解决:

  • while
    中,您只需设置
    randominindex
    一次,并将其用于
    card1
    card2
    ,但当您设置
    card1
    时,它使用
    splice
    并删除该索引,因此card2未定义。
    修复
    在设置
    card1
    后再次设置
    randominindex


  • for
    循环中,您需要
    i
    而不是
    我无法理解主要问题,您能更清楚吗?@DiegoVinícius如果您多次运行代码段,您将看到数组“deck”将显示其内容(card1和card2)但它不会总是显示卡片2。如果你只想显示卡片1,你应该在上面添加一些条件,他们会从你的临时牌堆中随机获得2张卡片,并且总是试图在实际牌堆中添加2张卡片,但有时会得到错误的索引,只需添加一张即可