Randoming数字太长了

时间:2015-12-10 14:56:50

标签: c arrays random sudoku srand

我试图让数独' 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阵列。有没有办法让随机化过程更快?

0 个答案:

没有答案