Back up the tudoudilei site
26
404.html
Executable file
@@ -0,0 +1,26 @@
|
||||
<!doctype html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
|
||||
<title>404</title>
|
||||
<style>
|
||||
body{
|
||||
background-color:#444;
|
||||
font-size:14px;
|
||||
}
|
||||
h3{
|
||||
font-size:60px;
|
||||
color:#eee;
|
||||
text-align:center;
|
||||
padding-top:30px;
|
||||
font-weight:normal;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<h3>404,您请求的文件不存在!</h3>
|
||||
</body>
|
||||
</html>
|
||||
96
index.php
Executable file
@@ -0,0 +1,96 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="zh-CN">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>土豆地雷</title>
|
||||
<style>
|
||||
body {
|
||||
text-align: center;
|
||||
font-family: Arial, sans-serif;
|
||||
background-color: #f0f0f0;
|
||||
margin-top: 50px;
|
||||
}
|
||||
|
||||
.container {
|
||||
position: relative;
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
#potato-mine {
|
||||
width: 200px;
|
||||
height: 200px;
|
||||
transition: transform 0.5s ease-in-out;
|
||||
position: relative;
|
||||
z-index: 1; /* 土豆地雷在上层 */
|
||||
}
|
||||
.grass {
|
||||
position: absolute;
|
||||
width: 200px;
|
||||
height: 30px;
|
||||
background-color: #228B22; /* 草地颜色 */
|
||||
bottom: 0px; /* 草地位于地面上方 */
|
||||
left: 0;
|
||||
z-index: 2; /* 草地在地面上方 */
|
||||
border-radius: 5px 5px 0 0;
|
||||
}
|
||||
.ground {
|
||||
position: absolute;
|
||||
width: 200px;
|
||||
height: 100px; /* 土地的厚度增加 */
|
||||
background-color: #8B4513; /* 土色 */
|
||||
bottom: -100px; /* 向下移动地面 */
|
||||
left: 0;
|
||||
z-index: 2; /* 地面在土豆地雷上方 */
|
||||
border-radius: 5px;
|
||||
}
|
||||
|
||||
#potato-mine:hover {
|
||||
transform: translateY(100px); /* 鼠标悬停时土豆地雷缩进地下 */
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<h2>我将会用尽全部力气,来保护土豆地雷</h2>
|
||||
<h3>哪怕与全世界为敌,我也会坚定地和你在一块</h3>
|
||||
<div class="container">
|
||||
<img id="potato-mine" src="https://ningbo1.picpic.yuheng.hl.cn/2025/01/29/679a333aeac50.jpg" alt="土豆地雷">
|
||||
<div class="grass"></div> <!-- 草地区域 -->
|
||||
<div class="ground"></div>
|
||||
</div>
|
||||
<br><br><br><br><br><br>
|
||||
<br><a href="/saolei/">扫雷</a>
|
||||
<br>土豆地雷,脑袋缺弦
|
||||
<br>----老舍 1931.03.16
|
||||
<br>已经和土豆地雷相恋<?
|
||||
$times = time() - 1699092000;
|
||||
// 计算年数
|
||||
$years = floor($times / (365 * 24 * 60 * 60));
|
||||
$times %= (365 * 24 * 60 * 60);
|
||||
// 计算月数
|
||||
$months = floor($times / (30 * 24 * 60 * 60));
|
||||
$times %= (30 * 24 * 60 * 60);
|
||||
// 计算天数
|
||||
$days = floor($times / (24 * 60 * 60));
|
||||
$times %= (24 * 60 * 60);
|
||||
// 计算小时数
|
||||
$hours = floor($times / (60 * 60));
|
||||
$times %= (60 * 60);
|
||||
// 计算分钟数
|
||||
$minutes = floor($times / 60);
|
||||
$seconds = $times % 60;
|
||||
echo "{$years}年{$months}月{$days}日{$hours}时{$minutes}分{$seconds}秒";
|
||||
?>
|
||||
<script>
|
||||
const potatoMine = document.getElementById('potato-mine');
|
||||
|
||||
potatoMine.addEventListener('mouseenter', function() {
|
||||
potatoMine.style.transform = 'translateY(100px)'; // 鼠标放上去时,地雷“埋进地下”
|
||||
});
|
||||
|
||||
potatoMine.addEventListener('mouseleave', function() {
|
||||
potatoMine.style.transform = 'translateY(0)'; // 鼠标移开时,地雷返回原位置
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
27
old/v1.php
Executable file
@@ -0,0 +1,27 @@
|
||||
<meta charset="utf-8">
|
||||
<h2>我将会用尽全部力气,来保护土豆地雷</h2>
|
||||
<h3>哪怕与全世界为敌,我也会坚定地和你在一块</h3>
|
||||
<a href="/saolei/">
|
||||
<img width=300 height=300 src="https://ningbo1.picpic.yuheng.hl.cn/2025/01/29/679a333aeac50.jpg">
|
||||
</a>
|
||||
<br>土豆地雷,脑袋缺弦
|
||||
<br>----老舍 1931.03.16
|
||||
<br>已经和土豆地雷相恋<?
|
||||
$times = time() - 1699092000;
|
||||
// 计算年数
|
||||
$years = floor($times / (365 * 24 * 60 * 60));
|
||||
$times %= (365 * 24 * 60 * 60);
|
||||
// 计算月数
|
||||
$months = floor($times / (30 * 24 * 60 * 60));
|
||||
$times %= (30 * 24 * 60 * 60);
|
||||
// 计算天数
|
||||
$days = floor($times / (24 * 60 * 60));
|
||||
$times %= (24 * 60 * 60);
|
||||
// 计算小时数
|
||||
$hours = floor($times / (60 * 60));
|
||||
$times %= (60 * 60);
|
||||
// 计算分钟数
|
||||
$minutes = floor($times / 60);
|
||||
$seconds = $times % 60;
|
||||
echo "{$years}年{$months}月{$days}日{$hours}时{$minutes}分{$seconds}秒";
|
||||
?>
|
||||
96
old/v2.php
Executable file
@@ -0,0 +1,96 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="zh-CN">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>土豆地雷</title>
|
||||
<style>
|
||||
body {
|
||||
text-align: center;
|
||||
font-family: Arial, sans-serif;
|
||||
background-color: #f0f0f0;
|
||||
margin-top: 50px;
|
||||
}
|
||||
|
||||
.container {
|
||||
position: relative;
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
#potato-mine {
|
||||
width: 200px;
|
||||
height: 200px;
|
||||
transition: transform 0.5s ease-in-out;
|
||||
position: relative;
|
||||
z-index: 1; /* 土豆地雷在上层 */
|
||||
}
|
||||
.grass {
|
||||
position: absolute;
|
||||
width: 200px;
|
||||
height: 30px;
|
||||
background-color: #228B22; /* 草地颜色 */
|
||||
bottom: 0px; /* 草地位于地面上方 */
|
||||
left: 0;
|
||||
z-index: 2; /* 草地在地面上方 */
|
||||
border-radius: 5px 5px 0 0;
|
||||
}
|
||||
.ground {
|
||||
position: absolute;
|
||||
width: 200px;
|
||||
height: 100px; /* 土地的厚度增加 */
|
||||
background-color: #8B4513; /* 土色 */
|
||||
bottom: -100px; /* 向下移动地面 */
|
||||
left: 0;
|
||||
z-index: 2; /* 地面在土豆地雷上方 */
|
||||
border-radius: 5px;
|
||||
}
|
||||
|
||||
#potato-mine:hover {
|
||||
transform: translateY(100px); /* 鼠标悬停时土豆地雷缩进地下 */
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<h2>我将会用尽全部力气,来保护土豆地雷</h2>
|
||||
<h3>哪怕与全世界为敌,我也会坚定地和你在一块</h3>
|
||||
<div class="container">
|
||||
<img id="potato-mine" src="https://ningbo1.picpic.yuheng.hl.cn/2025/01/29/679a333aeac50.jpg" alt="土豆地雷">
|
||||
<div class="grass"></div> <!-- 草地区域 -->
|
||||
<div class="ground"></div>
|
||||
</div>
|
||||
<br><br><br><br><br><br>
|
||||
<br><a href="/saolei/">扫雷</a>
|
||||
<br>土豆地雷,脑袋缺弦
|
||||
<br>----老舍 1931.03.16
|
||||
<br>已经和土豆地雷相恋<?
|
||||
$times = time() - 1699092000;
|
||||
// 计算年数
|
||||
$years = floor($times / (365 * 24 * 60 * 60));
|
||||
$times %= (365 * 24 * 60 * 60);
|
||||
// 计算月数
|
||||
$months = floor($times / (30 * 24 * 60 * 60));
|
||||
$times %= (30 * 24 * 60 * 60);
|
||||
// 计算天数
|
||||
$days = floor($times / (24 * 60 * 60));
|
||||
$times %= (24 * 60 * 60);
|
||||
// 计算小时数
|
||||
$hours = floor($times / (60 * 60));
|
||||
$times %= (60 * 60);
|
||||
// 计算分钟数
|
||||
$minutes = floor($times / 60);
|
||||
$seconds = $times % 60;
|
||||
echo "{$years}年{$months}月{$days}日{$hours}时{$minutes}分{$seconds}秒";
|
||||
?>
|
||||
<script>
|
||||
const potatoMine = document.getElementById('potato-mine');
|
||||
|
||||
potatoMine.addEventListener('mouseenter', function() {
|
||||
potatoMine.style.transform = 'translateY(100px)'; // 鼠标放上去时,地雷“埋进地下”
|
||||
});
|
||||
|
||||
potatoMine.addEventListener('mouseleave', function() {
|
||||
potatoMine.style.transform = 'translateY(0)'; // 鼠标移开时,地雷返回原位置
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
8
saolei/.idea/.gitignore
generated
vendored
Executable file
@@ -0,0 +1,8 @@
|
||||
# 默认忽略的文件
|
||||
/shelf/
|
||||
/workspace.xml
|
||||
# 基于编辑器的 HTTP 客户端请求
|
||||
/httpRequests/
|
||||
# Datasource local storage ignored files
|
||||
/dataSources/
|
||||
/dataSources.local.xml
|
||||
8
saolei/.idea/Minesweeper-master.iml
generated
Executable file
@@ -0,0 +1,8 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<module type="WEB_MODULE" version="4">
|
||||
<component name="NewModuleRootManager">
|
||||
<content url="file://$MODULE_DIR$" />
|
||||
<orderEntry type="inheritedJdk" />
|
||||
<orderEntry type="sourceFolder" forTests="false" />
|
||||
</component>
|
||||
</module>
|
||||
8
saolei/.idea/modules.xml
generated
Executable file
@@ -0,0 +1,8 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="ProjectModuleManager">
|
||||
<modules>
|
||||
<module fileurl="file://$PROJECT_DIR$/.idea/Minesweeper-master.iml" filepath="$PROJECT_DIR$/.idea/Minesweeper-master.iml" />
|
||||
</modules>
|
||||
</component>
|
||||
</project>
|
||||
19
saolei/.idea/php.xml
generated
Executable file
@@ -0,0 +1,19 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="MessDetectorOptionsConfiguration">
|
||||
<option name="transferred" value="true" />
|
||||
</component>
|
||||
<component name="PHPCSFixerOptionsConfiguration">
|
||||
<option name="transferred" value="true" />
|
||||
</component>
|
||||
<component name="PHPCodeSnifferOptionsConfiguration">
|
||||
<option name="highlightLevel" value="WARNING" />
|
||||
<option name="transferred" value="true" />
|
||||
</component>
|
||||
<component name="PhpStanOptionsConfiguration">
|
||||
<option name="transferred" value="true" />
|
||||
</component>
|
||||
<component name="PsalmOptionsConfiguration">
|
||||
<option name="transferred" value="true" />
|
||||
</component>
|
||||
</project>
|
||||
6
saolei/README.md
Executable file
@@ -0,0 +1,6 @@
|
||||
# 功能实现
|
||||
|
||||
- 游戏难度选择(初级、中级、高级)
|
||||
- 游戏时间记录
|
||||
- 显示剩余雷数
|
||||
- 双击或鼠标滑轮键智能探测
|
||||
963
saolei/index.html
Executable file
@@ -0,0 +1,963 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>MineClearance</title>
|
||||
<link rel="stylesheet" href="mineClearance.css">
|
||||
<script src="myTools.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="mc_wrapper">
|
||||
<div id="mc_start">
|
||||
<h1>扫 雷</h1>
|
||||
<button class="btn_start">新游戏</button>
|
||||
</div>
|
||||
<div id="mc_level">
|
||||
<h2>⚔ 选择难度 ⚔</h2>
|
||||
<button class="btn_pri">初级</button>
|
||||
<button class="btn_mid">中级</button>
|
||||
<button class="btn_exp">高级</button>
|
||||
</div>
|
||||
<div id="mc_game_time">
|
||||
<span>0</span>
|
||||
<p>⌛ 游戏时间 ⌛</p>
|
||||
</div>
|
||||
<div id="mc_game_mine">
|
||||
<p>☢ 剩余雷数 ☢</p>
|
||||
<span></span>
|
||||
</div>
|
||||
<h4 id="mc_gameover_win">游戏胜利</h4>
|
||||
<h4 id="mc_gameover_lose">游戏失败</h4>
|
||||
<p id="mc_gameover_time">
|
||||
<span class="mc_go_t1">⌚时间:</span>
|
||||
<span class="mc_go_t2"></span>
|
||||
</p>
|
||||
<div id="mc_gameover_choose">
|
||||
<button id="mc_replay">重新游戏</button>
|
||||
<button id="mc_reselect">选择难度</button>
|
||||
</div>
|
||||
<div id="mc_pri_game">
|
||||
<ul class="mc_row">
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
</ul>
|
||||
<ul class="mc_row">
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
</ul>
|
||||
<ul class="mc_row">
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
</ul>
|
||||
<ul class="mc_row">
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
</ul>
|
||||
<ul class="mc_row">
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
</ul>
|
||||
<ul class="mc_row">
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
</ul>
|
||||
<ul class="mc_row">
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
</ul>
|
||||
<ul class="mc_row">
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
</ul>
|
||||
<ul class="mc_row">
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="mc_mid_game">
|
||||
<ul class="mc_row">
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
</ul>
|
||||
<ul class="mc_row">
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
</ul>
|
||||
<ul class="mc_row">
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
</ul>
|
||||
<ul class="mc_row">
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
</ul>
|
||||
<ul class="mc_row">
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
</ul>
|
||||
<ul class="mc_row">
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
</ul>
|
||||
<ul class="mc_row">
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
</ul>
|
||||
<ul class="mc_row">
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
</ul>
|
||||
<ul class="mc_row">
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
</ul>
|
||||
<ul class="mc_row">
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
</ul>
|
||||
<ul class="mc_row">
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
</ul>
|
||||
<ul class="mc_row">
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
</ul>
|
||||
<ul class="mc_row">
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
</ul>
|
||||
<ul class="mc_row">
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
</ul>
|
||||
<ul class="mc_row">
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
</ul>
|
||||
<ul class="mc_row">
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="mc_exp_game">
|
||||
<ul class="mc_row">
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
</ul>
|
||||
<ul class="mc_row">
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
</ul>
|
||||
<ul class="mc_row">
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
</ul>
|
||||
<ul class="mc_row">
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
</ul>
|
||||
<ul class="mc_row">
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
</ul>
|
||||
<ul class="mc_row">
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
</ul>
|
||||
<ul class="mc_row">
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
</ul>
|
||||
<ul class="mc_row">
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
</ul>
|
||||
<ul class="mc_row">
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
</ul>
|
||||
<ul class="mc_row">
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
</ul>
|
||||
<ul class="mc_row">
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
</ul>
|
||||
<ul class="mc_row">
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
</ul>
|
||||
<ul class="mc_row">
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
</ul>
|
||||
<ul class="mc_row">
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
</ul>
|
||||
<ul class="mc_row">
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
</ul>
|
||||
<ul class="mc_row">
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
<li class="mc_cell"></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<script src="mineClearance.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
|
||||
|
||||
<!--
|
||||
|
||||
初级 9 * 9 81 10雷
|
||||
中级 16 * 16 256 40雷
|
||||
高级 16 * 30 480 99雷
|
||||
|
||||
游戏规则:
|
||||
找出空方块,同时避免触雷。清除扫雷区速度越快,得分越高
|
||||
|
||||
-->
|
||||
|
||||
|
||||
281
saolei/mineClearance.css
Executable file
@@ -0,0 +1,281 @@
|
||||
* {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
cursor: url(mine_img/mouse.ico),pointer;
|
||||
}
|
||||
ul,li {
|
||||
list-style: none;
|
||||
}
|
||||
.mc_wrapper {
|
||||
position: relative;
|
||||
width: 800px;
|
||||
height: 700px;
|
||||
margin: 100px auto;
|
||||
/*border: 1px dotted black;*/
|
||||
overflow: hidden;
|
||||
}
|
||||
#mc_start {
|
||||
position: absolute;
|
||||
width: 400px;
|
||||
height: 300px;
|
||||
left: 50%;
|
||||
margin-left: -200px;
|
||||
top: 50%;
|
||||
margin-top: -150px;
|
||||
}
|
||||
#mc_start h1 {
|
||||
height: 100px;
|
||||
text-align: center;
|
||||
font-size: 50px;
|
||||
font-weight: bold;
|
||||
line-height: 100px;
|
||||
}
|
||||
#mc_start .btn_start {
|
||||
display: block;
|
||||
width: 300px;
|
||||
height: 80px;
|
||||
font-size: 30px;
|
||||
margin: 50px auto;
|
||||
}
|
||||
#mc_level {
|
||||
position: absolute;
|
||||
opacity: 0;
|
||||
width: 400px;
|
||||
height: 400px;
|
||||
left: 50%;
|
||||
margin-left: -200px;
|
||||
top: 1000px;
|
||||
margin-top: -200px;
|
||||
}
|
||||
#mc_level h2 {
|
||||
height: 100px;
|
||||
font-weight: bold;
|
||||
text-align: center;
|
||||
font-size: 30px;
|
||||
line-height: 100px;
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
#mc_level button {
|
||||
display: block;
|
||||
width: 300px;
|
||||
height: 60px;
|
||||
font-size: 25px;
|
||||
margin: 0 auto 30px;
|
||||
}
|
||||
button:hover {
|
||||
color: dodgerblue;
|
||||
font-weight: bold;
|
||||
}
|
||||
.mc_wrapper #mc_pri_game,#mc_mid_game,#mc_exp_game {
|
||||
position: absolute;
|
||||
left: 50%;
|
||||
border:1px black solid;
|
||||
bottom: -400px;
|
||||
}
|
||||
.mc_wrapper #mc_pri_game {
|
||||
margin-left: -100px;
|
||||
width: 198px;
|
||||
height: 198px;
|
||||
}
|
||||
.mc_wrapper #mc_mid_game {
|
||||
margin-left: -176px;
|
||||
width: 352px;
|
||||
height: 352px;
|
||||
}
|
||||
.mc_wrapper #mc_exp_game {
|
||||
margin-left: -331px;
|
||||
width: 660px;
|
||||
height: 352px;
|
||||
}
|
||||
.mc_wrapper .mc_row {
|
||||
float: left;
|
||||
height: 20px;
|
||||
margin-bottom: 2px;
|
||||
}
|
||||
.mc_wrapper #mc_pri_game .mc_row {
|
||||
width: 198px;
|
||||
}
|
||||
.mc_wrapper #mc_mid_game .mc_row {
|
||||
width: 352px;
|
||||
}
|
||||
.mc_wrapper #mc_exp_game .mc_row {
|
||||
width: 660px;
|
||||
}
|
||||
.mc_wrapper .white,.mc_row .mc_cell,.mc_cell_light,
|
||||
.number1,.number2,.number3,.number4,.number5,.number6,.number7,.number8,
|
||||
.number1_wrong,.number2_wrong,.number3_wrong,.number4_wrong,.number5_wrong,.number6_wrong,.number7_wrong,.number8_wrong,
|
||||
.bomb,.bomb_wrong,.bomb0,.flag,.flag_light,.mark,.mark_light
|
||||
{
|
||||
float: left;
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
border: 1px black solid;
|
||||
}
|
||||
.mc_wrapper .mc_row .mc_cell {
|
||||
background-image: url("mine_img/s.jpg");
|
||||
}
|
||||
.mc_wrapper .mc_row .mc_cell_light {
|
||||
background-image: url("mine_img/s_light0.jpg");
|
||||
}
|
||||
.mc_wrapper .mc_row .white {
|
||||
background-color: #fff;
|
||||
}
|
||||
.mc_wrapper .mc_row .number1 {
|
||||
background-image: url("mine_img/1.jpg");
|
||||
}
|
||||
.mc_wrapper .mc_row .number1_wrong {
|
||||
background-image: url("mine_img/1_wrong.gif");
|
||||
}
|
||||
.mc_wrapper .mc_row .number2 {
|
||||
background-image: url("mine_img/2.jpg");
|
||||
}
|
||||
.mc_wrapper .mc_row .number2_wrong {
|
||||
background-image: url("mine_img/2_wrong.gif");
|
||||
}
|
||||
.mc_wrapper .mc_row .number3 {
|
||||
background-image: url("mine_img/3.jpg");
|
||||
}
|
||||
.mc_wrapper .mc_row .number3_wrong {
|
||||
background-image: url("mine_img/3_wrong.gif");
|
||||
}
|
||||
.mc_wrapper .mc_row .number4 {
|
||||
background-image: url("mine_img/4.jpg");
|
||||
}
|
||||
.mc_wrapper .mc_row .number4_wrong {
|
||||
background-image: url("mine_img/4_wrong.gif");
|
||||
}
|
||||
.mc_wrapper .mc_row .number5 {
|
||||
background-image: url("mine_img/5.jpg");
|
||||
}
|
||||
.mc_wrapper .mc_row .number5_wrong {
|
||||
background-image: url("mine_img/5_wrong.gif");
|
||||
}
|
||||
.mc_wrapper .mc_row .number6 {
|
||||
background-image: url("mine_img/6.jpg");
|
||||
}
|
||||
.mc_wrapper .mc_row .number6_wrong {
|
||||
background-image: url("mine_img/6_wrong.gif");
|
||||
}
|
||||
.mc_wrapper .mc_row .number7 {
|
||||
background-image: url("mine_img/7.jpg");
|
||||
}
|
||||
.mc_wrapper .mc_row .number7_wrong {
|
||||
background-image: url("mine_img/7_wrong.gif");
|
||||
}
|
||||
.mc_wrapper .mc_row .number8 {
|
||||
background-image: url("mine_img/8.jpg");
|
||||
}
|
||||
.mc_wrapper .mc_row .number8_wrong {
|
||||
background-image: url("mine_img/8_wrong.gif");
|
||||
}
|
||||
.mc_wrapper .mc_row .bomb {
|
||||
background-image: url("mine_img/bomb.jpg");
|
||||
}
|
||||
.mc_wrapper .mc_row .bomb_wrong {
|
||||
background-image: url("mine_img/bomb_w.jpg");
|
||||
}
|
||||
.mc_wrapper .mc_row .bomb0 {
|
||||
background-image: url("mine_img/bomb0.jpg");
|
||||
}
|
||||
.mc_wrapper .mc_row .flag {
|
||||
background-image: url("mine_img/flag.jpg");
|
||||
}
|
||||
.mc_wrapper .mc_row .flag_light {
|
||||
background-image: url("mine_img/flag_light0.jpg");
|
||||
}
|
||||
.mc_wrapper .mc_row .mark {
|
||||
background-image: url("mine_img/mark.jpg");
|
||||
}
|
||||
.mc_wrapper .mc_row .mark_light {
|
||||
background-image: url("mine_img/mark_light0.jpg");
|
||||
}
|
||||
.mc_wrapper #mc_game_time,#mc_game_mine {
|
||||
position: absolute;
|
||||
left: 50%;
|
||||
margin-left: -100px;
|
||||
width: 200px;
|
||||
height: 160px;
|
||||
text-align: center;
|
||||
line-height: 80px;
|
||||
font-size: 30px;
|
||||
}
|
||||
.mc_wrapper #mc_game_time {
|
||||
top: -160px;
|
||||
}
|
||||
.mc_wrapper #mc_game_time p {
|
||||
width: 200px;
|
||||
height: 80px;
|
||||
}
|
||||
.mc_wrapper #mc_game_time span {
|
||||
display: block;
|
||||
width: 200px;
|
||||
height: 80px;
|
||||
}
|
||||
.mc_wrapper #mc_game_mine {
|
||||
bottom: -160px;
|
||||
}
|
||||
.mc_wrapper #mc_game_mine p {
|
||||
width: 200px;
|
||||
height: 80px;
|
||||
}
|
||||
.mc_wrapper #mc_game_mine span {
|
||||
display: block;
|
||||
width: 200px;
|
||||
height: 80px;
|
||||
}
|
||||
.mc_wrapper h4 {
|
||||
position: absolute;
|
||||
width: 300px;
|
||||
height: 100px;
|
||||
top: -500px;
|
||||
left: 50%;
|
||||
margin-left: -150px;
|
||||
font-size: 50px;
|
||||
line-height: 100px;
|
||||
text-align: center;
|
||||
font-weight: bold;
|
||||
}
|
||||
.mc_wrapper #mc_gameover_win {
|
||||
color: gold;
|
||||
}
|
||||
.mc_wrapper #mc_gameover_lose {
|
||||
color: darkred;
|
||||
}
|
||||
.mc_wrapper #mc_gameover_time {
|
||||
position: absolute;
|
||||
width: 150px;
|
||||
height: 50px;
|
||||
font-size: 20px;
|
||||
line-height: 50px;
|
||||
left: 50%;
|
||||
margin-top: 100px;
|
||||
margin-left: -75px;
|
||||
top: -400px;
|
||||
}
|
||||
.mc_wrapper #mc_gameover_time span {
|
||||
display: inline-block;
|
||||
position: absolute;
|
||||
height: 50px;
|
||||
text-align: center;
|
||||
}
|
||||
.mc_wrapper #mc_gameover_time .mc_go_t1 {
|
||||
width: 70px;
|
||||
}
|
||||
.mc_wrapper #mc_gameover_time .mc_go_t2 {
|
||||
width: 80px;
|
||||
right: 0;
|
||||
}
|
||||
.mc_wrapper #mc_gameover_choose {
|
||||
position: absolute;
|
||||
bottom: -400px;
|
||||
width: 300px;
|
||||
height: 160px;
|
||||
left: 50%;
|
||||
margin-left: -150px;
|
||||
}
|
||||
.mc_wrapper #mc_gameover_choose button {
|
||||
width: 200px;
|
||||
height: 50px;
|
||||
margin: 20px 50px 0;
|
||||
font-size: 20px;
|
||||
}
|
||||
694
saolei/mineClearance.js
Executable file
@@ -0,0 +1,694 @@
|
||||
/*
|
||||
* author: payen S.Tsung 丛培森
|
||||
* date:2016.09
|
||||
* blog:http://blog.csdn.net/q1056843325
|
||||
*/
|
||||
|
||||
(function (global) {
|
||||
var srcPath = 'mine_img';
|
||||
var srcArr = [
|
||||
'0.jpg',
|
||||
'1.jpg','2.jpg','3.jpg','4.jpg',
|
||||
'5.jpg','6.jpg','7.jpg','8.jpg',
|
||||
'1_w.jpg','2_w.jpg','3_w.jpg','4_w.jpg',
|
||||
'5_w.jpg','6_w.jpg','7_w.jpg','8_w.jpg',
|
||||
'1_wrong.gif','2_wrong.gif','3_wrong.gif','4_wrong.gif',
|
||||
'5_wrong.gif','6_wrong.gif','7_wrong.gif','8_wrong.gif',
|
||||
's.jpg','s_light.jpg','s_light0.jpg',
|
||||
'bomb.jpg','bomb0.jpg','bomb_w.jpg',
|
||||
'flag.jpg','flag_light.jpg','flag_light0.jpg',
|
||||
'mark.jpg','mark_light.jpg','mark_light0.jpg',
|
||||
];
|
||||
var $mcStart = document.getElementById('mc_start'),
|
||||
$mcLevel = document.getElementById('mc_level'),
|
||||
$btnCollection = document.getElementsByTagName('button'),
|
||||
$btnStart = $btnCollection[0],
|
||||
$btnPri = $btnCollection[1],
|
||||
$btnMid = $btnCollection[2],
|
||||
$btnExp = $btnCollection[3],
|
||||
$gameTime = document.getElementById('mc_game_time'),
|
||||
$gameMine = document.getElementById('mc_game_mine'),
|
||||
$priGame = document.getElementById('mc_pri_game'),
|
||||
$midGame = document.getElementById('mc_mid_game'),
|
||||
$expGame = document.getElementById('mc_exp_game'),
|
||||
$win = document.getElementById('mc_gameover_win'),
|
||||
$lose = document.getElementById('mc_gameover_lose'),
|
||||
$overTime = document.getElementById('mc_gameover_time'),
|
||||
$overChoose = document.getElementById('mc_gameover_choose'),
|
||||
$replay = document.getElementById('mc_replay'),
|
||||
$reselect = document.getElementById('mc_reselect'),
|
||||
upExPos = {
|
||||
'top': '-400px',
|
||||
'opacity': '0'
|
||||
},
|
||||
downExPos = {
|
||||
'bottom': '-400px',
|
||||
'opacity': '0'
|
||||
},
|
||||
upPos = {
|
||||
'top': '0',
|
||||
'opacity': '1'
|
||||
},
|
||||
downPos = {
|
||||
'bottom': '0',
|
||||
'opacity': '1'
|
||||
},
|
||||
midPos = {
|
||||
'top': '350px',
|
||||
'opacity': '1'
|
||||
},
|
||||
priLevelPos = {
|
||||
'bottom': '252px',
|
||||
'opacity': '1'
|
||||
},
|
||||
highLevelPos = {
|
||||
'bottom': '173px',
|
||||
'opacity': '1'
|
||||
},
|
||||
iRowNum,
|
||||
iLineNum,
|
||||
iMineNum,
|
||||
iGridNum,
|
||||
timeStart,
|
||||
timeEnd,
|
||||
msgArr,
|
||||
mineArr,
|
||||
curGameLevel,
|
||||
iDigNum,
|
||||
bGameOver;
|
||||
|
||||
|
||||
|
||||
//资源预加载函数
|
||||
var preloadingSrc = (function(){
|
||||
var loadedNum = 0;
|
||||
return function(srcPath, srcArr){
|
||||
var imgs = [];
|
||||
var toLoadNum = srcArr.length;
|
||||
for(var i = 0; i < toLoadNum; i++){
|
||||
imgs[i] = new Image();
|
||||
imgs[i].src = srcPath + '/' + srcArr[i];
|
||||
imgs[i].onload = function(){
|
||||
loadedNum++;
|
||||
if(toLoadNum === loadedNum){
|
||||
console.log('全部图片资源加载完毕');
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
})();
|
||||
preloadingSrc(srcPath, srcArr);
|
||||
|
||||
//方格信息构造函数
|
||||
function MsgObj(x, y) {
|
||||
this.x = x;
|
||||
this.y = y;
|
||||
this.isDigged = false;
|
||||
this.isFlagged = false;
|
||||
this.isMarked = false;
|
||||
this.isMine = false;
|
||||
this.figure = 0;
|
||||
this.bCheck = false;
|
||||
}
|
||||
//初始化雷数组函数
|
||||
function initMineArr(mineArray, iMineNum, iGridNum) {
|
||||
while (true) {
|
||||
if (mineArray.length === iMineNum) {
|
||||
mineArray = mineArray.unique();
|
||||
if (mineArray.length === iMineNum) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
mineArray.push(Math.floor(Math.random() * iGridNum));
|
||||
}
|
||||
mineArr = mineArray;
|
||||
//console.log(mineArr);
|
||||
}
|
||||
//初始化方格信息数组函数
|
||||
function initMsgArr(msgArr, mineArr, iRowNum, iLineNum) {
|
||||
//console.log(mineArr);
|
||||
var x, y;
|
||||
for (var i = 0; i < iRowNum; i++) {
|
||||
msgArr[i] = [];
|
||||
for (var j = 0; j < iLineNum; j++) {
|
||||
msgArr[i][j] = new MsgObj(i, j);
|
||||
}
|
||||
}
|
||||
for (var k = 0, mlen = mineArr.length; k < mlen; k++) {
|
||||
x = parseInt(mineArr[k] / iLineNum);
|
||||
y = mineArr[k] % iLineNum;
|
||||
msgArr[x][y].isMine = true;
|
||||
}
|
||||
}
|
||||
//初始化数字函数
|
||||
function initFigure(msgArr, iRowNum, iLineNum) {
|
||||
var iCount,
|
||||
arr;
|
||||
for (var i = 0; i < iRowNum; i++) {
|
||||
for (var j = 0; j < iLineNum; j++) {
|
||||
iCount = 0;
|
||||
arr = roundArray(i, j, iRowNum, iLineNum);
|
||||
if (!msgArr[i][j].isMine) {
|
||||
for (var k = 0, len = arr.length; k < len; k++) {
|
||||
if (msgArr[arr[k].x][arr[k].y].isMine) {
|
||||
iCount++;
|
||||
}
|
||||
}
|
||||
}
|
||||
msgArr[i][j].figure = iCount;
|
||||
}
|
||||
}
|
||||
}
|
||||
//周围方格数组函数
|
||||
function roundArray(x, y, iRowNum, iLineNum) {
|
||||
function Coord(x, y) {
|
||||
this.x = x;
|
||||
this.y = y;
|
||||
}
|
||||
var roundArr = [];
|
||||
roundArr.push(new Coord(x, y));
|
||||
if (x - 1 >= 0) {
|
||||
roundArr.push(new Coord(x - 1, y));
|
||||
if (y - 1 >= 0) {
|
||||
roundArr.push(new Coord(x - 1, y - 1));
|
||||
}
|
||||
}
|
||||
if (x + 1 <= iRowNum - 1) {
|
||||
roundArr.push(new Coord(x + 1, y));
|
||||
if (y + 1 <= iLineNum - 1) {
|
||||
roundArr.push(new Coord(x + 1, y + 1));
|
||||
}
|
||||
}
|
||||
if (y - 1 >= 0) {
|
||||
roundArr.push(new Coord(x, y - 1));
|
||||
if (x + 1 <= iRowNum - 1) {
|
||||
roundArr.push(new Coord(x + 1, y - 1));
|
||||
}
|
||||
}
|
||||
if (y + 1 <= iLineNum - 1) {
|
||||
roundArr.push(new Coord(x, y + 1));
|
||||
if (x - 1 >= 0) {
|
||||
roundArr.push(new Coord(x - 1, y + 1));
|
||||
}
|
||||
}
|
||||
return roundArr;
|
||||
}
|
||||
//触发事件方格的坐标函数
|
||||
function coordOfGrid(ele) {
|
||||
var parNode = ele.parentNode;
|
||||
return {
|
||||
x: parNode.eleIndex(),
|
||||
y: ele.eleIndex()
|
||||
}
|
||||
}
|
||||
//插入数字背景图片函数
|
||||
function addFigureImg(ele, num) {
|
||||
switch (num) {
|
||||
case 1:
|
||||
ele.className = "number1";
|
||||
break;
|
||||
case 2:
|
||||
ele.className = "number2";
|
||||
break;
|
||||
case 3:
|
||||
ele.className = "number3";
|
||||
break;
|
||||
case 4:
|
||||
ele.className = "number4";
|
||||
break;
|
||||
case 5:
|
||||
ele.className = "number5";
|
||||
break;
|
||||
case 6:
|
||||
ele.className = "number6";
|
||||
break;
|
||||
case 7:
|
||||
ele.className = "number7";
|
||||
break;
|
||||
case 8:
|
||||
ele.className = "number8";
|
||||
break;
|
||||
}
|
||||
}
|
||||
//插入数字错误背景动图函数
|
||||
function addFalseFigureImg(ele, num) {
|
||||
switch (num) {
|
||||
case 1:
|
||||
ele.className = "number1_wrong";
|
||||
break;
|
||||
case 2:
|
||||
ele.className = "number2_wrong";
|
||||
break;
|
||||
case 3:
|
||||
ele.className = "number3_wrong";
|
||||
break;
|
||||
case 4:
|
||||
ele.className = "number4_wrong";
|
||||
break;
|
||||
case 5:
|
||||
ele.className = "number5_wrong";
|
||||
break;
|
||||
case 6:
|
||||
ele.className = "number6_wrong";
|
||||
break;
|
||||
case 7:
|
||||
ele.className = "number7_wrong";
|
||||
break;
|
||||
case 8:
|
||||
ele.className = "number8_wrong";
|
||||
break;
|
||||
}
|
||||
}
|
||||
//检查游戏胜利函数
|
||||
function digJudge(gameLevel, msgArr, iRowNum, iLineNum) {
|
||||
iDigNum++;
|
||||
//console.log(iDigNum,iRowNum*iLineNum - iDigNum);
|
||||
var curGridEle;
|
||||
if (iDigNum === iGridNum - iMineNum) {
|
||||
for (var i = 0; i < iRowNum; i++) {
|
||||
for (var j = 0; j < iLineNum; j++) {
|
||||
curGridEle = gameLevel.children[i].children[j];
|
||||
if (!msgArr[i][j].isDigged && !msgArr[i][j].isFlagged) {
|
||||
msgArr[i][j].isDigged = true;
|
||||
if (msgArr[i][j].isMine) {
|
||||
curGridEle.className = "flag";
|
||||
msgArr[i][j].isFlagged = true;
|
||||
} else if (msgArr[i][j].figure != 0) {
|
||||
addFigureImg(curGridEle, msgArr[i][j].figure);
|
||||
} else {
|
||||
curGridEle.className = "white";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
gameOver(true);
|
||||
}
|
||||
}
|
||||
//挖开方块函数
|
||||
function digGrid(gameLevel, msgArr, x, y) {
|
||||
if (msgArr[x][y].isDigged || msgArr[x][y].isFlagged) {
|
||||
return;
|
||||
}
|
||||
var index = msgArr[x][y].figure,
|
||||
curGridEle = gameLevel.children[x].children[y];
|
||||
if (index !== 0) {
|
||||
addFigureImg(curGridEle, index);
|
||||
} else {
|
||||
curGridEle.className = "white";
|
||||
}
|
||||
msgArr[x][y].isDigged = true;
|
||||
digJudge(gameLevel, msgArr, iRowNum, iLineNum);
|
||||
}
|
||||
//挖开方块周围边界至有数字方块函数
|
||||
function digAmibientGrid(gameLevel, msgArr, x, y, iRowNum, iLineNum) {
|
||||
msgArr[x][y].bCheck = true;
|
||||
var arr = roundArray(x, y, iRowNum, iLineNum).slice(1),
|
||||
curGridMsg;
|
||||
for (var i = 0, len = arr.length; i < len; i++) {
|
||||
digGrid(gameLevel, msgArr, arr[i].x, arr[i].y);
|
||||
curGridMsg = msgArr[arr[i].x][arr[i].y];
|
||||
if (!curGridMsg.isFlagged && !curGridMsg.bCheck && curGridMsg.figure === 0) {
|
||||
digAmibientGrid(gameLevel, msgArr, arr[i].x, arr[i].y, iRowNum, iLineNum);
|
||||
}
|
||||
}
|
||||
}
|
||||
//自动探测按下函数
|
||||
function autoExploreDown(gameLevel, msgArr, x, y, iRowNum, iLineNum, bFlag) {
|
||||
var arr = roundArray(x, y, iRowNum, iLineNum),
|
||||
curGridMsg;
|
||||
for (var i = 0, len = arr.length; i < len; i++) {
|
||||
curGridMsg = msgArr[arr[i].x][arr[i].y];
|
||||
if (!curGridMsg.isDigged && !curGridMsg.isFlagged) {
|
||||
gameLevel.children[arr[i].x].children[arr[i].y].className = bFlag ? "white" : "mc_cell";
|
||||
}
|
||||
}
|
||||
}
|
||||
//自动探测抬起函数
|
||||
function autoExploreUp(gameLevel, msgArr, x, y, iRowNum, iLineNum) {
|
||||
var arr = roundArray(x, y, iRowNum, iLineNum).slice(1),
|
||||
curGridMsg;
|
||||
for (var i = 0, len = arr.length; i < len; i++) {
|
||||
curGridMsg = msgArr[arr[i].x][arr[i].y];
|
||||
var curGridEle = gameLevel.children[arr[i].x].children[arr[i].y];
|
||||
if (!curGridMsg.isDigged && !curGridMsg.isFlagged) {
|
||||
if (!curGridMsg.isMine) {
|
||||
digJudge(gameLevel, msgArr, iRowNum, iLineNum);
|
||||
if (curGridMsg.figure === 0) {
|
||||
curGridEle.className = "white";
|
||||
digAmibientGrid(gameLevel, msgArr, arr[i].x, arr[i].y, iRowNum, iLineNum);
|
||||
} else {
|
||||
addFigureImg(curGridEle, curGridMsg.figure);
|
||||
}
|
||||
} else {
|
||||
digAllGrid(gameLevel, msgArr, iRowNum, iLineNum);
|
||||
curGridEle.className = "bomb0";
|
||||
gameOver(false);
|
||||
}
|
||||
curGridMsg.isDigged = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
//自动探测函数
|
||||
function autoExplore(gameLevel, msgArr, x, y, iRowNum, iLineNum) {
|
||||
if (msgArr[x][y].isDigged) {
|
||||
if (msgArr[x][y].figure != 0 && numOfSurroundingFlag(msgArr, x, y, iRowNum, iLineNum) === msgArr[x][y].figure) {
|
||||
autoExploreUp(gameLevel, msgArr, x, y, iRowNum, iLineNum);
|
||||
} else {
|
||||
autoExploreDown(gameLevel, msgArr, x, y, iRowNum, iLineNum, false);
|
||||
var numOfGrid = msgArr[x][y].figure;
|
||||
addFalseFigureImg(gameLevel.children[x].children[y], numOfGrid);
|
||||
clearTimeout(msgArr[x][y].deferTimer);
|
||||
msgArr[x][y].deferTimer = setTimeout(function () {
|
||||
addFigureImg(gameLevel.children[x].children[y], numOfGrid);
|
||||
}, 800);
|
||||
}
|
||||
} else {
|
||||
autoExploreDown(gameLevel, msgArr, x, y, iRowNum, iLineNum, false);
|
||||
}
|
||||
}
|
||||
//检测周围旗帜数量函数
|
||||
function numOfSurroundingFlag(msgArr, x, y, iRowNum, iLineNum) {
|
||||
var flagNum = 0,
|
||||
arr = roundArray(x, y, iRowNum, iLineNum).slice(1);
|
||||
for (var i = 0, len = arr.length; i < len; i++) {
|
||||
if (msgArr[arr[i].x][arr[i].y].isFlagged) {
|
||||
flagNum++;
|
||||
}
|
||||
}
|
||||
return flagNum;
|
||||
}
|
||||
//游戏失败显示所有雷块函数
|
||||
function digAllGrid(gameLevel, msgArr, iRowNum, iLineNum) {
|
||||
var curGridEle;
|
||||
for (var i = 0; i < iRowNum; i++) {
|
||||
for (var j = 0; j < iLineNum; j++) {
|
||||
curGridEle = gameLevel.children[i].children[j];
|
||||
if (!msgArr[i][j].isDigged) {
|
||||
if (msgArr[i][j].isMine && !msgArr[i][j].isFlagged) {
|
||||
curGridEle.className = "bomb";
|
||||
}
|
||||
if (!msgArr[i][j].isMine && msgArr[i][j].isFlagged) {
|
||||
curGridEle.className = "bomb_wrong";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
//剩余雷数处理函数
|
||||
function remainderMine(bFlag) {
|
||||
var reMine = parseInt($gameMine.children[1].innerHTML);
|
||||
reMine = bFlag ? reMine - 1 : reMine + 1;
|
||||
$gameMine.children[1].innerHTML = reMine;
|
||||
}
|
||||
//游戏结束处理函数
|
||||
function gameOver(isWin) {
|
||||
bGameOver = true;
|
||||
startMove($gameTime, upExPos);
|
||||
startMove($gameMine, downExPos);
|
||||
if (isWin) {
|
||||
startMove($win, upPos);
|
||||
startMove($overTime, upPos);
|
||||
$overTime.children[1].innerHTML = $gameTime.children[0].innerHTML + ' 秒';
|
||||
} else {
|
||||
startMove($lose, upPos);
|
||||
startMove($overTime, upPos);
|
||||
$overTime.children[1].innerHTML = $gameTime.children[0].innerHTML + ' 秒';
|
||||
}
|
||||
startMove($overChoose, downPos);
|
||||
}
|
||||
//重置游戏清空数据函数
|
||||
function clearData(gameLevel) {
|
||||
var gameLevelArr = gameLevel.children,
|
||||
row = gameLevelArr.length,
|
||||
line = gameLevelArr[0].children.length,
|
||||
i, j;
|
||||
for (i = 0; i < row; i++) {
|
||||
for (j = 0; j < line; j++) {
|
||||
gameLevel.children[i].children[j].className = "mc_cell";
|
||||
}
|
||||
}
|
||||
clearInterval(gameLevel.displayTimeTimer);
|
||||
$gameTime.children[0].innerHTML = "0";
|
||||
gameLevel.onmouseover = null;
|
||||
gameLevel.onmouseout = null;
|
||||
gameLevel.onmousedown = null;
|
||||
gameLevel.onmouseup = null;
|
||||
gameLevel.ondblclick = null;
|
||||
}
|
||||
|
||||
//初始化游戏数据事件绑定函数
|
||||
function initGame(gameLevel, gameStr, pos, rowNum, lineNum, mineNum) {
|
||||
bGameOver = false;
|
||||
msgArr = [];
|
||||
mineArr = [];
|
||||
curGameLevel = gameStr;
|
||||
iMineNum = mineNum;
|
||||
iRowNum = rowNum;
|
||||
iLineNum = lineNum;
|
||||
iGridNum = iRowNum * iLineNum;
|
||||
iDigNum = 0;
|
||||
timeStart = 0;
|
||||
timeEnd = 0;
|
||||
initMineArr(mineArr, iMineNum, iGridNum);
|
||||
initMsgArr(msgArr, mineArr, iRowNum, iLineNum);
|
||||
initFigure(msgArr, iRowNum, iLineNum);
|
||||
var isMouseDown = false,
|
||||
isOutside = false,
|
||||
isMidMouseDown = false,
|
||||
bFirstClick = true;
|
||||
$gameMine.children[1].innerHTML = iMineNum;
|
||||
//绑定游戏规则相关事件
|
||||
//鼠标移入事件
|
||||
gameLevel.onmouseover = function (e) {
|
||||
if (bGameOver) {
|
||||
return;
|
||||
}
|
||||
var event = e || global.event,
|
||||
src = event.target || event.srcElement,
|
||||
x = coordOfGrid(src).x,
|
||||
y = coordOfGrid(src).y;
|
||||
if (src.nodeName.toLowerCase() === "li") {
|
||||
if (isMidMouseDown && !isOutside) {
|
||||
autoExploreDown(gameLevel, msgArr, x, y, iRowNum, iLineNum, true);
|
||||
} else {
|
||||
if (!msgArr[x][y].isDigged) {
|
||||
if (isMouseDown && !isOutside) {
|
||||
src.className = "white";
|
||||
} else {
|
||||
if (msgArr[x][y].isFlagged) {
|
||||
src.className = "flag_light";
|
||||
} else if (msgArr[x][y].isMarked) {
|
||||
src.className = "mark_light";
|
||||
} else {
|
||||
src.className = "mc_cell_light";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
isOutside = true;
|
||||
}
|
||||
};
|
||||
//鼠标移出事件
|
||||
gameLevel.onmouseout = function (e) {
|
||||
if (bGameOver) {
|
||||
return;
|
||||
}
|
||||
var event = e || global.event,
|
||||
src = event.target || event.srcElement,
|
||||
x = coordOfGrid(src).x,
|
||||
y = coordOfGrid(src).y;
|
||||
if (src.nodeName.toLowerCase() === "li") {
|
||||
if (isMidMouseDown) {
|
||||
autoExploreDown(gameLevel, msgArr, x, y, iRowNum, iLineNum, false);
|
||||
} else {
|
||||
if (!msgArr[x][y].isDigged) {
|
||||
if (msgArr[x][y].isFlagged) {
|
||||
src.className = "flag";
|
||||
} else if (msgArr[x][y].isMarked) {
|
||||
src.className = "mark";
|
||||
} else {
|
||||
src.className = "mc_cell";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
//鼠标按下事件
|
||||
gameLevel.onmousedown = function (e) {
|
||||
if (bGameOver) {
|
||||
return;
|
||||
}
|
||||
var event = e || global.event,
|
||||
src = event.target || event.srcElement,
|
||||
x = coordOfGrid(src).x,
|
||||
y = coordOfGrid(src).y,
|
||||
index = msgArr[x][y].figure;
|
||||
isOutside = false;
|
||||
isMidMouseDown = false;
|
||||
if (src.nodeName.toLowerCase() !== "li") {
|
||||
return;
|
||||
}
|
||||
if (event.button === 0) {
|
||||
if (!msgArr[x][y].isDigged && !msgArr[x][y].isFlagged) {
|
||||
isMouseDown = true;
|
||||
src.className = "white";
|
||||
}
|
||||
} else if (event.button === 2) {
|
||||
if (!msgArr[x][y].isDigged) {
|
||||
if (msgArr[x][y].isFlagged) {
|
||||
src.className = "mark_light";
|
||||
remainderMine(false);
|
||||
msgArr[x][y].isFlagged = false;
|
||||
msgArr[x][y].isMarked = true;
|
||||
} else if (msgArr[x][y].isMarked) {
|
||||
src.className = "mc_cell_light";
|
||||
msgArr[x][y].isMarked = false;
|
||||
} else {
|
||||
src.className = "flag_light";
|
||||
remainderMine(true);
|
||||
msgArr[x][y].isFlagged = true;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
isMidMouseDown = true;
|
||||
autoExploreDown(gameLevel, msgArr, x, y, iRowNum, iLineNum, true);
|
||||
}
|
||||
};
|
||||
//鼠标抬起事件
|
||||
document.onmouseup = function (e) {
|
||||
if (bGameOver) {
|
||||
return;
|
||||
}
|
||||
var event = e || global.event,
|
||||
src = event.target || event.srcElement,
|
||||
x = coordOfGrid(src).x,
|
||||
y = coordOfGrid(src).y,
|
||||
index = msgArr[x][y].figure;
|
||||
if (src.nodeName.toLowerCase() !== "li") {
|
||||
isOutside = true;
|
||||
return;
|
||||
}
|
||||
if (event.button === 0) {
|
||||
isMouseDown = false;
|
||||
if (bFirstClick) {
|
||||
timeStart = new Date().getTime();
|
||||
bFirstClick = false;
|
||||
clearInterval(gameLevel.displayTimeTimer);
|
||||
gameLevel.displayTimeTimer = setInterval(function () {
|
||||
timeEnd = new Date().getTime();
|
||||
$gameTime.children[0].innerHTML = parseInt((timeEnd - timeStart) / 1000);
|
||||
}, 50);
|
||||
}
|
||||
if (!msgArr[x][y].isDigged && !msgArr[x][y].isFlagged) {
|
||||
msgArr[x][y].isDigged = true;
|
||||
if (msgArr[x][y].isMine) {
|
||||
src.className = "bomb0";
|
||||
digAllGrid(gameLevel, msgArr, iRowNum, iLineNum);
|
||||
gameOver(false);
|
||||
} else if (index !== 0) {
|
||||
addFigureImg(src, index);
|
||||
digJudge(gameLevel, msgArr, iRowNum, iLineNum);
|
||||
} else {
|
||||
src.className = "white";
|
||||
digJudge(gameLevel, msgArr, iRowNum, iLineNum);
|
||||
digAmibientGrid(gameLevel, msgArr, x, y, iRowNum, iLineNum);
|
||||
}
|
||||
}
|
||||
} else if (event.button === 1) {
|
||||
isMidMouseDown = false;
|
||||
autoExplore(gameLevel, msgArr, x, y, iRowNum, iLineNum);
|
||||
}
|
||||
};
|
||||
//鼠标双击事件
|
||||
gameLevel.ondblclick = function (e) {
|
||||
if (bGameOver) {
|
||||
return;
|
||||
}
|
||||
var event = e || global.event,
|
||||
src = event.target || event.srcElement,
|
||||
x = coordOfGrid(src).x,
|
||||
y = coordOfGrid(src).y;
|
||||
autoExplore(gameLevel, msgArr, x, y, iRowNum, iLineNum);
|
||||
};
|
||||
};
|
||||
|
||||
//阻止浏览器默认拖拽事件
|
||||
document.onmousemove = function (e) {
|
||||
cancelHandler(e);
|
||||
};
|
||||
//阻止浏览器默认右键菜单事件
|
||||
document.oncontextmenu = function (e) {
|
||||
cancelHandler(e);
|
||||
};
|
||||
|
||||
//绑定按钮点击事件
|
||||
$btnStart.onclick = function () {
|
||||
startMove($mcStart, upExPos);
|
||||
startMove($mcLevel, midPos);
|
||||
};
|
||||
$btnPri.onclick = function () {
|
||||
startMove($mcLevel, upExPos);
|
||||
startMove($priGame, priLevelPos);
|
||||
startMove($gameTime, upPos);
|
||||
startMove($gameMine, downPos);
|
||||
initGame($priGame, "pri", priLevelPos, 9, 9, 10);
|
||||
};
|
||||
$btnMid.onclick = function () {
|
||||
startMove($mcLevel, upExPos);
|
||||
startMove($midGame, highLevelPos);
|
||||
startMove($gameTime, upPos);
|
||||
startMove($gameMine, downPos);
|
||||
initGame($midGame, "mid", highLevelPos, 16, 16, 40);
|
||||
};
|
||||
$btnExp.onclick = function () {
|
||||
startMove($mcLevel, upExPos);
|
||||
startMove($expGame, highLevelPos);
|
||||
startMove($gameTime, upPos);
|
||||
startMove($gameMine, downPos);
|
||||
initGame($expGame, "exp", highLevelPos, 16, 30, 99);
|
||||
};
|
||||
$replay.onclick = function () {
|
||||
startMove($win, upExPos);
|
||||
startMove($lose, upExPos);
|
||||
startMove($overTime, upExPos);
|
||||
startMove($overChoose, downExPos);
|
||||
startMove($gameTime, upPos);
|
||||
startMove($gameMine, downPos);
|
||||
switch (curGameLevel) {
|
||||
case "pri":
|
||||
clearData($priGame);
|
||||
initGame($priGame, "pri", priLevelPos, 9, 9, 10);
|
||||
break;
|
||||
case "mid":
|
||||
clearData($midGame);
|
||||
initGame($midGame, "mid", highLevelPos, 16, 16, 40);
|
||||
break;
|
||||
case "exp":
|
||||
clearData($expGame);
|
||||
initGame($expGame, "exp", highLevelPos, 16, 30, 99);
|
||||
break;
|
||||
}
|
||||
};
|
||||
$reselect.onclick = function () {
|
||||
startMove($win, upExPos);
|
||||
startMove($lose, upExPos);
|
||||
startMove($overTime, upExPos);
|
||||
startMove($overChoose, downExPos);
|
||||
switch (curGameLevel) {
|
||||
case "pri":
|
||||
clearData($priGame);
|
||||
startMove($priGame, downExPos);
|
||||
break;
|
||||
case "mid":
|
||||
clearData($midGame);
|
||||
startMove($midGame, downExPos);
|
||||
break;
|
||||
case "exp":
|
||||
clearData($expGame);
|
||||
startMove($expGame, downExPos);
|
||||
break;
|
||||
}
|
||||
startMove($mcLevel, midPos);
|
||||
};
|
||||
} (window));
|
||||
BIN
saolei/mine_img/0.jpg
Executable file
|
After Width: | Height: | Size: 136 B |
BIN
saolei/mine_img/1.jpg
Executable file
|
After Width: | Height: | Size: 237 B |
BIN
saolei/mine_img/1_w.jpg
Executable file
|
After Width: | Height: | Size: 1.6 KiB |
BIN
saolei/mine_img/1_wrong.gif
Executable file
|
After Width: | Height: | Size: 1.3 KiB |
BIN
saolei/mine_img/2.jpg
Executable file
|
After Width: | Height: | Size: 434 B |
BIN
saolei/mine_img/2_w.jpg
Executable file
|
After Width: | Height: | Size: 1.6 KiB |
BIN
saolei/mine_img/2_wrong.gif
Executable file
|
After Width: | Height: | Size: 1.3 KiB |
BIN
saolei/mine_img/3.jpg
Executable file
|
After Width: | Height: | Size: 422 B |
BIN
saolei/mine_img/3_w.jpg
Executable file
|
After Width: | Height: | Size: 1.6 KiB |
BIN
saolei/mine_img/3_wrong.gif
Executable file
|
After Width: | Height: | Size: 1.3 KiB |
BIN
saolei/mine_img/4.jpg
Executable file
|
After Width: | Height: | Size: 331 B |
BIN
saolei/mine_img/4_w.jpg
Executable file
|
After Width: | Height: | Size: 1.6 KiB |
BIN
saolei/mine_img/4_wrong.gif
Executable file
|
After Width: | Height: | Size: 1.3 KiB |
BIN
saolei/mine_img/5.jpg
Executable file
|
After Width: | Height: | Size: 391 B |
BIN
saolei/mine_img/5_w.jpg
Executable file
|
After Width: | Height: | Size: 1.6 KiB |
BIN
saolei/mine_img/5_wrong.gif
Executable file
|
After Width: | Height: | Size: 1.3 KiB |
BIN
saolei/mine_img/6.jpg
Executable file
|
After Width: | Height: | Size: 320 B |
BIN
saolei/mine_img/6_w.jpg
Executable file
|
After Width: | Height: | Size: 1.6 KiB |
BIN
saolei/mine_img/6_wrong.gif
Executable file
|
After Width: | Height: | Size: 1.3 KiB |
BIN
saolei/mine_img/7.jpg
Executable file
|
After Width: | Height: | Size: 332 B |
BIN
saolei/mine_img/7_w.jpg
Executable file
|
After Width: | Height: | Size: 1.5 KiB |
BIN
saolei/mine_img/7_wrong.gif
Executable file
|
After Width: | Height: | Size: 1.3 KiB |
BIN
saolei/mine_img/8.jpg
Executable file
|
After Width: | Height: | Size: 407 B |
BIN
saolei/mine_img/8_w.jpg
Executable file
|
After Width: | Height: | Size: 1.5 KiB |
BIN
saolei/mine_img/8_wrong.gif
Executable file
|
After Width: | Height: | Size: 1.3 KiB |
BIN
saolei/mine_img/back/bomb.jpg.bak
Executable file
|
After Width: | Height: | Size: 1.0 KiB |
BIN
saolei/mine_img/back/bomb0.jpg.bak
Executable file
|
After Width: | Height: | Size: 1002 B |
BIN
saolei/mine_img/back/bomb_w.jpg.bak
Executable file
|
After Width: | Height: | Size: 1.3 KiB |
BIN
saolei/mine_img/back/cb935f09f5fabab884e7174b65668700.png
Executable file
|
After Width: | Height: | Size: 98 KiB |
BIN
saolei/mine_img/bomb.jpg
Executable file
|
After Width: | Height: | Size: 1.3 KiB |
BIN
saolei/mine_img/bomb0.jpg
Executable file
|
After Width: | Height: | Size: 1.2 KiB |
BIN
saolei/mine_img/bomb_w.jpg
Executable file
|
After Width: | Height: | Size: 1.4 KiB |
BIN
saolei/mine_img/flag.jpg
Executable file
|
After Width: | Height: | Size: 1.2 KiB |
BIN
saolei/mine_img/flag_light.jpg
Executable file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
saolei/mine_img/flag_light0.jpg
Executable file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
saolei/mine_img/mark.jpg
Executable file
|
After Width: | Height: | Size: 1.0 KiB |
BIN
saolei/mine_img/mark_light.jpg
Executable file
|
After Width: | Height: | Size: 1.0 KiB |
BIN
saolei/mine_img/mark_light0.jpg
Executable file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
saolei/mine_img/mouse.ico
Executable file
|
After Width: | Height: | Size: 4.2 KiB |
BIN
saolei/mine_img/s.jpg
Executable file
|
After Width: | Height: | Size: 643 B |
BIN
saolei/mine_img/s_light.jpg
Executable file
|
After Width: | Height: | Size: 643 B |
BIN
saolei/mine_img/s_light0.jpg
Executable file
|
After Width: | Height: | Size: 751 B |
348
saolei/myTools.js
Executable file
@@ -0,0 +1,348 @@
|
||||
//栈
|
||||
function Stack() {
|
||||
var items = [];
|
||||
this.push = function (element) {
|
||||
items.push(element);
|
||||
};//推栈
|
||||
this.pop = function () {
|
||||
return items.pop();
|
||||
};//弹栈
|
||||
this.peek = function () {
|
||||
return items[items.length - 1];
|
||||
};//栈顶元素
|
||||
this.isEmpty = function () {
|
||||
return items.length === 0;
|
||||
};//栈是否为空
|
||||
this.size = function () {
|
||||
return items.length;
|
||||
};//栈大小
|
||||
this.clear = function () {
|
||||
items = [];
|
||||
};//清空栈
|
||||
this.print = function () {
|
||||
console.log(items.toString());
|
||||
};//打印栈
|
||||
}
|
||||
//队列
|
||||
function Queue() {
|
||||
var items = [];
|
||||
this.enqueue = function (element) {
|
||||
items.push(element);
|
||||
}//入队
|
||||
this.dequeue = function () {
|
||||
return items.shift();
|
||||
}//出队
|
||||
this.front = function () {
|
||||
return items[0];
|
||||
}//队首元素
|
||||
this.isEmpty = function () {
|
||||
return items.length === 0;
|
||||
}//队列是否为空
|
||||
this.clear = function () {
|
||||
items = [];
|
||||
}//清空队列
|
||||
this.size = function () {
|
||||
return items.length;
|
||||
}//队列大小
|
||||
this.print = function () {
|
||||
console.log(items.toString());
|
||||
}//打印队列
|
||||
}
|
||||
//圣杯继承
|
||||
var inherit = (function (){
|
||||
var F = function () {};
|
||||
return function (Child, Parent) {
|
||||
F.prototype = Parent.prototype;
|
||||
Child.prototype = new F();
|
||||
Child.prototype.constructor = Child;
|
||||
Child.prototype.uber = Parent.prototype;
|
||||
}
|
||||
})();
|
||||
//深层拷贝对象(不考虑函数)
|
||||
function deepClone(original, target) {
|
||||
var target = target || {},
|
||||
toStr = Object.prototype.toString,
|
||||
arrStr = '[object Array]';
|
||||
for(var prop in original){
|
||||
if(original.hasOwnProperty(prop)){
|
||||
if(typeof original[prop] === 'object'){
|
||||
target[prop] = (toStr.call(original[prop]) === arrStr) ? [] : {};
|
||||
deepClone(original[prop], target[prop]);
|
||||
}else{
|
||||
target[prop] = original[prop];
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
return target;
|
||||
}
|
||||
//数组去重
|
||||
Array.prototype.unique = function() {
|
||||
var obj = {},
|
||||
arr = [],
|
||||
len = this.length;
|
||||
for(var i = 0; i < len; i++){
|
||||
if(!obj[this[i]]){
|
||||
obj[this[i]] = true;
|
||||
arr.push(this[i]);
|
||||
}
|
||||
}
|
||||
return arr;
|
||||
}
|
||||
//类属性
|
||||
function classOf(o){
|
||||
if(o === null) return "Null";
|
||||
if(o === undefined) return "Undefined";
|
||||
return Object.prototype.toString.call(o).slice(8,-1);
|
||||
}
|
||||
//父节点的第几个元素节点
|
||||
Element.prototype.eleIndex = function(){
|
||||
var index = 0,
|
||||
node = this;
|
||||
while(node = node.previousSibling){
|
||||
if(node.nodeType == 1){
|
||||
index++;
|
||||
}
|
||||
}
|
||||
return index;
|
||||
}
|
||||
//第n层祖先元素
|
||||
Element.prototype.nthParentEle = function(n) {
|
||||
var node = this,
|
||||
n = n || 0;
|
||||
while(node && n--) {
|
||||
node = node.parentElement;
|
||||
}
|
||||
return node;
|
||||
}
|
||||
//第n个兄弟节点
|
||||
Element.prototype.nthSiblingEle = function(n){
|
||||
var node = this;
|
||||
while(node && n) {
|
||||
if(n > 0){
|
||||
if(node.nextElementSibling){
|
||||
node = node.nextElementSibling;
|
||||
}else{
|
||||
for(node = node.nextSibling; node && node.nodeType !== 1; node = node.nextSibling);
|
||||
}
|
||||
n--;
|
||||
}else{
|
||||
if(node.previousElementSibling){
|
||||
node = node.previousElementSibling;
|
||||
}else{
|
||||
for(node = node.previousSibling; node && node.nodeType !== 1; node = node.previousSibling);
|
||||
}
|
||||
n++;
|
||||
}
|
||||
}
|
||||
return node;
|
||||
}
|
||||
//在某元素后插入元素
|
||||
Element.prototype.insertAfter = function (targetNode, afterNode){
|
||||
var siblingNode = afterNode.nextElementSibling;
|
||||
if(siblingNode) {
|
||||
this.insertBefore(targetNode,siblingNode);
|
||||
} else {
|
||||
this.appendChild(targetNode);
|
||||
}
|
||||
return targetNode;
|
||||
}
|
||||
//销毁元素节点自身
|
||||
Element.prototype.remove = function (){
|
||||
this.parentElement.removeChild(this);
|
||||
}
|
||||
//目标节点内部的节点顺序逆序
|
||||
Element.prototype.revChild = function (){
|
||||
var child = this.children,
|
||||
len = child.length;
|
||||
for (var i = len - 2; i >= 0; i--){
|
||||
this.appendChild(child[i]);
|
||||
}
|
||||
return this;
|
||||
}
|
||||
//查看滚动轮滚动距离
|
||||
function getScrollOffset(){
|
||||
if(window.pageXOffset){
|
||||
return {
|
||||
x: window.pageXOffset,
|
||||
y: window.pageYOffset
|
||||
}
|
||||
}else{
|
||||
return {
|
||||
x: document.body.scrollLeft + document.documentElement.scrollLeft,
|
||||
y: document.body.scrollTop + document.documentElement.scrollTop
|
||||
}
|
||||
}
|
||||
}
|
||||
//查看浏览器视口尺寸
|
||||
function getViewportOffset(){
|
||||
if(window.innerWidth){
|
||||
return {
|
||||
w: window.innerWidth,
|
||||
h: window.innerHeight
|
||||
}
|
||||
}else if(document.compatMode === "CSS1Compat"){
|
||||
return{
|
||||
w: document.documentElement.clientWidth,
|
||||
h: document.documentElement.clientHeight
|
||||
}
|
||||
}else{
|
||||
return{
|
||||
w: document.body.clientWidth,
|
||||
h: document.body.clientHeight
|
||||
}
|
||||
}
|
||||
}
|
||||
//求元素相对于文档的坐标
|
||||
Element.prototype.getCoord = function (){
|
||||
var coordX = 0,
|
||||
coordY = 0,
|
||||
docEle = this;
|
||||
while(docEle){
|
||||
coordX += docEle.offsetLeft;
|
||||
coordY += docEle.offsetTop;
|
||||
docEle = docEle.offsetParent;
|
||||
}
|
||||
return {
|
||||
x: coordX,
|
||||
y: coordY
|
||||
}
|
||||
};
|
||||
//获取样式
|
||||
function getStyle(ele, style){
|
||||
if(window.getComputedStyle){
|
||||
return window.getComputedStyle(ele,null)[style];
|
||||
}else{
|
||||
return ele.currentStyle[style];
|
||||
}
|
||||
}
|
||||
//添加事件
|
||||
function addEvent(elem, type, handler){
|
||||
if(elem.addEventListener){
|
||||
elem.addEventListener(type, handler, false);
|
||||
}else if(elem.attachEvent){
|
||||
elem['temp' + type + handler] = handler;
|
||||
elem['temp' + type] = function(){
|
||||
elem['temp' + type + handler].call(elem);
|
||||
}
|
||||
elem.attachEvent('on' + type, elem['temp' + type]);
|
||||
}else{
|
||||
elem['on' + type] = handler;
|
||||
}
|
||||
}
|
||||
//解除事件
|
||||
function removeEvent(elem, type, handler){
|
||||
if(elem.removeEventListener){
|
||||
elem.removeEventListener(type, handler, false);
|
||||
}else if(elem.detachEvent){
|
||||
elem.detachEvent('on' + type, elem['temp' + type]);
|
||||
}else{
|
||||
elem['on' + type] = null;
|
||||
}
|
||||
}
|
||||
//取消冒泡
|
||||
function stopBubble(event){
|
||||
if(event.stopPropagation){
|
||||
event.stopPropagation();
|
||||
}else{
|
||||
event.cancelBubble = true;
|
||||
}
|
||||
}
|
||||
//阻止默认事件
|
||||
function cancelHandler(event){
|
||||
if(event.preventDefault){
|
||||
event.preventDefault();
|
||||
}else{
|
||||
event.returnValue = false;
|
||||
}
|
||||
}
|
||||
//拖拽元素
|
||||
function drag(elem){
|
||||
var disX;
|
||||
var disY;
|
||||
addEvent(elem,"mousedown",function(e){
|
||||
var event = e || window.event;
|
||||
disX = event.clientX - parseInt(getStyle(this,"left"));
|
||||
disY = event.clientY - parseInt(getStyle(this,"top"));
|
||||
addEvent(document,"mousemove",mouseMove);
|
||||
addEvent(document,"mouseup",mouseUp);
|
||||
});
|
||||
function mouseMove(e){
|
||||
var event = e || window.event;
|
||||
elem.style.left = event.pageX - disX + 'px';
|
||||
elem.style.top = event.pageY - disY + 'px';
|
||||
}
|
||||
function mouseUp(){
|
||||
removeEvent(document,"mousemove",mouseMove);
|
||||
removeEvent(document,"mouseup",mouseUp);
|
||||
}
|
||||
}
|
||||
//多物体多值链式运动框架
|
||||
function startMove(elem, json, func){
|
||||
clearInterval(elem.timer);
|
||||
var iSpeed;
|
||||
var iCur;
|
||||
var bStop;
|
||||
elem.timer = setInterval(function(){
|
||||
bStop = true;
|
||||
for(var attr in json){
|
||||
iCur = attr === 'opacity' ? parseFloat(getStyle(elem,attr)) * 100 : parseInt(getStyle(elem,attr));
|
||||
iSpeed = attr === 'opacity' ? (parseFloat(json[attr])* 100 - iCur) / 7 : (parseInt(json[attr]) - iCur) / 7;
|
||||
iSpeed = iSpeed > 0 ? Math.ceil(iSpeed) : Math.floor(iSpeed);
|
||||
elem.style[attr] = attr === "opacity" ? (iCur + iSpeed) / 100 : iCur + iSpeed + 'px';
|
||||
if(iCur !== (attr === 'opacity' ? parseFloat(json[attr]) * 100 : parseInt(json[attr]))){
|
||||
bStop = false;
|
||||
}
|
||||
}
|
||||
if(bStop){
|
||||
clearInterval(elem.timer);
|
||||
if(func){
|
||||
func();
|
||||
}
|
||||
}
|
||||
},30);
|
||||
}
|
||||
//按需异步加载script
|
||||
function scriptLoaded(url, callback){
|
||||
var script = document.createElement('script');
|
||||
script.type = "text/javascript";
|
||||
if(script.readyState){
|
||||
script.onreadystatechange = function(){
|
||||
if(script.readyState == "complete" || script.readyState == "loaded"){
|
||||
callback();
|
||||
script.onreadystatechange = null;
|
||||
}
|
||||
}
|
||||
}else{
|
||||
script.onload = function(){
|
||||
script.onload = null;
|
||||
callback();
|
||||
}
|
||||
}
|
||||
script.src = url;
|
||||
document.head.appendChild(script);
|
||||
}
|
||||
//兼容getElementByClassName
|
||||
Document.prototype.getByClassName = function(target) {
|
||||
var allEle = document.getElementsByTagName('*'),
|
||||
len = allEle.length,
|
||||
arr = [],
|
||||
classArr = [],
|
||||
classArrLen;
|
||||
for(var i = 0; i < len; i++) {
|
||||
classArr = allEle[i].className.myTrim().splice(' ');
|
||||
classArrLen = classArr.length;
|
||||
for(var j = 0; j < classArrLen; j++){
|
||||
if(classArr[j] === target){
|
||||
arr.push(allEle[i]);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
return arr;
|
||||
}
|
||||
//兼容trim
|
||||
String.prototype.myTrim = function() {
|
||||
var reg = /^\s*|\s*$/;
|
||||
return this.replace(reg,'');
|
||||
}
|
||||