【发布时间】:2015-06-21 23:44:27
【问题描述】:
我正在尝试构建一个记忆游戏,我想问一下我如何可以只重复一次就生成一个随机数。 比如1-1、2-2、3-3。我将在这里粘贴我创建的函数,并告诉我是否必须创建另一个函数只是为了创建一个从数字创建一对的条件。
// function to fulfill the table
void preencher_mesa(int matriz[4][4], int dificuldade)
{
int i, j;
int lim_col, lim_linha; // limits of the matriz
for(i=0; i<4; i++)
for(j=0; j<4; j++)
matriz[i][j] = 0;
if(dificuldade == 1)
{
lim_col = 3;
lim_linha = 2;
}
else if(dificuldade == 2)
{
lim_col = 4;
lim_linha = 2;
}
else if(dificuldade == 3)
{
lim_col = 4;
lim_linha = 4;
}
srand(time(NULL));
for(i=0;i<lim_linha;i++)
{
for(j=0; j<lim_col;j++)
{
if(dificuldade == 1) // difficulty == 1
{
matriz[i][j] = (rand()%3)+1;
}
else if(dificuldade == 2) // difficulty == 2
{
matriz[i][j] = (rand()%6)+1;
}
else if (dificuldade == 3) // difficulty == 3
{
matriz[i][j] = (rand()%8)+1;
}
}
}
mostrar_mesa(matriz); //showtable
}
【问题讨论】:
-
这一行:'if(dificuldade == 1)/dificulty ==1' 无法编译
-
此代码不处理 dificuldate 为 3 的情况
-
建议:始终使用空格进行缩进。从不制表符。这是因为,根据使用的文字处理器/编辑器(包括 stackoverflow 页面),代码的结果显示会有所不同。而空格(不应该用于代码的可变宽度字体除外)总是相同的
-
建议:在 main() 函数中尽早调用 srand() 函数,然后永远不要再调用它。
-
你的意思是你想要一个随机数函数,它连续两次返回相同的数字,然后两次返回另一个数字,等等?比如3、3、75、75、10043、10043、91、91?