快速业务通道

数独递归AI自动计算程序

作者 佚名技术 来源 服务器技术 浏览 发布时间 2012-07-07

在群里面谈到数值的遍历,想起了早前写的一个as2数独小程序,在此连码一起发上来吧... 数独递归AI算法: //=========核心处理方法========
//==================处理函数====================
取字符数组 = function (文本) {
var 返回值 = new Array();
for (var i = 0; i<文本.length; i++) {
返回值.push(文本.charAt(i));
}
return 返回值.sort();
};
//this[字符数组.join("")] = new Object();
拆出名字 = function (字符数组) {
var 对象名 = new Array();
for (var i = 0; i<字符数组.length; i++) {
对象名.push(字符数组.join(""));
字符数组.push(字符数组.shift());
}
return 对象名;
};
生成对象 = function (对象:Object, 字符数组:Array) {
var 对象名表 = 拆出名字(字符数组);
for (var i = 0; i<对象名表.length; i++) {
对象[对象名表[i]] = new Object();
对象[对象名表[i]].名字 = 对象名表[i];
对象[对象名表[i]].前名段 = 对象名表[i].charAt(0);
var 取后名字符 = 对象[对象名表[i]].名字.substr(1);
var 拆名数组 = 取字符数组(取后名字符);
//trace("原名="+对象[对象名表[i]].名字+" 取出后="+取后名字符+" 处理结果="+拆名数组);
if (对象[对象名表[i]].名字.length>2) {
生成对象(对象[对象名表[i]], 拆名数组);
delete 对象[对象名表[i]].名字;
} else {
delete 对象[对象名表[i]].前名段;
}
//目前可删
}
};
//
//
//用于结束最后的2位数互换
取名字 = function (对象:Object, 前段名) {
for (var i in 对象) {
if (typeof (对象[i]) == "object") {
if (对象[i].前名段 != undefined) {
if (名字.charAt(名字.length) != 对象[i].前名段) {
名字 += 对象[i].前名段;
取名字(对象[i], 名字);
}
} else {
//trace("未加前="+前段名+" 追加名字="+对象[i].名字+" 结束名="+前段名+对象[i].名字);
结果数组.push(前段名+对象[i].名字);
}
}
}
//trace("名字="+名字);
名字 = substring(名字, 0, 名字.length-1);
};
组成名字表 = function (主对象) {
for (var i in 主对象) {
名字 = 主对象[i].前名段;
//trace("");
//trace("前字段="+名字);
取名字(主对象[i], 名字);
}
};
//
//=============================================
//
//===========执行函数=======
//执行原理:字符串->数组->结构对象->归类追加到结果数组
function 递归求可能() {
结果数组 = new Array();
var 数值 = [1, 2, 3, 4, 5, 6, 7, 8, 9];
//找出推理参数值,去掉
for (var i = 0; i<数值.length; i++) {
if (数值[i] == Number(推理参数)) {
数值.splice(i, 1);
break;
}
}
//添加递归字符串
var 字符串 = "";
for (var i = 0; i<数值.length; i++) {
字符串 += 数值[i];
}
trace("递归字符串="+字符串);
var 字符数组 = new Array();
字符数组 = 取字符数组(字符串);
//生成主对象
var 主对象 = new Object();
生成对象(主对象, 字符数组);
组成名字表(主对象);
return true;
}
thisObj = this;
for (var i = 1; i<9; i++) {
thisObj["题目"+i].onRelease = function() {
var ID = Number(this._name.substr(2));
gotoAndStop(ID+1);
};
}
//=====================================
//
//转载请注明出处:羽柴 鬼铃-blog www.ycFlash.com/blog
//
//=====================================
//其余的请下载源码查看吧. 点击下载文件: r200933161248.rar 关键词:

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号