javascript写的扫雷(asp版)
2011-10-25 09:38
281 查看
<!--#include file="conn.asp" -->
<html>
<title>扫雷</title>
<head>
<style type="text/css">
<!--
.table2 {
border-top-width: 1px;
border-right-width: 1px;
border-bottom-width: 1px;
border-left-width: 1px;
border-bottom-style: 1px;
border-top-color: #000000;
border-right-color: #000000;
border-bottom-color: #000000;
border-left-color: #000000;
border-top-style: 1px;
border-right-style: 1px;
border-left-style: 1px;
font-size: 14px;
}
-->
</style>
<script type="text/javascript">
var ctime=0
var ttime
function timedCount()
{
document.getElementById('timetxt').value=ctime
ctime=ctime+1
ttime=setTimeout("timedCount()",1000)
}
function finished()
{ var i,j;
for(j=0;j<10;j++)
{for (i=0;i<10;i++)
{
if (barr[j][i]==0)
{return 0}
}
}
return 1
}
function mark0(i,j)
{/*如果在(i,j) (0=<i,j<N) 内地雷数目为0,并把连续的区域都显示*/
var n,i1,j1;
var ijinc=new Array(-1,-1,-1,0,-1,1,0,-1,0,1,1,-1,1,0,1,1);
var x1=document.getElementById('myTable').rows[i].cells
x1[j].innerHTML=0
barr[i][j]=1
for(n=0;n<8;n++)/*扫描周边方格内的数值是否为0*/
{
i1=i+ijinc[n*2+0];
j1=j+ijinc[n*2+1];
if(i1>=0&&i1<10&&j1>=0&&j1<10)
{
if(aarr[i1][j1]==0&&barr[i1][j1]==0)
{mark0(i1,j1)}
else
{
var x1=document.getElementById('myTable').rows[i1].cells
x1[j1].innerHTML=aarr[i1][j1]
barr[i1][j1]=1
}
}
}
}
function show_coords(event)
{
x=parseInt((event.clientX-15)/21)
y=parseInt((event.clientY-19)/22)
//alert("X 坐标: " + x + ", Y 坐标: " + y)
if(x>=0&&x<10&&y>=0&&y<10&&ctime>0)
{
if (event.button==2)
{
//alert("您点击了鼠标右键!")
var x1=document.getElementById('myTable').rows[y].cells
x1[x].innerHTML='*'
if(aarr[y][x]==9)
{barr[y][x]=1}
}
else
{
var x1=document.getElementById('myTable').rows[y].cells
x1[x].innerHTML=aarr[y][x]
barr[y][x]=1
if(aarr[y][x]==9)
{
ctime=ctime+20
alert("您点击了地雷!")
return
}
if(aarr[y][x]==0)
{
mark0(y,x)
}
}
if(finished()==1)
{
clearTimeout(ttime)
alert("您完成了任务!")
}
}
}
function setmine( i,j)
{
//*在(i,j) (0=<i,j<N) 放一枚地雷,并设置周边空格内地雷数目*/
var n,i1,j1;
var ijinc=new Array(-1,-1,-1,0,-1,1,0,-1,0,1,1,-1,1,0,1,1);
if (aarr[i][j]==9)
{return 0}
aarr[i][j]=9;/*标记为地雷*/
for(n=0;n<8;n++)/*标记周边方格内的数值即地雷数*/
{
i1=i+ijinc[n*2+0];
j1=j+ijinc[n*2+1];
if((i1>=0)&&(i1<10) &&(j1>=0)&&(j1<10) &&(aarr[i1][j1]<9))
{aarr[i1][j1]++;}
}
return 1;
}
function ajaxbegin()
{
var xmlHttp;
try
{ // Firefox, Opera 8.0+, Safari
xmlHttp=new XMLHttpRequest();
}
catch (e)
{ // Internet Explorer
try
{
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
try
{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e)
{
alert("您的浏览器不支持AJAX!");
return false;
}
}
}
xmlHttp.open("GET","useradd.asp",true);
xmlHttp.send(null);
}
function ajaxend()
{
var xmlHttp;
try
{ // Firefox, Opera 8.0+, Safari
xmlHttp=new XMLHttpRequest();
}
catch (e)
{ // Internet Explorer
try
{
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
try
{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e)
{
alert("您的浏览器不支持AJAX!");
return false;
}
}
}
xmlHttp.open("GET","usersub.asp",true);
xmlHttp.send(null);
}
</script>
</head>
<body onmousedown="show_coords(event)" oncontextmenu="window.event.returnvalue=false; return false;" onbeforeunload="ajaxend()">
<table id="myTable" width="220" border="1" class="table2" >
<script type="text/javascript">
var i=0,j=0
var time=10
var aarr=new Array(0,0,0,0,0,0,0,0,0,0)
for (i=0;i<10;i++)
{
aarr[i]=new Array(0,0,0,0,0,0,0,0,0,0)
}
var barr=new Array(0,0,0,0,0,0,0,0,0,0)
for (i=0;i<10;i++)
{
barr[i]=new Array(0,0,0,0,0,0,0,0,0,0)
}
while(time>0)
{
i=parseInt(10*Math.random())
j=parseInt(10*Math.random())
if(setmine(i,j)==1)
{time=time-1}
}
for(j=0;j<10;j++)
{
for (i=0;i<10;i++)
{
document.write("<td>"+" "+"</td>")
}
document.write("<tr>")
}
document.write("</table>")
ajaxbegin()
</script>
<form>
<input type="button" value="开始" onClick="timedCount()">
<input type="text" id="timetxt">
</form>
<p>单击看,右键标记,点击地雷加20秒,F5重新开始!</p>
<%
sql="select * from data where id=1"
set rs=conn.execute(sql)
total=rs("totaluser")+1
online=rs("onlineuser")+1
rs.close
set rs=nothing
conn.close
set conn=nothing
response.write("访问次数:")
response.write(total)
response.write(" 在线:")
response.write(online)
%>
</body>
</html>
<html>
<title>扫雷</title>
<head>
<style type="text/css">
<!--
.table2 {
border-top-width: 1px;
border-right-width: 1px;
border-bottom-width: 1px;
border-left-width: 1px;
border-bottom-style: 1px;
border-top-color: #000000;
border-right-color: #000000;
border-bottom-color: #000000;
border-left-color: #000000;
border-top-style: 1px;
border-right-style: 1px;
border-left-style: 1px;
font-size: 14px;
}
-->
</style>
<script type="text/javascript">
var ctime=0
var ttime
function timedCount()
{
document.getElementById('timetxt').value=ctime
ctime=ctime+1
ttime=setTimeout("timedCount()",1000)
}
function finished()
{ var i,j;
for(j=0;j<10;j++)
{for (i=0;i<10;i++)
{
if (barr[j][i]==0)
{return 0}
}
}
return 1
}
function mark0(i,j)
{/*如果在(i,j) (0=<i,j<N) 内地雷数目为0,并把连续的区域都显示*/
var n,i1,j1;
var ijinc=new Array(-1,-1,-1,0,-1,1,0,-1,0,1,1,-1,1,0,1,1);
var x1=document.getElementById('myTable').rows[i].cells
x1[j].innerHTML=0
barr[i][j]=1
for(n=0;n<8;n++)/*扫描周边方格内的数值是否为0*/
{
i1=i+ijinc[n*2+0];
j1=j+ijinc[n*2+1];
if(i1>=0&&i1<10&&j1>=0&&j1<10)
{
if(aarr[i1][j1]==0&&barr[i1][j1]==0)
{mark0(i1,j1)}
else
{
var x1=document.getElementById('myTable').rows[i1].cells
x1[j1].innerHTML=aarr[i1][j1]
barr[i1][j1]=1
}
}
}
}
function show_coords(event)
{
x=parseInt((event.clientX-15)/21)
y=parseInt((event.clientY-19)/22)
//alert("X 坐标: " + x + ", Y 坐标: " + y)
if(x>=0&&x<10&&y>=0&&y<10&&ctime>0)
{
if (event.button==2)
{
//alert("您点击了鼠标右键!")
var x1=document.getElementById('myTable').rows[y].cells
x1[x].innerHTML='*'
if(aarr[y][x]==9)
{barr[y][x]=1}
}
else
{
var x1=document.getElementById('myTable').rows[y].cells
x1[x].innerHTML=aarr[y][x]
barr[y][x]=1
if(aarr[y][x]==9)
{
ctime=ctime+20
alert("您点击了地雷!")
return
}
if(aarr[y][x]==0)
{
mark0(y,x)
}
}
if(finished()==1)
{
clearTimeout(ttime)
alert("您完成了任务!")
}
}
}
function setmine( i,j)
{
//*在(i,j) (0=<i,j<N) 放一枚地雷,并设置周边空格内地雷数目*/
var n,i1,j1;
var ijinc=new Array(-1,-1,-1,0,-1,1,0,-1,0,1,1,-1,1,0,1,1);
if (aarr[i][j]==9)
{return 0}
aarr[i][j]=9;/*标记为地雷*/
for(n=0;n<8;n++)/*标记周边方格内的数值即地雷数*/
{
i1=i+ijinc[n*2+0];
j1=j+ijinc[n*2+1];
if((i1>=0)&&(i1<10) &&(j1>=0)&&(j1<10) &&(aarr[i1][j1]<9))
{aarr[i1][j1]++;}
}
return 1;
}
function ajaxbegin()
{
var xmlHttp;
try
{ // Firefox, Opera 8.0+, Safari
xmlHttp=new XMLHttpRequest();
}
catch (e)
{ // Internet Explorer
try
{
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
try
{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e)
{
alert("您的浏览器不支持AJAX!");
return false;
}
}
}
xmlHttp.open("GET","useradd.asp",true);
xmlHttp.send(null);
}
function ajaxend()
{
var xmlHttp;
try
{ // Firefox, Opera 8.0+, Safari
xmlHttp=new XMLHttpRequest();
}
catch (e)
{ // Internet Explorer
try
{
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
try
{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e)
{
alert("您的浏览器不支持AJAX!");
return false;
}
}
}
xmlHttp.open("GET","usersub.asp",true);
xmlHttp.send(null);
}
</script>
</head>
<body onmousedown="show_coords(event)" oncontextmenu="window.event.returnvalue=false; return false;" onbeforeunload="ajaxend()">
<table id="myTable" width="220" border="1" class="table2" >
<script type="text/javascript">
var i=0,j=0
var time=10
var aarr=new Array(0,0,0,0,0,0,0,0,0,0)
for (i=0;i<10;i++)
{
aarr[i]=new Array(0,0,0,0,0,0,0,0,0,0)
}
var barr=new Array(0,0,0,0,0,0,0,0,0,0)
for (i=0;i<10;i++)
{
barr[i]=new Array(0,0,0,0,0,0,0,0,0,0)
}
while(time>0)
{
i=parseInt(10*Math.random())
j=parseInt(10*Math.random())
if(setmine(i,j)==1)
{time=time-1}
}
for(j=0;j<10;j++)
{
for (i=0;i<10;i++)
{
document.write("<td>"+" "+"</td>")
}
document.write("<tr>")
}
document.write("</table>")
ajaxbegin()
</script>
<form>
<input type="button" value="开始" onClick="timedCount()">
<input type="text" id="timetxt">
</form>
<p>单击看,右键标记,点击地雷加20秒,F5重新开始!</p>
<%
sql="select * from data where id=1"
set rs=conn.execute(sql)
total=rs("totaluser")+1
online=rs("onlineuser")+1
rs.close
set rs=nothing
conn.close
set conn=nothing
response.write("访问次数:")
response.write(total)
response.write(" 在线:")
response.write(online)
%>
</body>
</html>
相关文章推荐
- ASP.NET如何刷新父窗口的javascript腳本
- 结合JavaScript与ASP.NET Web窗体进行程序开发
- Asp.Net Ajax 学习笔记21 VS2008的JavaScript代码提示功能
- 子页面关闭时刷新父页面 javascript + asp.net
- 深入解析javascript与asp.net对Cookie操作的异同,以及如何共用(一)。
- asp.net 服务器控件调用javascript
- [转]Cookies揭秘 [Asp.Net, Javascript]
- 总结 asp.net 和 javascript获取本地IP(MAC)和服务器IP(MAC)的方法
- 收藏 不显示删除回复显示所有回复显示星级回复显示得分回复 ASP加javascript实现图片轮流显示(图片路径从数据库中读取)
- ASP.NET 动态输出Javascript 文本格式换行问题 [ASP.NET | C# | Response]
- 在asp.net的后置代码中写入javascript语句,防止提示框背景变白
- javascript中取得asp.net的DropDownList控件的值
- ASP.NET中前台javascript与后台代码调用
- Asp.Net+Javascript+CSS(模仿google的拖拽的个性网页布局) _操作数据库篇
- ASP.NET AJAX 说明文档->客户端引用->全局命名空间->JavaScript 基础类型扩展->Array 类型扩展
- 使用javaScript解决asp.net中mvc使用ajax提交数组参数的匹配问题
- Cool tool !ASP.NET AJAX JavaScript Class Browser
- ASP.NET操作JavaScript的类
- JavaScript组件之JQuery(A~Z)教程(基于Asp.net运行环境)[示例代码下载]
- ASP.NET AJAX(5)__JavaScript原生类型以及Microsoft AJAX Library