24点算法
游戏地址:http://www.prcer.com/tools/24/24-1.html
Javascript代码:
-
<scriptlanguage="JavaScript">
-
-
-
functionlop(j)
- {
-
if(j>0)
- {
-
varss=lop(j-1);
-
varpx="";
-
varoo="$1"+j+"$2";
-
for(vark=0;k<=j;k++)
- {
-
varre=newRegExp("(//d{"+k+"})(.*?;)","g");
- px+=ss.replace(re,oo);
- }
-
returnpx;
- }
-
else
-
return"0;";
- }
-
vargt=lop(3).slice(0,-1).split(";");
-
for(vari=0;i<gt.length;i++)
-
gt[i]=gt[i].split("");
-
varot=[];
-
varop=["+","-","*","/"];
-
for(varx=0;x<4;x++)
-
for(vary=0;y<4;y++)
-
for(varz=0;z<4;z++)
- {
-
ot[ot.length]="((a"+op[x]+"b)"+op[y]+"c)"+op[z]+"d";
-
ot[ot.length]="(a"+op[x]+"(b"+op[y]+"c))"+op[z]+"d";
-
ot[ot.length]="a"+op[x]+"((b"+op[y]+"c)"+op[z]+"d)";
-
ot[ot.length]="a"+op[x]+"(b"+op[y]+"(c"+op[z]+"d))";
-
ot[ot.length]="(a"+op[x]+"b)"+op[y]+"(c"+op[z]+"d)";
- }
-
-
varggcs;
-
functionggcsclass()
- {
-
this.pjys=0;
-
this.zq=0;
-
this.cw=0;
-
this.hl=0;
-
this.gx();
- }
-
functionggcsclass.prototype.gx()
- {
-
k_pjys.innerText=this.zq==0?0:Math.round(this.pjys/this.zq*100)/100;
-
k_zq.innerText=this.zq;
-
k_cw.innerText=this.cw;
-
k_hl.innerText=this.hl;
- }
-
functionggcsclass.prototype.phl()
- {
-
this.hl++;
-
this.gx();
-
k_jg.innerText="此题被忽略!!";
- }
-
functionggcsclass.prototype.pcw()
- {
-
this.cw++;
-
this.gx();
-
k_jg.innerText="错误!!";
- }
-
functionggcsclass.prototype.pzq()
- {
-
vard=jcsl.endDate();
-
this.pjys+=d/1000;
-
this.zq++;
-
this.gx();
-
k_jg.innerText="正确!用时"+Math.round(d/10)/100+"秒!";
- }
-
window.onload=function()
- {
-
ggcs=newggcsclass();
- }
-
-
varjcsl=null;
-
functionjclass()
- {
-
this.xpa=[];
-
this.ssjg="";
-
this.wx=1E-10;
-
this.date=null;
- }
-
functionjclass.prototype.rnd()
- {
-
for(varii=0;ii<4;ii++)
-
this.xpa[ii]=Math.floor(Math.random()*10)+1;
- }
-
functionjclass.prototype.fapai()
- {
-
for(varii=0;ii<4;ii++)
-
document.getElementById("pk"+ii).innerText=this.xpa[ii];
-
this.date=newDate();
- }
-
functionjclass.prototype.endDate()
- {
-
returnnewDate()-this.date;
- }
-
functionjclass.prototype.jw()
- {
-
vara,b,c,d;
-
this.ssjg="";
-
for(vari=0;i<gt.length;i++)
- {
-
a=this.xpa[gt[i][0]]-0;
-
b=this.xpa[gt[i][1]]-0;
-
c=this.xpa[gt[i][2]]-0;
-
d=this.xpa[gt[i][3]]-0;
-
for(varh=0;h<ot.length;h++)
-
if(Math.abs(eval(ot[h])-24)<=this.wx)
-
this.jcf(ot[h].replace("a",a).replace("b",b).replace("c",c).replace("d",d));
- }
- }
-
functionjclass.prototype.jcf(t)
- {
-
varstr=t;
-
varzz1=t.replace(/[/(/)]/g,"");
-
varzz2=t.replace(/[/(/)]/g,"");
-
varzz3=t.replace(/[/(/)](?!)/g,"");
-
if(Math.abs(eval(zz1)-24)<=this.wx)
- str=zz1;
-
elseif(Math.abs(eval(zz2)-24)<=this.wx)
- str=zz2;
-
elseif(Math.abs(eval(zz3)-24)<=this.wx)
- str=zz3;
-
varres=str.replace(//g,"")+"=24/n";
-
if(this.ssjg.indexOf(res)==-1)
-
this.ssjg+=res;
- }
-
functionjclass.prototype.scda()
- {
-
sskgxx.innerText="全部答案:/n"+this.ssjg;
- }
-
functionjclass.prototype.gx(ss)
- {
-
varsw1=ss.match(//(/g),sw2=ss.match(//)/g);
-
sw1=(sw1==null)?0:sw1.length;
-
sw2=(sw2==null)?0:sw2.length;
-
if(sw1!=sw2)
-
return"左右括号个数不一样";
-
if(!/^/(*(/d+)/)*[/+/-/*//]/(*(/d+)/)*[/+/-/*//]/(*(/d+)/)*[/+/-/*//]/(*(/d+)/)*$/.test(ss))
-
return"算术表达式格式不正确";
-
varstr="#"+RegExp.$1+"|#"+RegExp.$2+"|#"+RegExp.$3+"|#"+RegExp.$4+"|";
-
for(varii=0;ii<4;ii++)
- {
-
varlok="#"+this.xpa[ii]+"|";
-
if(str.indexOf(lok)!=-1)
-
str=str.replace(lok,"");
-
else
-
return"算术表达式中数字不对";
- }
-
return"yes";
- }
-
-
functionfpaaSystem()
- {
-
if(jcsl!=null)
- ggcs.phl();
-
jcsl=newjclass();
-
do{
- jcsl.rnd();
- jcsl.jw();
-
}while(jcsl.ssjg=="");
-
k_jg.innerText="";
-
sskgxx.innerText="";
-
gstext.value="";
- jcsl.fapai();
- }
-
functionfpaaInput()
- {
-
varins=prompt("请输入四个数字(如:5,4,7,10)","");
-
if(ins==null)return;
-
if(!/^/d{1,2},/d{1,2},/d{1,2},/d{1,2}$/.test(ins)){alert("输入的内容不正确!");return;}
-
varvf=jcsl!=null;
-
jcsl=newjclass();
-
jcsl.xpa=ins.split(",");
- jcsl.jw();
-
if(jcsl.ssjg==""){alert("此题无解!!!");return;}
-
if(vf)
- ggcs.phl();
-
k_jg.innerText="";
-
sskgxx.innerText="";
-
gstext.value="";
- jcsl.fapai();
- }
-
functionckda()
- {
-
if(jcsl==null)return;
- ggcs.phl();
- jcsl.scda();
-
jcsl=null;
- }
-
functionokaa()
- {
-
if(jcsl==null)return;
-
vargs=gstext.value;
-
varstr=jcsl.gx(gs);
-
if(str!="yes")
- {
-
alert("算式错误:"+str+"!");
-
return;
- }
-
if(Math.abs(eval(gs)-24)<=jcsl.wx)
- ggcs.pzq();
-
else
- ggcs.pcw();
- jcsl.scda();
-
jcsl=null;
- }
-
functiontocs(n)
- {
-
if(jcsl==null)return;
- gstext.value+=jcsl.xpa[n];
- }
- </script>
谁能翻译下呢?
翻译出来的发邮件给我哦:hm.y@live.cn
分享到:
相关推荐
#二维码(QRcode)生成算法 C语言/C++ 源码 1. 根据输入字符串识别编码模式; 2. 根据输入字符串长度选择合适的QRcode版本; 3. 将编码转换为二进制位流表示为数据码字; 4. 使用多项式生成纠错码; 5. 将数据码和...
c/c++算法实现多路pcm混音源码
先来先服务算法,最短作业优先算法,最短剩余时间优先算法,响应比最高者优先算法,优先级调度算法,轮转调度算法,多级反馈队列调度 c/c++实现
K近邻算法c/c++K近邻算法c/c++K近邻算法c/c++K近邻算法c/c++K近邻算法c/c++
最近需要和银行pos做数据通讯,银行端算法为java实现的 AES/ECB/PKCS5PADDING我也改不了, c/c++这边实现ECB算法本来就少,PKCS5PADDING的更是没有,索性自己动手。工作原因c和java都得熟悉,因此把java端和c/c++...
一些C++常用算法 比较经典 不要分的 和大家分享一下
C/C++常用算法手册 带有详细书签目录 高清pdf 算法分析详尽
C/C++经典算法详解 C/C++经典算法详解
C/C++算法100题 C/C++算法100题 C/C++算法100题 C/C++算法100题
C语言/C++基础之爱心源码,适合初学C语言/C++的小伙伴学习研究,博客中有对应的讲解和演示,避免走弯路,费时费力。也真心希望能够帮助正在苦学C语言/C++ 程序设计的小伙伴们,你们的成长是我最大的幸福
C/C++排序算法总结 快速 插入 冒泡 希尔
C语言/C++基础之冰墩墩源码,适合初学C语言/C++的小伙伴学习研究,博客中有对应的讲解和演示,避免走弯路,费时费力。也真心希望能够帮助正在苦学C语言/C++ 程序设计的小伙伴们,你们的成长是我最大的幸福
用C/C++实现的各种经典算法以及常见面试题
归并分类 计算机算法 c/c++语言 递归和非递归
C语言/C++基础之跨年烟花代码,适合初学C语言/C++的小伙伴学习研究,博客中有对应的讲解和演示,避免走弯路,费时费力。也真心希望能够帮助正在苦学C语言/C++ 程序设计的小伙伴们,你们的成长是我最大的幸福
最近需要和银行pos做数据通讯,银行端算法为java实现的 AES/ECB/PKCS5PADDING我也改不了, c/c++这边实现ECB算法本来就少,PKCS5PADDING的更是没有,索性自己动手。工作原因c和java都得熟悉,因此把java端和c/c++...
C语言/C++基础之爱心程序源码,适合初学C语言/C++的小伙伴学习研究,博客中有对应的讲解和演示,避免走弯路,费时费力。也真心希望能够帮助正在苦学C语言/C++ 程序设计的小伙伴们,你们的成长是我最大的幸福
c/c++日期算法设计
用C/C++实现贪吃蛇游戏,并运用图形驱动画面,形象便于理解
BP算法c/C++实现