用户:
蓝矮爱乐查看:1 回复:4 评论:1 创建时间:2022-04-16T18:52:07
const $letter_and_number$ = ['a','b','c','d','e','f',//先把26字母全都填写表格里
'g','h','i','j','k','l','m','n','o','p','q',
'r','s','t','u','v','w','x','y','z'
];
findKeyword=async function findKeyword(length){//创建一个函数
if(length<=5){//当length大于5时,工作量会非常的大,应该给个限制
var d='';var e=''//创建好遍历字母变量(d)和d结束时的值(e)
for(var a=0;a<length;a++){//重复输入的数字次
if(d==''){d='a'}else d=String(d)+'a';//初始时值是好几个a
if(e==''){e='z'}else e=String(e)+'z';//结束时值是好几个z
}
keywordList=[]//搜索关键词的列表
var c=0//弄个变量(用处后面会说)
while(true){//一直翻找关键词
if(c<=10000){//如果已经翻找了一万次,那么就要休息1毫秒,继续翻找
c++ //不休息的话会导致服务器崩溃
}else{
c=0
await new Promise((resolve)=>{setTimeout(()=>{resolve()},1)})
}
if(d==e){//如果寻找达到结束的值
return keywordList//返回关键词的数组
}
d=addLetter(d);//将d变量以26进制的方法计算+1
if(isKeyword(d)){//判断是否为关键词
keywordList.push(d)//如果是,就将关键词加入keywordList这个数组中
world.say(d)//调试作用
}
}
}else{//如果填写的数字大于5,服务器工作量会很大,就抛出错误
throw new TypeError('functions parameter \'length\' too large');
}
};
isKeyword=function isKeyword(records){//创建一个函数,以便判断关键词
try{//尝试创建变量名为输入的字串符,如果创建成功,则会删除,并判断不是关键词
if(records=='set'|| //特殊情况记忆
records=='get'||
records=='undefined'||
records=='await'||
records=='of'){
var ifs = true
}
if(typeof ifs=='undefined'){
eval('var '+records)
eval('delete '+records)
var ifs=false
}
}catch{
var ifs=true
}finally{
return ifs//返回判断的结果
}
}
addLetter=function addLetter(record){//26进制增加1方法
var t = [];//用于将26进制转换十进制
for(let e=0;e<record.length;e++){
t.push($letter_and_number$.indexOf(record[e]));
};
var c=t.length-1;while(true){
t[c]+=1;
if(t[c]==26){
t[c]=0;c--;
continue
}else{
var d='';
for(const r of t){
if(d==''){
d=$letter_and_number$[r]
}else{
d=String(d)+String($letter_and_number$[r])
}
};
return d
}
}
}