前言

业余闲暇时,把若干年前还是开发小白时写的数独解题算法拿出来整理一下,顺带做些优化,并在此做些分享。
数独有多种,这里只说9乘9的数独,来看本篇幅的人相信都知道怎么玩。
话不多说,先上图,UI简洁明了。

功能描述

本程序基于.netframework使用C#语言开发,实现功能:
1、随机出题(New);
2、一键解题(Compute);
3、输入的合法性校验;

思路分享

说一下开发步骤及思路:
1、验证合法性判断:
根据游戏规则,验证9乘9单元格中的所有非空单元格里的数字是否有违背规则。将此封装成一个函数,传入一个9乘9的二维数组,验证成功则返回true,否则返回false。此算法的实现方式可能千人千变,考验的是小学数学功底,不难。用此算法可判断数独题是否有解。
2、解题思路简述:
依次遍历数独题中的每个空缺位置,从数字1开始尝试填写,每尝试一次,调用一次步骤1的算法。若返回true,则跳到下一个空缺位置,再次从数字1开始尝试填写;若返回false,则用当前尝试的数字+1,再次调用步骤1的算法。如果从1一直尝试到9,都是false,那么说明上一个空缺的位置填错了,需要返回上一个空缺再次尝试+1。这里是一个递归调用,略微有些烧脑,很适合编码新手练习逻辑思维。依次往后计算,直到最后一个空缺填完并返回true,这道数独题就完成了。(说明:当一道数独题有多个解时,我们可以据此算法把所有解都计算出来)
3、随机出题思路:
在9乘9单元格的随机某一行(可以就取第一行)里,和随机某一列(可以就取第一列)里,随机填写1~9的数字(前提是符合数独规则)。然后调用解题算法,将此数独计算出来。然后从完整无缺的数独结果中,随机取其中的若干(限定范围内的随机个数)个数字作为数独题目即可。取出的数字的数量越多,题目越容易,反之越难。
4、UI控制:
动态加载控件,数字颜色控制(原题数字和解题数字颜色各异),单元格按键合法性控制,支持上下左右切换单元格。

源码下载

下载源码:https://download.csdn.net/download/hyq106/31154284
欢迎沟通交流。(提醒:源码是winform版的,下载后可联系本人赠送wpf版源码)

C#实现数独解题及随机出题的思路及源码分享相关推荐

  1. PHP随机静态页面生成系统源码雨尘SEO系统

    介绍: PHP随机静态页面生成系统源码雨尘SEO系统v1.3 一款随机静态页面生成系统,一秒钟可生成上千条单页面,批量生成单页用来做SEO是非常不错的源码. 雨尘SEO静态页面生成系统源码v1.3版本 ...

  2. PHP随机静态页面生成系统源码雨尘SEO系统v1.3

    介绍: PHP随机静态页面生成系统源码雨尘SEO系统v1.3 一款随机静态页面生成系统,一秒钟可生成上千条单页面,批量生成单页用来做SEO是非常不错的源码.雨尘SEO静态页面生成系统源码v1.3版本, ...

  3. PHP随机静态页面生成系统源码 雨尘SEO系统v1.3

    简介: 一款随机静态页面生成系统,一秒钟可生成上千条单页面,批量生成单页用来做SEO是非常不错的源码. 雨尘SEO静态页面生成系统源码v1.3版本,支持文章采集,功能,多模板选择批量生成单页,本次更新 ...

  4. 最新抖音快手随机看小姐姐网站源码修复

    介绍: 搭建所需物品:主机 域名 源码 修复随机播放跳转修复api乱码修复头部 1.修复无法显示视频 2.修复不能显示按键 3.美化UI界面 无后台 仅仅 100多 kb 网盘下载地址: http:/ ...

  5. java手机小游戏源码_Java手机版数独小游戏(J2me)JAVA游戏源码下载

    数独游戏,相信朋友们都知道的,以前也经常玩的,用VB.VC++和Delphi版编写的都在网上宣布过,今天放出一个鉴于Java的J2me手机版的,大致看一下截图,这是在Java模拟机运行的界面,带有Ja ...

  6. Spark 随机森林算法原理、源码分析及案例实战

    图 1. Spark 与其它大数据处理工具的活跃程度比较 回页首 环境要求 操作系统:Linux,本文采用的 Ubuntu 10.04,大家可以根据自己的喜好使用自己擅长的 Linux 发行版 Jav ...

  7. 随机名字生成小demo源码

    根据提供的文字随机生成指定字符的名称,挺简单的,一个小demo吧 源字符 package com.example.demo;import cn.hutool.core.util.RandomUtil; ...

  8. js 实现随机抽取选餐效果源码

    闲来没事看到一个比较有趣的随机选餐效果,于是自己花了点时间去是实现,代码如下. <template><div><div class="est"> ...

  9. 自适应随机图片背景导航页源码

    介绍: 无后门,源码内有查毒图,简单操作,下载上传主机服务器就可以了 自适应小姐姐导航源码 ①:使用note++将源码内的链接及相关信息改成你的 ②: 修改完成后将源码上传至虚拟主机或服务器 ③:上传 ...

最新文章

  1. 桌子上有个盘子_日本留学生活:留学生在餐厅刷盘子的传闻,竟然在自己身上上演...
  2. 转,大佬关于虚拟内存与物理内存关系讲解。
  3. 本科生怎样发表论文?
  4. list乘法复制带来的坑
  5. openoffice java在线预览,使用openoffice和kkFileView实现文档在线预览
  6. Angular.js 页面里的按钮点击事件处理
  7. windows环境 安装python的虚拟环境,安装第三方包的总结
  8. iTextSharp 使用详解用C#制作PDF文件全攻略
  9. 限制网速软件_最具良心的三款下载软件丨你pick哪款?
  10. python开发环境一般用哪个快递_基于Python的常用快递sdk调用代码实例
  11. xShell终端中文乱码完全解决方法
  12. HDFS教程(06)- HDFS纠删码
  13. ietester测试本地html,网站浏览器兼容测试软件–IETester
  14. c语言中char * string,浅析string 与char* char[]之间的转换
  15. HIT信息安全概论复习:1~10
  16. MySQL主从同步详解与配置
  17. 如何设计出色的网站后台原型?
  18. phaser模拟百米赛跑
  19. 九华互联科技多媒体发布系统解决方案
  20. 什么是SSL证书它有什么作用?

热门文章

  1. 今日芯声 | 台积电或投资3000亿新台币建新工厂,进军高端封测服务
  2. 51单片机 11.0592MHz 产生115200 波特率
  3. RabbitMQ-2-工作模式及参数配置
  4. 无懈可击的web设计笔记
  5. python医学图像可视化_可视化医学图像CT
  6. 频率选择性衰落和频率非选择性衰落
  7. mysql 1064_MYSQL #1064错误
  8. 【教学类-15-02】20221119《姓名描字帖-A4竖版(2*7)普通中号字》(大班适合中层次幼儿)
  9. 《帝国时代IV》(Age of Empires IV)CODEX版切换简体中文界面和语音的方法 附中文语言和语音下载
  10. cocos2d-x的面试题