缺少一个地方就是写一个游戏排名统计,并等待时间来添加(好像每次都这么说,然后等很长时间……)
而且没有实现:单击第一个网格不能成为迅雷的功能。
UL填充:0;列表样式:无;}
我# {溢出:隐藏;宽度:30px;身高:30px;边框1px solid # 966;}
#矿井里{浮动:左;宽度:30px;身高:30px;线高度:30px;文本对齐:中心;字体大小:14px;颜色:# 222;}
#矿。mine_01 { background: url(我的。gif)没有重复;}
#矿。mine_02 { background: url(我的。gif)- 30px 0不重复;}
#矿。mine_03 { background: url(我的。gif)- 60px 0不重复;}
#矿。mine_04 { background: url(我的。gif)- 90px 0不重复;}
#矿。mine_05 { background: url(我的。gif)- 120px 0不重复;}
#矿。mine_06 { background: url(我的。gif)- 150px 0不重复;}
#矿。mine_07 { background: url(我的。gif)- 180px 0不重复;}
#计数{字体大小:12px;}
#时间{颜色:# 900;font-weight: bold;}
8 * 10
10 * 10
12 * 12
重新启动
时间:0
IE6 + FF电脑谷歌
歌剧的早期版本不支持document.oncontextmenu事件并没有找到一个很好的选择
var $ =功能(ID){ return document.getelementbyid(ID)};
窗口。指针函数准备(){
var v = $('wh)Value.split(*)。
setminefield(数(V { 0 }),数量(V { 1 }));
$('wh)。Onchange = $(准备的)。Onclick =函数(){
V = $('wh)Value.split(*)。
setminefield(数(V { 0 }),数量(V { 1 }))
}
}
/ / ---------------------------------------------------雷区
var雷区= {
_minew:30 / /每一射线宽度必须同步和风格
_mineh:30,
_minefieldblock:$(' '),
_minefieldele:$(' '),GetElementsByTagName(李的),
_time:$(时间的),
现状:0,国家还没有开始0雷区 / 1在2年代开始已经结束的游戏。
MineNum:0 / /我的号码
clearplace:0 /统计清洗格;
x:0 /列
y:0行
密度:0.2 /密度不能超过0.5在雷区的某些维度高不能迅雷雷区产生矿山图阵列集
MineMap:{ } /二维地图,雷区0:无1:Lei Lei
时间:- 1,s /时间
调试:假调试模式
对象对象的结束
功能timedcount(){
如果(minefield.status!= 1){返回false }
雷区+时间+;
雷区。_time .innerHTML = minefield.time;
setTimeout(timedcount()
}
/ / --------------------------------------雷状态
功能setthismine(STR,指数){
无功allmine = _minefieldele雷区;
设置国旗/雷声
如果(str = = 'seton){
VaR矿= allmine {指数};
ThisMine。=矿。在<< 2thismine + 1:0;
如果(矿。= = 1){矿。类名= 'mine_03;} / /标志
如果(矿。= = 2){矿。类名= 'mine_04} / /取消标记
如果(矿。= = 0){矿。类名= 'mine_01} / /取消标记
返回false;
}
显示框
如果(str = = 'show){
如果(object.prototype.tostring.call(指数)={ }对象数组)显示一个大的{ / /
雷区。clearplace = clearplace + index.length雷区;
对于(var i = 0;i < index.length;i++){
VaR矿= allmine {指数{我} };
ThisMine。innerHTML =雷区。矿山图{矿指标};
ThisMine。类名= 'mine_02;
ThisMine = 3;
}
}
否则,将显示一个非扫雷区域。
clearplace +雷区;
allmine { } = 3的指标;
allmine {指数} .innerHTML =雷区。矿山图{指数};
allmine { } classname = 'mine_02指标;
}
如果(雷区。clearplace = =雷区。X的雷区。y-minefield。minenum){ / /祝贺
('congratulations提醒你);
对于(var i = 0;i < allmine.length;i++){
如果(雷区。矿山图{ allmine {我} } = =。指数1){
allmine {我}类名= 'mine_07;
}
}
雷区=状态= 2;
返回false;
}
}
显示所有地雷
如果(str = = 'peng){
对于(var i = 0;i < allmine.length;i++){
如果(雷区。矿山图{ allmine {我} } = =。指数1){
我allmine { }。类名=我= = index'mine_06:'mine_05;
}
}
雷区=状态= 2;
}
}
/ / -----------------------------------------------设置行数和列数
功能setminefield(A,B){
无功thisminefiele = _minefieldblock雷区;
divbox = document.createelement(div),
a = a,b,k=0;
ThisMineFiele。innerHTML =;
参数调整
雷区。
雷区。
雷区。minenum = math.floor(A××的雷区。密度);
雷区=状态= 0;
雷区。时间= 1;
雷区。clearplace = 0;
雷区。矿山图。长度= 0;
雷区。_time .innerHTML = 0;
生成的雷区地图
SetMineMap();
(创建李)/生成雷区
当(k <数字){
无功newli = document.createelement(礼);
如果(minefield.debug newli .innerHTML =雷区。矿山图{ k }); / /欺骗
NewLi.className='mine_01';
divbox.appendchild(newli);
钾+;
}
ThisMineFiele。风格。高度=雷区。_minew * B + 'px;
ThisMineFiele。风格。宽度=雷区。_mineh * + 'px;
ThisMineFiele divbox.innerhtml innerHTML =;
divbox = null;
(SetEvent); / /事件
}
/ / -----------------------------------生成雷区图
功能setminemap(){
变量=,
minenum = minefield.minenum,
区间= math.floor(民/ minenum);
对于(var i = 0;i <数字;i + +){
如果(我%区间= = 0i < minenum *间隔){雷区。矿山图{我} = 1;}否则{雷区。矿山图{我} = 0;} / /射线距离分布和阵列等。
}
MineField.mineMap.sort(功能)(数学,随机(0.5){ return }) /沮丧阵列
如果要重建,判断是否在箱子/矿井周围,以避免布雷雷区的存在。
var = 0,行/行
x =雷区,
l_t,T,r_t,L,R,l_b,B,r_b;
对于(var i = 0;i <数字;i + +){
BR = Math.ceil(((i + 1)/ X);
l_t = i-x-1;
T = X;
r_t = X + 1;
L = i-1;
r=i + 1;
l_b = I + X-1;
b = i + x;
r_b = I + x + 1;
坐在布雷区的角落里,如果它是在网格探测中的下一个,他不是我的。
如果(l_t > = 0math.ceil(((l_t + 1)/ x)= = br-1minefield。矿山图{ l_t } = = 0){续}
如果(T>=0math.ceil(((T + 1)/ x)= = br-1minefield。矿山图{T} = = 0){续}
如果(r_t > = 0math.ceil(((r_t + 1)/ x)= = br-1minefield。矿山图{ r_t } = = 0){续}
如果(L>=0 math.ceil(((L + 1)/ x)= = brminefield。矿山图{ L } = = 0){续}
如果(R<nummath.ceil(((R + 1)/ x)= = brminefield。矿山图{红} = = 0){续}
如果(l_b < nummath.ceil(((l_b + 1)/ x)= =品牌+ 1minefield。矿山图{ l_b } = = 0){续}
如果(b<nummath.ceil(((B + 1)/ x)= =品牌+ 1minefield。矿山图{黑} = = 0){续}
如果(r_b < nummath.ceil(((r_b + 1)/ x)= =品牌+ 1minefield。矿山图{ r_b } = = 0){续}
SetMineMap();
返回false
}
雷的非正方形/统计数字
对于(i = 0;i <数字;i + +){
如果(雷区。矿山图{我} = = 1){续}
无功thisminenum = 0
BR = Math.ceil(((i + 1)/ X);
l_t = i-x-1;
T = X;
r_t = X + 1;
L = i-1;
r=i + 1;
l_b = I + X-1;
b = i + x;
r_b = I + x + 1;
如果(((l_t > = 0math。细胞)(((l_t + 1)/ x)= = br-1minefield。矿山图{ l_t } = = 1){ thisminenum ++;}
如果(T>=0math.ceil(((T + 1)/ x)= = br-1minefield。矿山图{T} = = 1){ thisminenum ++;}
如果(((r_t > = 0math。细胞)(((r_t + 1)/ x)= = br-1minefield。矿山图{ r_t } = = 1){ thisminenum ++;}
如果(L>=0 math.ceil(((L + 1)/ x)= = brminefield。矿山图{ L } = = 1){ thisminenum ++;}
If (((R
如果(((l_b < nummath。细胞)(((l_b + 1)/ x)= =品牌+ 1minefield。矿山图{ l_b } = = 1){ thisminenum ++;}
如果(b<nummath.ceil(((B + 1)/ x)= =品牌+ 1minefield。矿山图{黑} = = 1){ thisminenum ++;}
如果(((r_b < nummath。细胞)(((r_b + 1)/ x)= =品牌+ 1minefield。矿山图{ r_b } = = 1){ thisminenum ++;}
雷区。矿山图{我} = thisminenum;
}
}
/ / ----------------------------------雷区事件
函数SetEvent(){
无功thisminefiele = _minefieldblock雷区,
allmine = _minefieldele雷区,
IMAX =雷区;
对于(var i = 0;i < IMAX;i + +){
我allmine { }。指数=我;
allmine {我},= 0; / / 0是默认的1插旗2问号3
}
ThisMineFiele。onmouseup =功能(e){
如果(雷区=状态= 2){返回false;}
如果(雷区。状态= = 0){雷区。状态= 1;timedcount();}
VaR E = E | | window.event,
thisobj = e.target | | e.srcelement;
如果(thisobj nodename = =。'ul| | thisobj。= = 3){ return false;}
VaR建立getbutton(E);
如果(BTN = = 0){ / /左键
如果(thisobj。= = 1){ return false;} / /旗帜不能。
如果(雷区。矿山图{ thisobj。指数} = = 1){ / /点雷
SetThisMine('peng ',thisobj。指数);
} else if(雷区。矿山图{ } = = thisobj。指数0){ / /点到一个大的开放空间
/ /警报(你是幸运的)
无功allshowmine = minesshow(thisobj。指数);
SetThisMine('show ',allshowmine)
},然后显示一个格
SetThisMine('show ',thisobj。指数)
}
}
如果(BTN = = 2){ / /右
SetThisMine('seton ',thisobj。指数);
}
}
}
据 / / --------------------------------显示当一个大的空间
功能minesshow(我){
无功allmine = _minefieldele雷区,
allshowmine = {我}; / /下标保存显示迅雷
allmine { } = 3;
查看(i);查询框中的i。
功能见(Alli){
无功_alli = { };
如果(object.prototype.tostring.call(Alli)={ }对象数组){
对于(var i = 0;i < alli.length;i++){ F(Alli {我})}
}
别的{ F(Alli)}
函数F(我){
var text,
x =雷区,
BR,
雷区,
l_t,T,r_t,L,R,l_b,B,r_b;
文本= '_ + allshowmine.join('_ + '_ '); / /用来确定阵列已经写。
BR = Math.ceil(((我+ 1)/ X);
l_t = thisi-x-1;
T = thisi-x;
r_t = thisi-x + 1;
我thisi-1;
R =我+ 1;
l_b =我+ X-1;
B =我+ X;
r_b =我+ x + 1;
/ /表格的左上角如果是雷区是一排不开,然后写格空间如_alli阵列下搜索
如果(l_t > = 0math.ceil((l_t + 1)/ x)= = br-1allmine { l_t }。= = 0minefield。矿山图{ l_t } = = 0){ _alli.push(l_t);}
如果(T(> = 0math.ceil(T + 1)/ x = = br-1allmine { T)}。= = 0minefield。矿山图{T} = = 0){ _alli.push(T);}
如果(r_t > = 0math.ceil((r_t + 1)/ x)= = br-1allmine { r_t }。= = 0minefield。矿山图{ r_t } = = 0){ _alli.push(r_t);}
如果(L>=0math.ceil((L + 1)/ x)= = brallmine { L }。= = 0minefield。矿山图{ L } = = 0){ _alli.push(L);}
如果(R<nummath.ceil((R + 1)/ x)= = brallmine {红}。= = 0minefield。矿山图{红} = = 0){ _alli.push(R);}
如果(l_b < nummath.ceil((l_b + 1)/ x)= =品牌+ 1allmine { l_b }。= = 0minefield。矿山图{ l_b } = = 0){ _alli.push(l_b);}
如果(b(< nummath.ceil(B + 1)/ x = =品牌+ 1allmine { B)}。= = 0minefield。矿山图{黑} = = 0){ _alli.push(B);}
如果(r_b < nummath.ceil((r_b + 1)/ x)= =品牌+ 1allmine { r_b }。= = 0minefield。矿山图{ r_b } = = 0){ _alli.push(r_b);}
/ / ------------------------------------------------
/ /表格的左上角的雷区是如果前面的线是不开放不写入allshowmine晶格阵列,书面提前正确标记为开格
如果(l_t > = 0math.ceil((l_t + 1)/ x)= = br-1allmine { l_t }。= = 0text.indexof('_ + l_t + '_)= 1){ allshowmine.push(l_t);allmine { 3 } = l_t }。
如果(T(> = 0math.ceil(T + 1)/ x = = br-1allmine { T)}。= = 0text.indexof('_ + T + '_)= 1){ allshowmine.push(T);allmine {T}。= 3 }
如果(r_t > = 0math.ceil((r_t + 1)/ x)= = br-1allmine { r_t }。= = 0text.indexof('_ + r_t + '_)= 1){ allshowmine.push(r_t);allmine { 3 } = r_t }。
如果(L>=0math.ceil((L + 1)/ x)= = brallmine { L }。= = 0text.indexof('_ + L + '_)= 1){ allshowmine.push(L);allmine { l = 3 } }。
如果(R<nummath.ceil((R + 1)/ x)= = brallmine {红}。= = 0text.indexof('_ + R + '_)= 1){ allshowmine.push(R);allmine {红} = 3 }。
如果(l_b < nummath.ceil((l_b + 1)/ x)= =品牌+ 1allmine { l_b }。= = 0text.indexof('_ + l_b + '_)= 1){ allshowmine.push(l_b);allmine { 3 } = l_b }。
如果(b(< nummath.ceil(B + 1)/ x = =品牌+ 1allmine { B)}。= = 0text.indexof('_ + B + '_)= 1){ allshowmine.push(B);allmine {红} = 3 }。
如果(r_b < nummath.ceil((r_b + 1)/ x)= =品牌+ 1allmine { r_b }。= = 0text.indexof('_ + r_b + '_)= 1){ allshowmine.push(r_b);allmine { 3 } = r_b }。
如果(_alli.length!= 0){见(_alli)}
}
}
返回allshowmine
}
/ / --------------------------------------
文件。OnContextMenu =功能({ return)false;} / /禁止菜单
功能getbutton(e){
Var Btn;
如果(document.implementation.hasfeature('mouseevents ','2.0 ')){建立e.button;}
别的{开关(e.button){
案例0:
案例1:
案例3:
案例5:
案例7:
按钮= 0;
打破;
案例2:
案例6:
按钮= 2;
打破;
案例4:
按钮= 9;
打破;
}
}
Btn回来了;
}
以上是本文的全部内容,希望大家能喜欢。