|
楼主 |
发表于 2020-2-19 16:51
|
显示全部楼层
sudoku-Finsh.rar
(84.97 KB, 下载次数: 40)
源码全开放,供大家参考、借鉴
对整体架构进行了优化,分为 事件模块、功能模块、类模块
其中类模块对外提供3个属性、7个方法
- '***************************************************************
- ' VBA 数独类模块
- ' (clsSukodu)
- ' Ver:1.0 Author:lsdongjh
- '***************************************************************
- '1--属性
- '----------------------------------------------------------------
- ' (1)AnswerCount : 只读,获取答案的总数,与GetOnlyOneAnswer属性相关,默认只取一个
- ' (2)GetOnlyOneAnswer :可读写,是否只取唯一解除,默认为真
- ' (3)HasCreate : 只读,判断是否创建题目
- '2--方法
- '----------------------------------------------------------------
- ' (1)CreateSukodu(Optional intDifficulty As Integer = 0)
- ' 根据intDifficulty设定的难度系数,自动创建题目,intDifficulty取值为0-9,默认为0
-
- ' (2)AutoSolve
- ' 自动解题,无参。该方法需要判断 HasCreate属性
- ' (3)CheckValue(RowID As Integer, ColID As Integer, intValue As Integer) As Boolean
- ' 判断指定的位置是否可填入指定的值,可填返回True,否则为False
- ' (4)GetOptional(RowID As Integer, ColID As Integer) As String
- ' 以字符串形式返回指定位置可选的数字,每个数字间隔2个空格
- ' (5)InitSukoduByValue(varValue As Variant, affType As varType) As Boolean
- ' 根据传入的内容生成题目,成功返回True,否则为False
- ' affType:自定义枚举
- ' Two_dimensional_array 二维数组
- ' One_dimensional_array 一维数组
- ' Character_string 字符串
- ' (6)OutPutValue(Optional OutType As varType = Two_dimensional_array) As Variant
- ' 根据指定格式输出现有题目,参数affType同InitSukoduByValue方法
- ' (7)ShowAnswer(Optional intIndex As Integer = 1) As Integer()
- ' 以二维数组形式输出答案,与GetOnlyOneAnswer、AnswerCount属性配合使用
复制代码 |
|