js实现windows扫雷(jquery)
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> </head>
<body>
<style>
table{background-color: red;}
tr td{width: 20px;height: 20px;background-color: yellow;}
</style> <script src="http://libs.baidu.com/jquery/1.7.2/jquery.min.js"></script>
<table>
<script> var x=9;//宽度
var y=9;//高度
var shu=20;//雷数
var lei=new Array();//雷的位置
//循环出随机雷的位置
for(var l=0;l<shu;l++){
var c=Math.floor(Math.random()*parseInt(String(x)+y));
lei[l]=c;
} for(var i=1;i<x;i++){
document.write('<tr>');
for(var s=1;s<y;s++){
//如果这个位置是雷 显示*
if(xunhuan(String(i) + String(s))){
document.write('<td value="*"></td>');
}else{
//不是累就显示 周围的雷数
document.write('<td value="'+leishu(i,s)+'"></td>'); } }
document.write('</tr>'); }
//判断一个坐标是不是雷
function xunhuan(xy){ if(jQuery.inArray(parseInt(xy), lei)!=-1){
return true;
}else{
return false;
}
}
//判断一个坐标的 上下左右的坐标
function leishu(i,s){
var shu=0;
//上边
if((i-1)>=1){
if(xunhuan(String(i-1)+s)){
shu+=1;
}
}
//下边
if((i+1)<y){
if(xunhuan(String(i+1)+s)){
shu+=1;
}
}
//左边
if((s-1)>=1){
if(xunhuan(String(i)+(s-1))){
shu+=1;
}
}
//右边
if((s+1)<x){
if(xunhuan(String(i)+(s+1))){
shu+=1;
}
}
//左上
if((i-1)>=1 && (s-1)>=1){
if(xunhuan(String(i-1)+String(s-1))){
shu+=1;
}
}
//右上
if((i-1)>=1 && (s+1)<x){
if(xunhuan(String(i-1)+String(s+1))){
shu+=1;
}
}
//左下
if((i+1)<y && (s-1)>=1){
if(xunhuan(String(i+1)+String(s-1))){
shu+=1;
}
}
//右下
if((i+1)<y && (s+1)<x){
if(xunhuan(String(i+1)+String(s+1))){
shu+=1;
}
} return shu;
}
$(function(){
$("table").on("click","td", function () {
$val=$(this).attr("value");
if($val=='*'){
$(this).text('雷');
}else{
$(this).text($val);
} });
}); </script>
</table>
</body>
</html>
js实现windows扫雷(jquery)的更多相关文章
- Chocolat.js – 响应式的 jQuery Lightbox 插件
Chocolat.js 使您能够显示一个或多个图像在同一页面上.给用户展示一组图片缩略图,可以显示全页或块.Chocolat.js 可以很好地处理所有主要的浏览器.它在下面这些浏览器测试通过:IE7+ ...
- 原生js使用forEach()与jquery使用each遍历数组,return false 的区别
原生js使用forEach()与jquery使用each()遍历数组,return false 的区别: 1.使用each()遍历数组a,如下: var a=[20,21,22,23,24]; $.e ...
- 用Node.js开发Windows 10物联网应用
(此文章同时发表在本人微信公众号"dotNET每日精华文章",欢迎右边二维码来关注.) 未来10年内,物联网将会如移动互联网这样深入到我们生活的各方各面.所以微软现在对物联网进行了 ...
- Node.js在Windows与Linux下的安装
一.Windows配置 (1)官网(http://nodejs.org)选择Node.js的Windows系统(32位和64位)最新版本. (2)下载完成后,执行MSI的安装文件. (3)安装完成,查 ...
- aspx中的表单验证 jquery.validate.js 的使用 以及 jquery.validate相关扩展验证(Jquery表单提交验证插件)
这一期我们先讲在aspx中使用 jquery.validate插件进行表单的验证, 关于MVC中使用 validate我们在下一期中再讲 上面是效果,下面来说使用步骤 jQuery.Valid ...
- jquery.validate.js默认配置,jquery.validate.js自定义提示信息
jquery.validate.js默认配置,jquery.validate.js自定义提示信息 配置jQuery.validator默认的处理方法 >>>>>>& ...
- jquery.validate.js校验select2解决方案,Jquery插件select2校验解决方案
jquery.validate.js校验select2解决方案 Jquery插件select2校验解决方案 >>>>>>>>>>>&g ...
- 原生JS研究:学习jquery源码,收集整理常用JS函数
原生JS研究:学习jquery源码,收集整理常用JS函数: 1. JS获取原生class(getElementsByClass) 转自:http://blog.csdn.net/kongjiea/ar ...
- js前端分页之jQuery
锋利的js前端分页之jQuery 大家在作分页时,多数是在后台返回一个导航条的html字符串,其实在前端用js也很好实现. 调用pager方法,输入参数,会返回一个导航条的html字符串.方法的内部比 ...
随机推荐
- /cdrom /media /mnt
/media : Mount point for removeable media Purpose This directory contains subdirectories which are u ...
- Python的类实例属性访问规则
一般来说,在Python中,类实例属性的访问规则算是比较直观的. 但是,仍然存在一些不是很直观的地方,特别是对C++和Java程序员来说,更是如此. 在这里,我们需要明白以下几个地方: 1.Pytho ...
- css ul li 水平布局问题
可以有俩种方法,暂时只用float:left: 找到每一个li进行水平浮动 #hd_nav li{ border-right: 1px solid rgba(255,255,255,0.2); f ...
- 15. 3Sum
Given an array S of n integers, are there elements a, b, c in S such that a + b + c = 0? Find all un ...
- JavaWeb学习记录(五)——Servlet随机产生验证码
随机产生验证码的工具类: import java.awt.Color;import java.awt.Graphics;import java.awt.image.BufferedImage;impo ...
- spark新能优化之序列化的持久化级别
除了对多次使用的RDD进行持久化操作之外,还可以进一步优化其性能.因为很有可能,RDD的数据是持久化到内存,或者磁盘中的.那么,此时,如果内存大小不是特别充足,完全可以使用序列化的持久化级别,比如ME ...
- POJ-2481 Cows (线段树单点更新)
题目大意:给n个区间,对于任意一个区间,求出能完全包含它并且长度比它长的区间的个数. 题目分析:将一个区间视为二位坐标系中的一个点,左端点视作横坐标,右端点视作纵坐标.则题目变成了求每个点的左上方.正 ...
- poj2367 拓扑序
题意:有一些人他们关系非常复杂,一个人可能有很多后代,现在要制定一种顺序,按照前辈在后代前排列就行 拓扑序裸题,直接建边拓扑排序一下就行了. #include<stdio.h> #incl ...
- Java——集合框架 工具
/* * Arrays工具类的使用 */ public class ArraysTest { public static void main(String[] args) { // TODO A ...
- javascript零散要点收集
1.this永远指向函数对象的所有者 2.ECMA-262 把对象(object)定义为“属性的无序集合,每个属性存放一个原始值.对象或函数”.严格来说,这意味着对象是无特定顺序的值的数组. 3.pr ...