我试图让数独' Sudoku'使用C语言的游戏。首先,我应该在我的游戏中随机化所有要解决的数字,我随机化的数字都没有相同的标准。这是我的代码
#include<stdio.h>
#include<time.h>
#include<stdlib.h>
int main() {
int arr_Sudoku[9][9];
int a, b;
int fault;
int i,x;
srand(time(NULL));
for (a=0; a<9; a++)
for (b=0; b<9; b++) arr_Sudoku[a][b]=0;
//RANDOMIZE NUMBERS
for (a=0; a<9; a++) {
for (b=0; b<9; b++) {
do {
fault=0;
i=rand()%9+1;
for (x=0; x<9; x++) {
if (i==arr_Sudoku[a][x]) fault++;
if (fault>3) break;
if (i==arr_Sudoku[x][b]) fault++;
}
} while (fault!=0);
arr_Sudoku[a][b]=i;
}
}
for (a=0; a<9; a++) {
for (b=0; b<9; b++) printf("%d ", arr_Sudoku[a][b]);
printf("\n"); }
return 0;
}
然后,我编译了它。但控制台只显示黑色。所以我尝试将// RANDOMIZE NUMBERS下的代码更改为:
for (a=0; a<4; a++)
控制台向我展示了这样的随机代码:
5 8 2 4 3 7 1 9 6
8 1 4 5 7 9 3 6 2
6 4 1 7 9 8 2 3 5
4 3 5 8 2 1 6 7 9
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
有效!但我需要随机化9x9阵列。有没有办法让随机化过程更快?