日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產(chǎn)品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
c語言數(shù)獨棋盤怎么做

數(shù)獨是一個邏輯游戲,目標是在9×9的網(wǎng)格中填入數(shù)字19,使得每行、每列和每個3×3的小網(wǎng)格中的數(shù)字都不重復,在C語言中,我們可以通過二維數(shù)組來表示數(shù)獨棋盤,并通過循環(huán)和條件判斷來實現(xiàn)游戲的玩法。

以下是一個簡單的C語言數(shù)獨棋盤實現(xiàn):

1、我們需要定義一個二維數(shù)組來表示數(shù)獨棋盤,我們可以使用int類型的數(shù)組,數(shù)組的大小為9×9。

int board[9][9] = {0};

2、接下來,我們需要實現(xiàn)一個函數(shù)來初始化數(shù)獨棋盤,我們可以將19的數(shù)字隨機填入棋盤,確保每行、每列和每個3×3的小網(wǎng)格中的數(shù)字都不重復。

void init_board() {
    srand(time(NULL));
    for (int i = 0; i < 9; i++) {
        for (int j = 0; j < 9; j++) {
            board[i][j] = rand() % 9 + 1;
        }
    }
}

3、我們需要實現(xiàn)一個函數(shù)來檢查當前棋盤狀態(tài)是否合法,我們可以遍歷棋盤,檢查每行、每列和每個3×3的小網(wǎng)格中的數(shù)字是否重復,如果有重復,返回0表示不合法;否則返回1表示合法。

int is_valid() {
    for (int i = 0; i < 9; i++) {
        int row[9] = {0};
        int col[9] = {0};
        int box[9] = {0};
        for (int j = 0; j < 9; j++) {
            if (board[i][j] != 0) {
                if (row[board[i][j]] == 1 || col[board[i][j]] == 1 || box[board[i][j] 1] == 1) {
                    return 0;
                }
                row[board[i][j]] = 1;
                col[board[i][j]] = 1;
                box[board[i][j] 1] = 1;
            }
        }
    }
    for (int i = 0; i < 9; i++) {
        int row[9] = {0};
        int col[9] = {0};
        int box[9] = {0};
        for (int j = 0; j < 9; j += 3) {
            for (int k = 0; k < 3; k++) {
                for (int l = 0; l < 3; l++) {
                    if (board[i + k][j + l] != 0) {
                        if (row[board[i + k][j + l]] == 1 || col[board[i + k][j + l]] == 1 || box[board[i + k][j + l] 1] == 1) {
                            return 0;
                        }
                        row[board[i + k][j + l]] = 1;
                        col[board[i + k][j + l]] = 1;
                        box[board[i + k][j + l] 1] = 1;
                    }
                }
            }
        }
    }
    return 1;
}

4、我們需要實現(xiàn)一個函數(shù)來打印數(shù)獨棋盤,我們可以遍歷棋盤,將每個格子的數(shù)字打印出來,為了美觀,我們可以在每行末尾添加換行符。

