zoukankan      html  css  js  c++  java
  • 数独程序

    #include <stdio.h>
    #include <cstring>
    using namespace std;
    int vis[10][10][10] = {0};
    int a[10][10];
    int turn(int x)
    {
        if(x%3==0) return x-2;
        if(x%3==1) return x;
        return x - 1;
    }
    void update(int x, int y, int val)
    {
        for(int i = 1; i <= 9; i++)
            vis[x][i][val] = vis[i][y][val] = 1;
    
        x = turn(x); y = turn(y);
    
        for(int i = x; i <= x + 2; i++)
            for(int j = y; j <= y + 2; j++)
                vis[i][j][val] = 1;
    }
    int main()
    {
        while(1)
        {
            memset(vis, 0, sizeof(vis));
            puts("game is on");
            for(int i = 1; i <= 9; i++)
                for(int j = 1; j <= 9; j++)
                {
                    scanf("%d", &a[i][j]);
                    if(a[i][j]) update(i, j, a[i][j]);
                }
    
            while(1)
            {
                int flag = 0;
                for(int i = 1; i <= 9; i++)
                {
                    for(int j = 1; j <= 9; j++)
                    {
                        int num = 0, id;
                        for(int k = 1; k <= 9; k++)
                        {
                            if(vis[i][j][k]) num++;
                            else id = k;
                        }
                        if(num==8 && a[i][j]==0)
                        {
                            flag = 1;
                            a[i][j] = id;
                            update(i, j, id);
                            break;
                        }
                    }
                    if(flag) break;
                }
    
                if(!flag) break;
            }
            puts("-----------------ANS-------------------");
    
            for(int i = 1; i <= 9; i++)
                for(int j = 1; j <= 9; j++)
                    printf("%d%c", a[i][j], j==9?'
    ':' ');
    
            puts("next game");
    
        }
    }

      借助计算机的快速计算能力,来完成简单的数独游戏,但是逻辑关系太简单了,复杂数独还是出不来的。

  • 相关阅读:
    基于python的socket网络编程
    Python3报错:ModuleNotFoundError: No module named '_bz2'
    机器学习博客网站
    《Linux内核设计与实现》 读书笔记(4)--进程的调度
    k8s 简单入门
    docker 简单入门
    python3 教程
    .toml 文件简介
    编码规范
    python3 基本用法
  • 原文地址:https://www.cnblogs.com/loenvom/p/12175613.html
Copyright © 2011-2022 走看看