24点源码 html,24点游戏Javascript源代码

24点游戏

body, td { font-family: 宋体; font-size: 9pt; background-color:#6699FF; color: #FFFFCC; }

.tht { font-family: 黑体; font-size: 24pt; color: #000066; font-weight:bold }

input { border: #C6FFFF 1px solid; background-color: #003399;

color: #FFFFFF;

}

.ipk {width: 39; height: 30; font-size: 14pt; font-weight:bold }

.tit { font-size: 14pt; border: #333399 2px solid; background-color: #ffffff; color: #333399; font-weight:bold }

.bg { width: 70; height: 32; }

.xg { width: 75; height: 30; }

#pkbox { width: 320; height: 110; }

#pkbox span {

border: #660099 3px solid; background-color: #ffffff; width: 68; height: 100; color: #000000;

font-size: 50px; text-align: center; cursor:hand; padding: 16 0; font-weight:bold;

}

#sskgxx { border: #000066 2px solid; background-color: #6666FF;

width: 130; height: 180; color: #ffCCFF; overflow: auto; padding: 4 7 }

#k_jg { color: #FF6666; font-size: 14pt; font-weight:bold; width: 130; }

// 程序作者:海浪

// 日期:2005-8-13

function lop(j)

{

if(j>0)

{

var ss = lop(j-1);

var px = "";

var oo = "$1"+j+"$2";

for(var k=0; k<=j; k++)

{

var re = new RegExp("(\\d{"+k+"})(.*?;)","g");

px += ss.replace(re,oo);

}

return px;

}

else

return "0;";

}

var gt = lop(3).slice(0,-1).split(";");

for(var i=0; i

gt[i] = gt[i].split("");

var ot = [];

var op = ["+","-","*","/"];

for(var x=0; x<4; x++)

for(var y=0; y<4; y++)

for(var z=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)";

}

///

var ggcs;

function ggcsclass()

{

this.pjys = 0;

this.zq = 0;

this.cw = 0;

this.hl = 0;

this.gx();

}

function ggcsclass.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;

}

function ggcsclass.prototype.phl()

{

this.hl++;

this.gx();

k_jg.innerText = "此题被忽略!!";

}

function ggcsclass.prototype.pcw()

{

this.cw++;

this.gx();

k_jg.innerText = "错误!!";

}

function ggcsclass.prototype.pzq()

{

var d = jcsl.endDate();

this.pjys += d/1000;

this.zq++;

this.gx();

k_jg.innerText = "正确!用时"+Math.round(d/10)/100+"秒!";

}

window.onload = function()

{

ggcs = new ggcsclass();

}

///

var jcsl=null;

function jclass()

{

this.xpa = [];

this.ssjg = "";

this.wx = 1E-10;

this.date = null;

}

function jclass.prototype.rnd()

{

for(var ii=0; ii<4; ii++)

this.xpa[ii] = Math.floor(Math.random()*10)+1;

}

function jclass.prototype.fapai()

{

for(var ii=0; ii<4; ii++)

document.getElementById("pk"+ii).innerText = this.xpa[ii];

this.date = new Date();

}

function jclass.prototype.endDate()

{

return new Date()-this.date;

}

function jclass.prototype.jw()

{

var a,b,c,d;

this.ssjg= "";

for(var i=0; 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(var h=0; 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));

}

}

function jclass.prototype.jcf(t)

{

var str = t;

var zz1 = t.replace(/[\(\)]/g,"");

var zz2 = t.replace(/[\(\)] /g,"");

var zz3 = t.replace(/[\(\)](?! )/g,"");

if(Math.abs(eval(zz1)-24)<=this.wx)

str = zz1;

else if(Math.abs(eval(zz2)-24)<=this.wx)

str = zz2;

else if(Math.abs(eval(zz3)-24)<=this.wx)

str = zz3;

var res = str.replace(/ /g,"")+"=24\n";

if(this.ssjg.indexOf(res)==-1)

this.ssjg += res;

}

function jclass.prototype.scda()

{

sskgxx.innerText = "全部答案:\n"+this.ssjg;

}

function jclass.prototype.gx(ss)

{

var sw1 = 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 "算术表达式格式不正确";

var str = "#"+RegExp.$1+"|#"+RegExp.$2+"|#"+RegExp.$3+"|#"+RegExp.$4+"|";

for(var ii=0; ii<4; ii++)

{

var lok = "#"+this.xpa[ii]+"|";

if(str.indexOf(lok)!=-1)

str = str.replace(lok,"");

else

return "算术表达式中数字不对";

}

return "yes";

}

//

function fpaaSystem()

{

if(jcsl!=null)

ggcs.phl();

jcsl = new jclass();

do {

jcsl.rnd();

jcsl.jw();

} while(jcsl.ssjg=="");

k_jg.innerText = "";

sskgxx.innerText = "";

gstext.value = "";

jcsl.fapai();

}

function fpaaInput()

{

var ins = 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; }

var vf = jcsl!=null;

jcsl = new jclass();

jcsl.xpa = ins.split(",");

jcsl.jw();

if(jcsl.ssjg=="") { alert("此题无解!!!");return; }

if(vf)

ggcs.phl();

k_jg.innerText = "";

sskgxx.innerText = "";

gstext.value = "";

jcsl.fapai();

}

function ckda()

{

if(jcsl==null) return;

ggcs.phl();

jcsl.scda();

jcsl=null;

}

function okaa()

{

if(jcsl==null) return;

var gs = gstext.value;

var str = 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;

}

function tocs(n)

{

if(jcsl==null) return;

gstext.value+=jcsl.xpa[n];

}

24点游戏 程序作者:海浪 日期:2005-8-13


平均用时:

正确:

错误:

忽略:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值