我不知道这是怎么回事。我正在做的一个项目是2048游戏。我正在用c语言编程。问题是,我最初声明的分数是0,还没有实现评分系统,但它随机变为4?(我已经打印出来了)
以下是我的部分代码:
for(;;){
printf("Score: %d",user_score);
rand_i=rand()%(board_size+1);
rand_j=rand()%(board_size+1);
while(M[rand_i][rand_j]!=0){
rand_i=rand()%(board_size+1);
rand_j=rand()%(board_size+1);
}
rand_num= rand()%2*2+2;
M[rand_i][rand_j]=(rand_num);
for(i=0;i<board_size;i++){
printf("\n");
for(j=0;j<board_size;j++){
if (M[i][j]==0){
printf("[ ]");
}
else printf("[%4d]",M[i][j]);
}
}
printf("\n(w=up, a=left, s=down, d=right, q=quit) > ");
scanf("%c%c",&user_input);
//system("clear");
switch(user_input){
case 'w':
for(j=0;j<board_size;j++){
for(i=0;i<board_size;i++){
if(M[i][j]!=0 && i!=0){
for(k=i;k>0;k--){
if(M[k-1][j]==0){
M[k-1][j]=M[k][j];
M[k][j]=0;
最佳答案
我想你写的不是数组M。
rand_i=rand()%(board_size+1);
rand_j=rand()%(board_size+1);
如果M声明为int M[board_size][board_size],则rand_i和rand_j可能太大。
希望这有帮助。
关于c - 不应在C中更改整数变量的值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33796614/