showGame.jsp得到修正,修正了能输入6+6+6+6=24之类的数值与显示不匹配的bug
showGame.jsp:
<%@ page language="java" contentType="text/html; charset=gbk"
pageEncoding="gbk"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gbk">
<title>24点游戏</title>
<style type="text/css">
.card{
font-size:100px;
text-align:center;
}
button{
}
</style>
<script type="text/javascript" src="dwr/engine.js"></script>
<script type="text/javascript" src="dwr/util.js"></script>
<script type="text/javascript" src="dwr/interface/brain.js"></script>
<script type="text/javascript">
function isNumber(value) {
var flag = true;
var strP=/^\d+(\.\d+)?$/;
if(!strP.test(value)) {
flag = false;
}
try {
if(parseFloat(value) != value) {
flag = false;
}
} catch(ex) {
flag = false;
}
return flag;
}
var a = 0;
var b = 0;
var c = 0;
var d = 0;
//答案提示
function pointOut(){
dwr.engine.setAsync(false);
//得到正确答案
brain.getExpressions(
function (datas){
if(datas == null){
return ;
}
var exps = "";
for(var i=0;i<datas.length;i++){
exps += datas[i] + "<br/>";
}
$("div2").innerHTML = exps;
}
);
//判断是否输入正确
var exp = $("shuru").value;
//TODO 判断输入是否是显示的数字
try
{
//...
if(!exp.search(/\d{1,2}\W\d{1,2}\W\d{1,2}\W\d{1,2}/g)){
throw e;
}
var reg = new RegExp();
if(!(reg.test(a)&®.test(b)&®.test(c)&®.test(d))){
throw e;
}
eval("var rt = " + $("shuru").value);
}
catch(e){
$("div1").color = "yellow";
$("div1").innerHTML = "请您认真答题";
}
//alert("2");
if(isNumber(rt)){
if(rt == 24){
$("div1").color = "green";
$("div1").innerHTML = "恭喜您,答对了";
}else{
$("div1").color = "red";
$("div1").innerHTML = "对不起,您答错了";
}
}else{
$("div1").color = "yellow";
$("div1").innerHTML = "请您认真答题";
}
}
function next(){
dwr.engine.setAsync(false);
//初始化desk,即本次获取的所有数据
brain.init();
//得到牌并显示
brain.getA(
function(data){
a = data;
$("1").innerHTML = data + "";
}
);
brain.getB(
function(data){
b = data;
$("2").innerHTML = data + "";
}
);
brain.getC(
function(data){
c = data;
$("3").innerHTML = data + "";
}
);
brain.getD(
function(data){
d = data;
$("4").innerHTML = data + "";
}
);
}
</script>
</head>
<body>
<h1>24点游戏</h1>
<table border="1" width="50%" height="300" align="center">
<tr>
<td id="1" class="card" width="25%"> </td>
<td id="2" class="card" width="25%"> </td>
<td id="3" class="card" width="25%"> </td>
<td id="4" class="card" width="25%"> </td>
</tr>
</table><br/>
请根据4张牌输入表达式使得结果为24:<input type="text" id="shuru" style="height:50px;width:400px;"/><br/>
<input type="button" οnclick="pointOut()" value="提交表达式" style="height:50px;width:200px;"/><br/>
<font id="div1" color="red" size="30px"></font><br/>
<input type="button" οnclick="next()" value="下一个(next)" style="height:50px;width:200px;"><br/>
<dir id="div2"></dir>
</body>
</html>