`
rappy
  • 浏览: 43726 次
  • 性别: Icon_minigender_1
  • 来自: 天涯海角
文章分类
社区版块
存档分类
最新评论

数独数组生成

阅读更多
#define MAX_TIMES 100
#define ARR_SIZE    9
#define MAX_NUM    10
void createNumArr(int arr[ARR_SIZE][ARR_SIZE])
{
	int i = 0;
	int j = 0;
	int k = 0;
	int tmp = 0;
	int flag = 0;
	int times = 0;
	
	srand(time(NULL));
	do
	{
		times  = 0;		

		for (i = 0; i < ARR_SIZE; i++)
		{		
			for (j = 0; j < ARR_SIZE; j++)
			{
				do
				{
					flag = 0;
					tmp = rand() % MAX_NUM;
					times++;

					if (0 == tmp)
					{
						flag = 1;
					}

					for (k = 0; (k < j) && (flag != 1); k++)
					{
						if (tmp == arr[i][k])
						{
							flag = 1;
							break;
						}
					}

					for (k = 0; (k < i) && (flag != 1); k++)
					{
						if (tmp == arr[k][j])
						{
							flag = 1;
							break;
						}
					}

					if (times > MAX_TIMES)
					{
						break;//jump out inner do-while
					}
				}
				while (flag);

				if (times > MAX_TIMES)
				{
					break;//jump out inner for circle
				}
				
				arr[i][j] = tmp;
				times = 0;
				//printf("arr[%d][%d]=%d\n", i, j, tmp);
			}

			if (times > MAX_TIMES)
			{
				break;//jump out outter for circle
			}
		}
	}
	while (times > MAX_TIMES);
}

int isSodoArr(int arr[ARR_SIZE][ARR_SIZE])
{
	int i = 0;
	int j = 0;

	for (i = 0; i < ARR_SIZE; i++)
	{
		for (j = 0; j < ARR_SIZE; j++)
		{
			//do something
		}
	}

	return 1;
}
分享到:
评论

相关推荐

    微信小程序实现九宫格数独

    4. **生成随机数独**:设计算法生成难度可调的数独谜题。可以从已解决的数独盘面开始,通过删除一定数量的数字,保证剩余数字能唯一解出原盘面。常用的算法有回溯法或者X-Wing等。 5. **用户交互**:监听用户的触摸...

    九宫格数独题目生成器.rar

    1. **基础设置**:创建9x9的二维数组,初始化部分已知数字,形成一个基础的数独题目框架。 2. **空位查找**:找到当前未填充数字的格子,作为下一步填入数字的目标位置。 3. **数字尝试**:对1至9的数字进行尝试,...

    简洁高效的数独矩阵生成器

    在C++实现中,可以使用二维数组来表示数独矩阵,利用STL库中的容器和算法来简化代码。例如,可以使用`std::vector&lt;std::vector&lt;int&gt;&gt;`存储数独矩阵,并使用`std::set`或`std::bitset`来快速检查行、列和小九宫格的...

    sd.rar_c++数独_c++生成数独_数独_生成数独_随机生成数独

    在这个“sd.rar”压缩包中,我们看到的是一个用C++实现的数独游戏程序,它包含了数独的生成、解决、读取和保存等功能。 首先,C++是编程领域中的一种通用编程语言,以其高效、灵活和面向对象的特性而受到程序员的...

    ios-OC-数独游戏.zip

    3. **数据模型**:创建一个九宫格的数据模型,用二维数组表示数独盘面。每个元素可以是整数(1-9)或者空(0),代表已填数字或空白格。 4. **逻辑算法**:实现数独的逻辑算法,包括验证输入的数字是否正确,以及...

    100个数独(Python语言生成)

    这个项目“100个数独(Python语言生成)”提供了使用Python编程语言生成的100个原创数独谜题,这些谜题可以用于杂志、报纸或网页等媒体,为爱好者们提供娱乐和挑战。 首先,让我们深入了解Python如何生成数独谜题。...

    java数独题库高效生成算法代码

    5. **编码实现**:在Java中,可以创建一个二维数组来表示数独矩阵,然后利用面向对象的特性封装操作方法,如`isValid()`用于验证当前数独是否合法,`removeNumber()`用于移除数字,`generatePuzzle()`用于生成数独...

    数独解法生成

    数独解法生成是利用计算机算法来解决数独谜题的过程。 在C语言中实现数独解法,通常会涉及到递归或回溯算法。回溯法是一种试探性的解决问题的方法,当尝试一种可能的解时,如果发现该解不符合条件,就退回一步,...

    生成四种难度的数独生成器MATLAB程序

    在这个数独生成器中,MATLAB被用来创建算法,这些算法能够随机生成满足数独规则的填空矩阵。程序可能包含了初始化矩阵、生成随机解决方案、检查并消除重复解、以及根据难度调整空白数量等步骤。 首先,生成器会创建...

    数独游戏生成文件,可以再编程文件

    1. **数据结构**:通常使用二维数组或列表来表示数独网格,每个元素存储对应的数字或空格标记。 2. **算法设计**: - **生成算法**:用于创建新的数独谜题,可以采用回溯法、递归深度优先搜索等方式,确保生成的...

    基于opencv的图片数独求解和数独题生成

    标题 "基于opencv的图片数独求解和数独题生成" 涉及的是使用OpenCV库处理图像,实现从图片中识别数独并解决数独题目的技术。OpenCV是一个强大的计算机视觉库,广泛应用于图像处理、图像分析和机器学习等领域。在这个...

    数独解法产生程序

    "数独解法产生程序"的目标就是利用计算机算法解决数独问题,给定一个不完整的数独数组,程序将自动填充缺失的数字,生成完整的数独解决方案。 在这个程序中,通常会采用回溯算法或者递归的方式来解决数独问题。下面...

    数独的生成与破解借鉴.pdf

    在这个案例中,作者采用的策略是通过递归实现深度优先搜索,利用二维数组存储当前数独的状态。由于搜索空间巨大(9叉树的80层),直接的暴力搜索会导致极高的计算量,因此需要引入启发式策略来优化搜索过程。 启发...

    Matlab实现数独生成和求解

    1. **随机填充**:数独生成通常从一个完全填满的数独开始,然后通过随机移除一些数字形成不完整的数独。在Matlab中,可以创建一个9x9的二维数组,初始化为1到9的全排列,然后随机选取一些位置将其设为空,以创建难度...

    解答数独、自定义手动输入数独题目。快速生成数独答案。

    本话题涉及的知识点主要集中在JavaScript编程语言上,用于实现数独的解答和自定义题目的生成。 一、数独解法算法 1. 基于回溯的深度优先搜索(DFS):这是一种典型的递归方法,从空格最多的单元格开始尝试填入数字...

    C语言生成指定数量的数独至文件,解文件中一定数量的数独

    本项目聚焦于利用C语言实现数独的生成与求解,这对于理解算法和数据结构有很好的实践价值。数独是一种逻辑游戏,玩家需要根据9×9的宫格中已填好的数字,推断出剩余空格的正确数字,使得每一行、每一列以及每一个小...

    C#生成与求解数独

    在C#中,可以创建一个二维数组来表示数独网格,然后通过填充随机数字并检查是否合法,如果非法则回溯尝试其他数字,直到找到一个合法的解。为了生成不同难度的数独,可以调整预填充的数字数量,预填充的数字越多,...

    sudo:数独的生成算法和解题算法

    在本文中,我们将深入探讨数独的生成算法和解题算法,并以C++编程语言为例,讲解如何实现这些算法。 生成数独的算法通常有两种主要方法:回溯法和递归深度优先搜索(DFS)。首先,我们从一个全零的9x9网格开始。...

    c#实现数独

    数独是一种源自18世纪末的瑞士数学游戏,后来在日本流行并得名“数独”,在全世界范围内广受欢迎。...在实际开发中,还可以考虑增加更多功能,如生成随机数独、保存和加载游戏状态等,以提升用户体验。

Global site tag (gtag.js) - Google Analytics