【发布时间】:2021-11-07 22:12:51
【问题描述】:
我只是想知道这段代码是如何工作的,我对编码很陌生,我想知道它是如何工作的。
for (int x = 0; x < 53; x++)
{
int h = rand() % 52;
int j = rand() % 52;
// Randomize/shuffle deck
Deck[52].face = Deck[h].face;
Deck[52].suit = Deck[h].suit;
Deck[52].value = Deck[h].value;
Deck[h].face = Deck[j].face;
Deck[h].suit = Deck[j].suit;
Deck[h].value = Deck[j].value;
Deck[j].face = Deck[52].face;
Deck[j].suit = Deck[52].suit;
Deck[j].value = Deck[52].value;
}
【问题讨论】:
-
在后台没有发生任何事情。代码中的一切都很清楚。看来您需要了解一副牌中有多少张卡片,以及如何使用调试器逐步执行代码以了解其工作原理。
-
顺便说一句,这是一个非常糟糕的洗牌算法。
-
请标记您的编程语言。我认为是 C。
-
Imo 这就是“写出手写体”导致代码难以理解的地方。
std::swap(Deck[h], Deck[j]);把噪音消减成名副其实的东西