void print_board() {
    for (int i = 0; i < 9; i++) {
        for (int j = 0; j < 9; j++) {
            printf("%d ", board[i][j]);
        }
        printf("
");
    }
}

5、在主函數(shù)中,我們可以先初始化數(shù)獨棋盤,然后不斷嘗試填入數(shù)字,直到找到一個合法的解,我們可以使用鍵盤輸入來獲取用戶填入的數(shù)字,然后更新棋盤狀態(tài),如果找到合法解,我們可以打印出來并結束游戲;否則提示用戶重新輸入。

#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#define NDEBUG //取消斷言調試功能,提高運行效率(可選項)*/
#include  //包含斷言庫(可選項)*/*/ /*定義常量*/*/ #define NDEBUG //取消斷言調試功能,提高運行效率(可選項)*/ #include  //包含斷言庫(可選項)*/*/ /*定義常量*/*/ //定義常量*/*/ //定義常量*/*/ int main() { //主函數(shù)開始 */ init_board(); //初始化數(shù)獨棋盤 while (1) { //無限循環(huán) print_board(); //打印數(shù)獨棋盤 char input[2]; //用于存儲用戶輸入的數(shù)字 scanf("%s", input); //讀取用戶輸入的數(shù)字 int num = atoi(input); //將字符串轉換為整數(shù) if (is_valid()) { //如果當前棋盤狀態(tài)合法 for (int i = 0; i < 9; i++) { for (int j = 0; j < 9; j++) { if (board[i][j] == 0 && num > 0) { board[i][j] = num; break; } } if (board[i][j] != 0) { num; continue; } } } else { //如果當前棋盤狀態(tài)不合法,提示用戶重新輸入 while (!isdigit(input[0])) { input[0] = getch(); } } } } return 0; //主函數(shù)結束 } //主函數(shù)結束 *//*主函數(shù)結束*//*主函數(shù)結束*//*主函數(shù)結束*//*主函數(shù)結束*//*主函數(shù)結束*//*主函數(shù)結束*//*主函數(shù)結束*//*主函數(shù)結束*//*主函數(shù)結束*//*主函數(shù)結束*//*主函數(shù)結束*//*主函數(shù)結束*//*主函數(shù)結束*//*主函數(shù)結束*//*主函數(shù)結束*//*主函數(shù)結束*//*主函數(shù)結束*//*主函數(shù)結束*//*主函數(shù)結束*//*主函數(shù)結束*//*主函數(shù)結束*//*主函數(shù)結束*//*主函數(shù)結束*//*主函數(shù)結束*//*主函數(shù)結束*//*主函數(shù)結束*//*主函數(shù)結束*//*主函數(shù)結束*//*主函數(shù)結束*//*主函數(shù)結束*//*主函數(shù)結束*//*主函數(shù)結束*//*主函數(shù)結束*//*主函數(shù)結束*//*主函數(shù)結束*//*主函數(shù)結束*//*主函數(shù)結束*//*主函數(shù)結束*//*主函數(shù)結束*//*主函數(shù)結束*//*主函數(shù)結束*//*主函數(shù)結束*//*主函數(shù)結束*//*主函數(shù)結束*//*主函數(shù)結束*//*主函數(shù)結束*//*主函數(shù)結束*//*主函數(shù)結束*//*主函數(shù)結束*/ /*定義常量*///定義常量*///定義常量*///定義常量*///定義常量*///定義常量*///定義常量*///定義常量*///定義常量*///定義常量*///定義常量*///定義常量*///定義常量*///定義常量*///定義常量*///定義常量*///定義常量*///定義常量*///定義常量*///定義常量*///定義常量*///定義常量*///定義常量*///定義常量*///定義常量*///定義常量*///定義常量*///定義常量*///定義常量*///定義常量*///定義常量*///定義常量*///定義常量*///定義常量*///定義常量*///定義常量*///定義常量*///定義常量*///定義常量*///定義常量*///定義常量*///定義常量*///定義常量*///定義常量*///定義常量*///定義常量*///定義常量*///定義常量*///定義常量*///定義常量*///定義為空字符 *///定義為空字符 *///定義為空字符 *///定義為空字符 *///定義為空字符 *///定義為空字符 *///定義為空字符 *///定義為空字符 *///定義為空字符 *///定義為空字符 *///定義為空字符 *///定義為空字符 *///定義為空字符 *///定義為空字符 *///定義為空字符 *///定義為空字符 *///定義為空字符 *///定義為空字符 *///定義為空字符 *///定義為空字符 *///定義為空字符 *///定義為空字符 *///定義為空字符 *///定義為空字符 *///定義為空字符 *///定義為空字符 *///定義為空字符 *///定義為空字符 *///定義為空字符 *///定義為空字符 *///定義為空字符 *///定義為空字符 *//

文章題目:c語言數(shù)獨棋盤怎么做
標題URL:http://www.dlmjj.cn/article/cosihpg.html