`
rappy
  • 浏览: 42912 次
  • 性别: 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;
}
分享到:
评论

相关推荐

    ios-OC-数独游戏.zip

    https://github.com/KirstenDunst/GameSudoku,需要先点击数字按钮,然后再点击想要显示这个数字的数独格子。(A表示从新开始,C表示后退一步)。

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

    用微信小程序实现九宫格数独,不是微信小游戏哦,是小程序实现的。

    数独解法生成

    数独有戏的解法,只要输入当前数独的数组(空格用0表示)通过计算机计算就能得到唯一的解法。

    Android 九宫格 数独游戏.rar

    Android 九宫格 数独游戏,生成随机数字的源数组,随机数字从该数组中产生,生成随机数字,该数字是数组的下标,取数组num中该下标对应的数字为随机数字.游戏玩法:  通过点击棋盘中空白的位置并填入适当的数字,使得...

    sudokulib:用于求解和生成数独的库

    用法数独通过将参数传递给构造函数,可以从字符串,数组中加载数独,也可以从另一个数独对象复制数独。数独生成器SudokuGenerator生成不同难度的难题: int numberOfPuzzles = 10;SudokuGenerator generator = new ...

    基于JavaFX和DLX算法实现的数独游戏,可快速生成和解出数独.zip

    进阶解法包括:区块摒除法(Locked Candidates)、数组(Subset/Tuple)、二链列(X-Wing)、唯一矩形(Unique Rectangle)、全双值格致死解法(Bivalue Universal Grave)、同数链(X-Chain)、异数链(Multidigit ...

    易语言分级数独游戏

    易语言分级数独游戏源码,分级数独游戏,创建数组编辑框,创建背景,验证结果,生成表格,打乱表格,取X轴位置,取Y轴位置,计算打乱表格,创建数独表

    数独————————C++

    一个简单的解数独的小程序 //***求数独的解,参数mod为0或1,time0为搜索开始时的时间,mod=0时仅检查Data1中数独...i++) //将生成的数独存入Data0数组 { for(j=0;j;j++) { Data0[i][j]=Data1[i][j]; } } }

    数独游戏,游戏分三个难度来生成数独矩阵.zip

    数独游戏 基础解法 排除法(摒除法) 摒除法:用数字去找单元内唯一可填空格,称为摒除法,数字可填唯一空格称为排除法 (Hidden Single)。 根据不同的作用范围,摒余解可分为下述三种: 数字可填唯一空格在「宫」...

    基于java的数独游戏

    该游戏可以选择不同的游戏难度, 游戏难度需在后台修改。 ShuduHelper.java是生成一个随机二维数组,里面每行每列每个九宫格都只有1-9九个数。UI文件夹是生成界面。

    sudoku:数独游戏在线

    repo: ...将乱序后的数组记录为answer数组,用于最终验证。 乱序效果如下: 随机留空 根据难度系数,设定概率,随机选择空格留空 function emptyFlag(level) { let chance; switch (level) { ca

    sudoku-chart-generator

    数独图表生成器仅使长度为81的数组。

    LeetCode解题总结

    1.9 验证数独的正确性 1.10 容纳雨水的量 1.11 旋转图像 1.12 数字加1 1.13 爬楼梯 1.14 格雷码 1.15 设置矩阵的行列为0 1.16 加油站问题 1.17 分糖果 1.18 只出现一次的数 2. 单链表 2.1 单链表相加 2.2 指定位置...

    leetcode有效期-LeetCode:力码

    括号生成 24 两两交换链表中的节点 29 两数相除 31 下一个排列 33 搜索旋转排序数组 34 在排序数组中查找元素的第一个和最后一个位置 36 有效的数独 39 数组总和 Hard 4 寻找两个正序数组中的中位数 10 正则表达式...

    lrucacheleetcode-DSA:动态安全协议

    lru缓存leetcode 数据结构和算法 必须做的编码问题 数组: 给定总和的子数组 ...解决数独 迷宫问题中的老鼠 字谜 生成 IP 地址 位魔术: 找到第一个设置位 最右边的不同位 检查是否设置了第 K 位 给定

    gasstationleetcode-Leetcode-Rust:尝试通过rust解决leetcode上的问题

    生成括号 23. 合并 k 个排序列表 24. 成对交换节点 25. k-Group 中的反向节点 26. 从有序数组中删除重复项 27. 删除元素 28. 实现 strStr() 29. 两个整数相除 30. 连接所有单词的子串 31. 下一个排列 32. 最长有效...

    javalruleetcode-leetcode-solutions:我在LeetCode上的解决方案,用Java和Python编写

    java lru leetcode LeetCode-解决方案 这个存储库记录了我在 LeetCode 上的解决方案,用Java 和 Python编写。 :red_heart: 笔记和摘要在我的 ...这个README.md是自动生成的。...两个排序数组的中位数 ...有效数独 37

    leetcode2-leetcode-rust:Rust中的leetcode解决方案

    自述文件由自述文件生成器自动定期更新。 问题数:47 ID 标题 关联 困难 1 二和 && 简单的 2 两个数字相加 && 中等的 3 无重复字符的最长子串 && 中等的 6 之字形转换 && 中等的 7 反转整数 && 简单的 8 字符串...

    leetcode530-LeetCode:力码

    生成括号 合并 k 个排序列表 成对交换节点 k-Group 中的反向节点 从排序数组中删除重复项 删除元素 实现 strStr() 两个整数相除 31-40 下一个排列 最长有效括号 在旋转排序数组中搜索 搜索范围 搜索插入位置 有效...

    javalruleetcode-Re0-LeetCode:从零开始的LeetCode

    生成括号 完毕 23 合并k个排序列表 完毕 26 从排序数组中删除重复项 完毕 27 删除元素 完毕 28 实现 strStr() 完毕 29 两个整数相除 完毕 第31话 完毕 32 个最长的有效括号 去做 33 在旋转排序数组中搜索 完毕 34 ...

Global site tag (gtag.js) - Google Analytics