首页 > 解决方案 > Node.js 导出的模块文件 - 在不同的变量上使用拼接后,变量会不断更新

问题描述

我对 node.js 有点陌生,并试图创建一个纸牌游戏,这将是多人游戏。这是问题所在。我有 2 个文件:

mainCardSelector.js app.js

现在基本上我有一个名为 startGame 的函数,它将使用“mainCardSelector.js”中的方法从存储在对象“roomCards”中的卡片组中随机抽取一张卡片。现在,一旦抽出卡片,我就会运行一个拼接命令来寻找正确的房间,然后从牌组中取出该特定房间的卡片。现在的问题是,虽然卡片确实被移除了,但下次将卡片分配到房间时,之前从卡片组中删除的卡片会从新卡片组中丢失。这里有一些代码可以透视它。

“MainCardSelector.js”

//Storage for all cards
const cards = ['2C', '2D', '2H', '2S', '3C', '3D', '3H', '3S',
'4C', '4D', '4H', '4S', '5C', '5D', '5H', '5S',
'6C', '6D', '6H', '6S', '7C', '7D', '7H', '7S',
'8C', '8D', '8H', '8S', '9C', '9D', '9H', '9S',
'10C', '10D', '10H', '10S',
'AC', 'AD', 'AH', 'AS',
'JC', 'JD', 'JH', 'JS',
'KC', 'KD', 'KH', 'KS',
'QC', 'QD', 'QH', 'QS',
];

function selectMainCard(){
    let randomNumber = Math.floor(Math.random() * cards.length);
    let mainCard     = cards[randomNumber];
    return mainCard;
}

module.exports.selectMainCard =  selectMainCard;

“应用程序.js”

roomCards = []
 startGame(_socket, data){
                //Session vars for various rooms
                const mainCard          = mainCardSelector.selectMainCard();
                const deckCards         = mainCardSelector.deckCards;
     
                roomCards.push({roomId:data.roomId, cards:deckCards});
                console.log('Distributed cards **** ' + deckCards.length);
                //Starting the game 
                console.log("game has been started by " + data.username);
                //Removing the card that got used
                 const sessionCards = roomCards.indexOf(roomCards.find(x => parseInt(x.roomId) === parseInt(data.roomId)));
                 console.log("Session array id : ", sessionCards)
                 const excludedCard = roomCards[sessionCards].cards.indexOf(mainCard);
                 roomCards[sessionCards].cards.splice(excludedCard,1);
                 console.log(roomCards[sessionCards].cards);
                 console.log(roomCards[sessionCards].cards.length);
        }

任何帮助将非常感激。祝你有美好的一天 :))

标签: javascriptnode.jsobjectvariables

解决方案


推荐阅读