【发布时间】:2017-02-17 23:40:54
【问题描述】:
我正在尝试制作一款类似于战争游戏的卡牌游戏。该游戏有两个玩家,每个玩家都有自己的牌组。
我有一个函数可以传入一个空数组,该数组是每个玩家拥有的牌组。
此数组由另一个数组(即整个牌组)中的一半项目填充。
大多数情况下,这可以正常工作,但有时,数组会有 26 个值,其他时候,一些值会重复。
我的问题是,如何阻止将重复项传递到玩家的牌组数组中?
Player = function(wonRound, currentCards, newCards) {
this.wonRound = wonRound;
this.currentCards = currentCards;
this.newCards = newCards;
}
Deck = {
suits: ["Clubs", "Diamonds", "Hearts", "Spades"],
cards: ["Ace", "King", "Queen", "Jack", "10", "9", "8", "7", "6", "5", "4", "3", "2"],
deck: [],
shuffledDeck: [],
BuildDeck: function() {
//Builds the deck
for (var suit = 0; suit < this.suits.length; suit++) {
for (var card = 0; card < this.cards.length; card++) {
this.deck.push([this.cards[card], this.suits[suit]]);
}
}
return this.deck;
},
ShuffleDeck: function() {
//Shuffles the deck
for (var card = 0; card < this.deck.length; card++) {
this.shuffledDeck.push(this.deck[Math.floor(Math.random() * this.deck.length)]);
}
return this.shuffledDeck;
},
DistributeCards: function(playerDeck) {
//Distributes half the deck to each player
for (var i = 0; i < this.shuffledDeck.length / 2; i++) {
playerDeck.push(this.shuffledDeck[i]);
}
return playerDeck;
}
}
Player1 = new Player(false, [], []);
Player2 = new Player(false, [], []);
Deck.BuildDeck();
Deck.ShuffleDeck();
Deck.DistributeCards(Player1.currentCards);
for (var i = 0; i < Player1.currentCards.length; i++) {
console.log(Player1.currentCards[i][0], Player1.currentCards[i][1], Player1.currentCards.indexOf(Player1.currentCards[i]));
}
【问题讨论】:
-
检查我的答案以将其分发给第二个玩家:)
标签: javascript arrays