HTML我也在学习中!感觉应该不会很难。我刚刚写了一个猜数字的游戏,你想看看源代码吗?也顺便指正一下我。 <html> <head> <title>估数字游戏</title> <h1><p align="center">欢迎来玩“估数字游戏!”</p></h1>
<p align="center"><input type="button" value="怎么玩法?" onclick="gogogo()"></p> <p align="center">请在这里输入:<input type="text" name="usernum"></p>
<p align="center"> <input type="button" onclick="game()" value="我猜!"> <input type="button" onclick="getm()" value="重新玩过!"> <input type="button" onclick=javascript:window.close() value="不玩了,退出!"> </p>
<p align="center"><form>第1次:<input type="text" name="t1" onFocus="this.blur()"></form></p> <p align="center"><form>第2次:<input type="text" name="t1" onFocus="this.blur()"></form></p> <p align="center"><form>第3次:<input type="text" name="t1" onFocus="this.blur()"></form></p> <p align="center"><form>第4次:<input type="text" name="t1" onFocus="this.blur()"></form></p> <p align="center"><form>第5次:<input type="text" name="t1" onFocus="this.blur()"></form></p> <p align="center"><form>第6次:<input type="text" name="t1" onFocus="this.blur()"></form></p> <p align="center"><form>第7次:<input type="text" name="t1" onFocus="this.blur()"></form></p> <p align="center"><form>第8次:<input type="text" name="t1" onFocus="this.blur()"></form></p> <p align="center"><form>第9次:<input type="text" name="t1" onFocus="this.blur()"></form></p> <p align="center"><form>第10次:<input type="text" name="t1" onFocus="this.blur()"></form></p>
<script language="JavaScript"> function getm1() { for(m=Math.floor(Math.random()*10000);m<1000||m>=10000;m=Math.floor(Math.random()*10000)); //随机生成了四位整数m
a=Math.floor(m/1000); b=Math.floor((m/100)-(a*10)); c=Math.floor((m-(a*1000)-(b*100))/10); d=Math.floor(m-(a*1000)-(b*100)-(c*10)); //拆开m用以检验m是否每个数位上的数字都不一样 }
function getm() { for(x=0;x<=9;x++){document.forms[x].t1.value="";} //初始化结果输出框 usernum.value=""; //初始化用户输入框
do{getm1()}while(a==b||a==c||a==d||b==c||b==d||c==d); //确定了m各个数位上的数字都不一样
x=0; //生成x用于计算用户已经猜了多少次,和将答案填在哪个form的文本框里 }
function game() { while(1) { if(x==10) { alert("对不起,机会已经用完!答案是:"+m); if(confirm("要再玩一次吗?"))getm(); break; } //避免用户在机会已经用完后依然继续猜
n=usernum.value; if(n-n!=0||n==0||Math.floor(n/1000)==0||Math.floor(n/1000)>=10) { alert("请输入四位整数!!!"); break; } //确定了用户输入的为四位整数n
$ma=Math.floor(m/1000); $mb=Math.floor((m/100)-($ma*10)); $mc=Math.floor((m-($ma*1000)-($mb*100))/10); $md=Math.floor(m-($ma*1000)-($mb*100)-($mc*10));
$na=Math.floor(n/1000); $nb=Math.floor((n/100)-($na*10)); $nc=Math.floor((n-($na*1000)-($nb*100))/10); $nd=Math.floor(n-($na*1000)-($nb*100)-($nc*10)); //将m和n拆开用以检验答案的正确与否
if($ma==$na&&$mb==$nb&&$mc==$nc&&$md==$nd) { alert("恭喜!你猜对了!"); if(confirm("要再玩一次吗?"))getm(); break; }
$A=0; $B=0;
while(1) { if($ma==$na) { $ma=-1; $na=-1; $A++; break; } if($ma==$nb) { $ma=-1; $nb=-1; $B++; break; } if($ma==$nc) { $ma=-1; $nc=-1; $B++; break; } if($ma==$nd) { $ma=-1; $nd=-1; $B++; } break; }
while(1) { if($mb==$nb) { $mb=-1; $nb=-1; $A++; break; } if($mb==$na) { $mb=-1; $na=-1; $B++; break; } if($mb==$nc) { $mb=-1; $nc=-1; $B++; break; } if($mb==$nd) { $mb=-1; $nd=-1; $B++; } break; }
while(1) { if($mc==$nc) { $mc=-1; $nc=-1; $A++; break; } if($mc==$na) { $mc=-1; $na=-1; $B++; break; } if($mc==$nb) { $mc=-1; $nb=-1; $B++; break; } if($mc==$nd) { $mc=-1; $nd=-1; $B++; } break; }
while(1) { if($md==$nd) { $md=-1; $nd=-1; $A++; break; } if($md==$na) { $md=-1; $na=-1; $B++; break; } if($md==$nb) { $md=-1; $nb=-1; $B++; break; } if($md==$nc) { $md=-1; $nc=-1; $B++; } break; }
alert($A+"A"+$B+"B"); //检验答案并向用户输出检验结果
document.forms[x].t1.value=n+"--"+$A+"A"+$B+"B"; //在相应的form的文本框里输入答案
if(x==8) { alert("最后一次机会!"); } if(x==9) { alert("对不起,机会已经用完!答案是:"+m); x++; //将x加1,此时x将等于10,假如用户不选择重新开始游戏将x复位为0,就会使函数开头的if()生效 if(confirm("要再玩一次吗?"))getm(); break; }
x++; //将x增加1,记录用户已经猜了一次
break; } }
function gogogo() { document.write("<title>游戏规则</title>"); document.write("<h1><p align='center'>游戏规则</p></h1>"); document.write("计算机会自动生成一个4位整数(4个数位上的数字都不相同),然而你不会被告知这个数是什么。你可以在“请在这里输入:”右面的文本框里输入你猜的4位整数,然后按按钮“我猜!”,来检验你猜的数是否正确。这时候,计算机会弹出一个对话框,告知你猜的数与计算机生成的数有多大出入。假如你猜的数与计算机生成的数有一个数字是数字也相同,所在的数位也相同,那么就有1个A;假如你猜的数与计算机生成的数有一个数字是数字相同,但所在的数位不同,那么就有1个B。例如:计算机生成1234,你猜1567,那么计算机返回“1A0B”;计算机生成1234,你猜4567,那么计算机返回“0A1B”;计算机生成1234,你猜1243,那么计算机返回“2A2B”。在计算机返回结果的同时,计算机会在你猜的次数相应的文本框里面输入“你该次猜的数字--该次返回的结果”。你有10次机会。如果想重新玩,可以按按钮“重新玩过!”,计算机会重新生成一个4位整数,并把所有文本框里的内容重新初始化。如果不想玩了,想关闭网页,可以按按钮“不玩了,退出!”。"); document.write("<p align='right'>来自<b>猫皇帝</b>的温馨提示</p>"); document.write("<p align='center'><button onclick=javascript:window.history.back(-1)>知道了!</button></p>"); }
window.status="Script Writer:猫皇帝" </script> </head> <body onload="getm()"> </body> </html> 汗,会不会被认为我在灌水?
[此贴子已经被作者于2005-1-3 23:08:10编辑过]