我正在尝试设置卡片匹配游戏。我有一个可以容纳16张独特牌的矢量。我试图让它随机化卡片向量,但只选择前12张牌并在棋盘上创建一个4x6网格,总共24对匹配。我已经填充了卡片矢量,但我不确定如何创建网格,因此卡片在网格内间隔开。而且我不确定如何将卡片矢量改组,因此每次都不同。另外,我使用的是Cocos2d-x 3.2。谢谢你的任何建议。
std::vector<Sprite*> cards;
std::vector<std::string> cardNames = { "0.png", "1.png", "2.png", "3.png", "4.png", "5.png", "6.png", "7.png", "8.png", "9.png", "10.png", "11.png", "12.png", "13.png", "14.png", "15.png" };
for (int n = 0; n < cardNames.size(); n++)
{
auto sprite = Sprite::create(cardNames.at(n));
sprite->setPosition(cocos2d::Point((50 * (n + 1)), 20));
sprite->setTag(n);
cards.push_back(sprite);
addChild(sprite);
}
答案 0 :(得分:0)
for (int n = 0; n <= 15; n++)
// ^^^^^^^
对于我来说,对于传统的惯例来说,看起来很不对劲。
为什么不简单
for (int n = 0; n < cardNames.size(); n++)
代替?
关于如何随机播放,请参阅std::shuffle
et al。