标题:自作一个纸牌游戏,但状态栏和提交按钮存在缺陷
只看楼主
yqiong
Rank: 1
等 级:新手上路
帖 子:315
专家分:0
注 册:2007-7-4
结帖率:83.33%
 问题点数:0 回复次数:4 
自作一个纸牌游戏,但状态栏和提交按钮存在缺陷

状态栏本要实现倒计时,但显示错误(返回了非数值)
提交按钮不成功!
请帮忙改改,找到错误原因并用有色笔标记出来!谢谢!
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
<script>
var card=new Array();
var usedcard=new Array();
for(i=0;i<4;i++)
{card[i]=0;
usedcar[i]=false;
}
var count=60;
var TimeId,StatusId;
function init(){
var i;
for(i=0;i<4;i++)
card[i]=Math.ceil(Math.random()*9);
StatusId=setTimeout("changestatus()",1000);
TimeId=setTimeout("open('timeout.html','towin','width=100,height=50');close();",60000);
}

function changestatus(){
clearTimeout(StatusId);
count--;
status="剩余时间为:"+count+"s";
setTimeout("changestatus()",1000);
}

function isvalid(){
var ex=document.setform.resulttext.value;
var exlen=ex.length;
var i,j;
var numerused=0;
for(i=0;i<exlen;i++)
{ var ch=ex.charAt(i);
if(eval(ch)>=0&&eval(ch)<=9)
{ for(j=0;j<4;j++)
if(eval(ch)==card[j]&&card[j]!=false)
{numerused++;
cardused[j]=false;
}
}
else
if(ch!="+"&&ch!="-"&&ch!="*"&&ch!="/"&&ch!="("&&ch!=")")
{alert("输入非法");return false;}
}
if(numused!=4)
{alert("你的输入是非法的!");
return false;}
return true;
}

function calresult(){
clearTimeout(TimeId);
if(isvalid()){
if(eval(document.setform.resulttext.value)==24)
{winid=open("yes.html","yeswind","width=100,height=50");
close();
return;
}
}
winid=open("no.html","nowind","width=100,height=50");
close();
return;
}
</script>
</head>

<body onLoad=document.setform.resulttext.focus()>
你可以使用的四张纸牌是:<br><br>
<script>
init();
for(i=0;i<4;i++)
document.write(card[i]+" ");
</script>
<p>
请在下边的输入框中输入你的答案:</p>
<form name="setform" >
<input type="text" name="resulttext" value="" size=20><br><br>
&nbsp;&nbsp;&nbsp;&nbsp;<input type="button" value="提交答案" onClick="calresult()">
<input type="button" value="放弃该局" onClick="self.close()">
</form>
</body>
</html>

搜索更多相关主题的帖子: 纸牌游戏 按钮 缺陷 状态 
2007-08-20 20:59
willam
Rank: 1
等 级:新手上路
帖 子:237
专家分:0
注 册:2007-7-13
得分:0 
var usedcard=new Array();
for(i=0;i<4;i++)
{card[i]=0;
usedcar[i]=false; 改成usedcard[i]=false;
看到那里错嘛.........................
2007-08-21 00:08
yqiong
Rank: 1
等 级:新手上路
帖 子:315
专家分:0
注 册:2007-7-4
得分:0 

太粗心了,改过后状态栏可以正确显示时间了!
但为什么提交按钮不能如愿实现呢?我把yes.html,no.html和timeout.html都保存在与本文件相同的文件夹中了呀!

2007-08-22 22:04
ayue222
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:341
专家分:0
注 册:2007-7-25
得分:0 
你应该好好看看浏览器的左下角 ...那里有详细的错误信息 ... 写程序不能这么粗心大意的 ...

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
<script>
var card=new Array();
var usedcard=new Array();
for(i=0;i<4;i++)
{card[i]=0;
usedcard[i]=false;
}
var count=60;
var TimeId,StatusId;
function init(){
var i;
for(i=0;i<4;i++)
card[i]=Math.ceil(Math.random()*9);
StatusId=setTimeout("changestatus()",1000);
TimeId=setTimeout("open('timeout.html','towin','width=100,height=50');close();",60000);
}

function changestatus(){
clearTimeout(StatusId);
count--;
status="剩余时间为:"+count+"s";
setTimeout("changestatus()",1000);
}

function isvalid(){
var ex=document.setform.resulttext.value;
var exlen=ex.length;
var i,j;
var numerused=0;
for(i=0;i<exlen;i++)
{ var ch=ex.charAt(i);
if(eval(ch)>=0&&eval(ch)<=9)
{ for(j=0;j<4;j++)
if(eval(ch)==card[j]&&card[j]!=false)
{numerused++; //你这里函数错误,我现在改了 ..
usedcard[j]=false;
}
}
else
if(ch!="+"&&ch!="-"&&ch!="*"&&ch!="/"&&ch!="("&&ch!=")")
{alert("输入非法");return false;}
}
if(numerused!=4)
{alert("你的输入是非法的!");
return false;}
return true;
}

function calresult(){
clearTimeout(TimeId);
if(isvalid()){
if(eval(document.setform.resulttext.value)==24)
{winid=open("nav1.htm","yeswind","width=100,height=50");
close();
return;
}
}
winid=open("nave2.htm","nowind","width=100,height=50");
close();
return;
}
</script>
</head>

<body onLoad=document.setform.resulttext.focus()>
你可以使用的四张纸牌是:<br><br>
<script>
init();
for(i=0;i<4;i++)
document.write(card[i]+" ");
</script>
<p>
请在下边的输入框中输入你的答案:</p>
<form name="setform" >
<input type="text" name="resulttext" value="" size=20><br><br>
&nbsp;&nbsp;&nbsp;&nbsp;<input type="button" value="提交答案" onClick="calresult()">
<input type="button" value="放弃该局" onClick="self.close()">
</form>
</body>
</html>

2007-08-23 09:11
yqiong
Rank: 1
等 级:新手上路
帖 子:315
专家分:0
注 册:2007-7-4
得分:0 

谢谢楼上的,状态栏确实可以显示时间
但按提交按钮它不触发calresult事件呢?怎么回事呀?

2007-08-26 23:00



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-164165-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.786850 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved