仅供
学习参考之用,虽然尝试次数最大是111,但实际每个单词只尝试了几次,个别的十几次
鼠标控制,单击连出右边单词表的单词即可
部分源代码
复制内容到剪贴板
代码:
//创建新表格
creativeform = function () {
//随机字母
for (i=0, k=0; i<=12; i++) {
for (j=0; j<=12; j++, k++) {
_root.grouparray["groupletter"+k].letter = String.fromCharCode(Math.floor(26*Math.random())+65);
}
}
//摆放单词,lastpoint已使用点
lastpoint = new Array();
wholebk = false;
for (i=0; i<9; i++) {
//lastpoint.push("("+[i+1]+")");
bk = false;
while (bk == false) {
wordck = false;
//确定单词方向,起始位置
fx = random(8);
ftpoint = random(169);
m = wordlist[random(wordlist.length)];
//判定重复单词
for (j=0; j<tsword.length; j++) {
if (m == tsword[j]) {
m = wordlist[random(wordlist.length)];
j = -1;
}
}
//判定重复起始点
for (j=0; j<lastpoint.length; j++) {
if (ftpoint == lastpoint[j]) {
ftpoint = random(169);
j = -1;
}
}
//摆放检测
for (j=0; j<m.length; j++) {
wordck = true;
hengx;
zongx;
//oblique:4-l-u;5-l-d;6-r-u;7-r-d
//0-left;1-right;2-up;3-down
if (fx == 0) {
hengx = 1;
zongx = 0;
} else if (fx == 1) {
hengx = -1;
zongx = 0;
} else if (fx == 2) {
hengx = 0;
zongx = 1;
} else if (fx == 3) {
hengx = 0;
zongx = -1;
} else if (fx == 4) {
hengx = 1;
zongx = 1;
} else if (fx == 5) {
hengx = 1;
zongx = -1;
} else if (fx == 6) {
hengx = -1;
zongx = 1;
} else if (fx == 7) {
hengx = -1;
zongx = -1;
}
pointck = true;
k = ftpoint-j*hengx-j*13*zongx;
kx = ftpoint;
ky = ftpoint-j*13*zongx;
while (kx-13>=0) {
kx -= 13;
}
kx = kx-j*hengx;
//出界检测
if (kx>=0 && kx<13 && ky>=0 && ky<=168) {
//重复点检测
for (n=0; n<lastpoint.length; n++) {
if (k == lastpoint[n]) {
pointck = false;
}
}
} else {
pointck = false;
}
if (pointck) {
lastpoint.push(k);
ctrllr(m.charAt(j), k);
}
if (pointck == false) {
//返回所有步骤
for (l=0; l<j; l++) {
ctrllr(String.fromCharCode(Math.floor(26*Math.random())+65), lastpoint[-1]);
lastpoint.pop();
}
wordck = false;
break;
}
}
//单词摆放成功
if (wordck) {
tsword[i] = m;
break;
}
//尝试次数超过-即摆放失败
mytry++;
if (mytry>=111) {
wholebk = true;
break;
}
}
//重新来过
if (wholebk) {
i = -1;
lastpoint.splice(0, lastpoint.length);
wholebk = false;
tsword.splice(0, tsword.length);
}
mytry = 0;
}
gameload = false;
};
找单词.rar (217.4 KB)
找单词.swf (146.2 KB)
[
本帖最后由 flashly77 于 2008-1-19 13:40 编辑 ]