javascript - 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);
}
任何帮助将非常感激。祝你有美好的一天 :))
解决方案
推荐阅读
- javascript - 如何访问从模拟库返回的模拟方法
- typo3 - 用打字稿覆盖单个表单的 YAML 文件
- python - Pandas GroupBy 相似值并查看是哪个组
- vba - 从函数返回记录集时溢出 6 错误
- python - roc_auc_score y_test 和 y_score 不匹配
- c++ - 你如何将几个 long int 连接成一个 char 数组?
- python - 如何将十进制数从python发送到arduino
- java - 为什么 isInsideSecureHardware 在 Android 模拟器上返回 true?
- python - 如何在 keras 中将密集层连接到 Conv2D
- java - 有没有办法在活页夹的特定字段上添加类似值更改侦听器的东西?