【发布时间】:2021-01-18 17:36:27
【问题描述】:
我正在使用 Typescript 制作纸牌游戏,但我在抽牌时遇到问题。每个玩家必须始终拥有 8 张牌,并在抽牌时将牌从牌库中取出。
type PlayerObject = {
cards: Card[];
...
};
class Game {
players: PlayerObject[];
red: Card[];
NULL_PLAYER = {
...
cards: [],
...
};
...
addPlayer(socket, name, id) {
this.players.push({...Game.NULL_PLAYER, name, socket, id });
}
...
start() {
for (const player of this.players) {
this.giveCards(player);
}
}
// When the game starts
giveCards(player: PlayerObject) {
const n = 8 - player.cards.length;
for (let i = 0; i < 8 - cardsN; i++) {
const cardIndex = Math.floor(Math.random() * this.red.length);
player.cards.push(this.red.splice(cardIndex, 1)[0]); // I'll reference this line
}
}
}
当player.cards.push(...)被执行时,它会推送给每个玩家。所以当其他玩家平局时,n 始终为 0 并跳过它。
结果:每个玩家都拥有相同的手牌。 预期结果:每个玩家都有不同的手牌。
【问题讨论】:
-
请明确说明您的问题是什么。 IE;预期的行为是什么,而不仅仅是你得到的行为。
标签: arrays typescript