[英]HTML & Javascript blackjack game will not display winners and hands
[英]Shuffle / display cards to a blackjack game (Javascript)
你知道为什么“card2”会随机将一个对象放入数组中吗? 它应该始终将一个对象放入数组中。
const cards=[ { card: '🂡', value: '1' }, { card: '🂢', value: '2' }, { card: '🂣', value: '3' }, { card: '🂤', value: '4' }, { card: '🂥', value: '5' }, { card: '🂦', value: '6' }, { card: '🂧', value: '7' }, { card: '🂨', value: '8' }, { card: '🂩', value: '9' }, { card: '🂪', value: '10' } ]; var deck = []; shuffleDeck = () =>{ var tempDeck = [...cards]; var card1 = [0]; var card2 = [0]; while(0 !== tempDeck.length) { var randomIndex = Math.floor(Math.random() * tempDeck.length); card1 = tempDeck.splice(randomIndex, 1); card2 = tempDeck.splice(randomIndex, 1); deck = [...card1, ...card2]; } } shuffleDeck(); for(var i = 0; i <= deck.length; i++){ console.log(deck[i]); }
我想这个问题应该更清楚......但是运行你的应该并认为代码应该洗牌我猜你的错误是在那行deck = [...card1, ...card2];
因为你在一个循环中,你只是在你的新牌组中放了 2 张牌,所以在下一次交互中他们会忽略最后的值并覆盖它,你应该使用deck.push
在牌deck.push
中添加新牌。
const cards=[ { card: '🂡', value: '1' }, { card: '🂢', value: '2' }, { card: '🂣', value: '3' }, { card: '🂤', value: '4' }, { card: '🂥', value: '5' }, { card: '🂦', value: '6' }, { card: '🂧', value: '7' }, { card: '🂨', value: '8' }, { card: '🂩', value: '9' }, { card: '🂪', value: '10' } ]; var deck = []; shuffleDeck = () => { var tempDeck = [...cards]; var card1 = [0]; var card2 = [0]; while(0 !== tempDeck.length) { var randomIndex = Math.floor(Math.random() * tempDeck.length); card1 = tempDeck.splice(randomIndex, 1); card2 = tempDeck.splice(randomIndex, 1); deck.push(...card1, ...card2); } } shuffleDeck(); for(var i = 0; i < deck.length; i++){ console.log(deck[i]); }
您需要在代码中修复两件事:
在while
设置randomIndex
了一次,并且用它来botth, card1
和card2
,但是当你设置card1
,它使用splice
和删除索引,所以卡2是不确定的。
FIX:设置randomIndex
设置后再次card1
在for
循环中,你需要i < deck.length
而不是i <= deck.length
,这将避免未定义的值,因为当i
等于deck.length
时它将是2,而deck 没有索引2,它只有索引 0 和 1。
const cards = [{card: '🂡', value: '1'}, {card: '🂢', value: '2'}, {card: '🂣', value: '3'}, {card: '🂤', value: '4'}, {card: '🂥', value: '5'}, {card: '🂦', value: '6'}, {card: '🂧', value: '7'}, {card: '🂨', value: '8'}, {card: '🂩', value: '9'}, {card: '🂪', value: '10'}]; var deck = []; shuffleDeck = () =>{ var tempDeck = [...cards]; var card1 = [0]; var card2 = [0]; while(0 !== tempDeck.length) { var randomIndex = Math.floor(Math.random() * tempDeck.length); card1 = tempDeck.splice(randomIndex, 1); randomIndex = Math.floor(Math.random() * tempDeck.length); card2 = tempDeck.splice(randomIndex, 1); deck = [...card1, ...card2]; } } shuffleDeck(); for(var i = 0; i < deck.length; i++){ console.log(deck[i]); }
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.