天天看點

javaScript 掃雷 beta0.1

鎴戝潥淇♀€斺€旈€氳繃瀹炶返瀛︿範鏄渶鏈夋晥鐨勬柟娉曘€?

javascript鐨勪功琚垜浠庡浘涔﹂鍊熷洖鏉ュ緢涔呬簡锛屼絾涓€鐩存病鎬庝箞鐪嬶紝閭eぉ绐佺劧瑙佸埌鎴戝緬寮熷彂琛ㄤ簡涓€绡囧叧浜巎s鍥存鐨勫崥瀹細http://blog.csdn.net/JaneYiMi77/archive/2011/04/13/6321752.aspx聽椤挎椂鎰熷埌鍚庣敓鍙晱锛屽績鎯婁笉宸測€︹€︿竴涓嶅皬蹇冭鎴戝緬寮熻秴瓒婁簡锛熷井寰啋姹椻€︹€?

浜庢槸鐥涘績鐤鵑锛屽喅瀹氭礂蹇冮潻闈€侀噸鏂闆仛浜衡€︹€︿笂鍛ㄤ簲鏅氫笂寮€濮嬶紝涓€杈圭炕js鐨勪功锛屼竴杈筭oogle鈥︹€﹀ソ鍦ㄨ嚜宸辨湁C鍜宩ava鐨勫熀纭€锛屽張鍋氳繃java鐗堢殑鎵浄锛岀粡杩囧憰蹇冨悙琛€涓ゅぉ锛岀粓浜庡熀鏈疄鐜頒簡javascript鐨勬壂闆楓€?

鍒濆js锛屾墍浠ヤ唬鐮佹嫏鍔d箣澶勯毦鍏嶏紝鑰屼笖鎴戜嬌鐢–hrome娴嬭瘯鐨勶紝鍚庢潵鍙戠幇IE9鍙互姝e父杩愯锛屼絾鏄疘E8鍙婁互涓嬩笉琛岋紙閯欒涓€涓嬪井杞級銆?

鍏堣創涓€涓嬶紝浼氱戶缁畬鍠勩€?

璐翠笂涓嬭澆鍦闆潃锛毬爃ttp://download.csdn.net/source/3203748

index.html

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=GBK" />

<title>New Web Project</title>

</head>

<body bgcolor = "aaaa00" 慰nc慰ntextmenu="return false"><!--body绂佹鍙抽敭鑿滃崟-->

<h3 align="center">灏忚€佸ご鎵浄鍒涗綔涓€︹€?lt;/h3>

<p id="numOfOpenedRect" style="font-size:20px" style="font-size:20px" align="center">

</p>

<table id="table1" center" style="font-size:35px" bgcolor="AAAAAA">

</table>

<script type="text/javascript" src="sweepBomb.js" src="sweepBomb.js"></script>

</body>

</html>

sweepBomb.js

/**

* @autdor Barry

*/

var mybody = document.getElementsByTagName("body")[0]; //寰楀埌body

var myTable = document.getElementById("table1");//寰楀埌琛ㄦ牸

var countP = document.getElementById("numOfOpenedRect");//璁闆綍鏄劇ず宸茬粡缈誨紑鐨勬牸瀛愭暟

var countNumOfOpenedRect=0;

var row = 5;//琛?var col = 10;//鍒?

var numOfBomb = 10;//鎬葷殑鐐稿脊鏁?var leftBombNum = numOfBomb;

var image1 = "<img src="./images/smallIcon.png" mce_src="images/smallIcon.png" width='40' height='40'>";

var imageBomb = "<img src="./images/bomb.png" mce_src="images/bomb.png" width='40' height='40'>";

var imageBombForLabel = "<img src="./images/bombForLabel.gif" mce_src="images/bombForLabel.gif" width='40' height='40'>";

var imageFlag = "<img src="./images/flag_3.png" mce_src="images/flag_3.png" width='40' height='40'>";

var numIcon = new Array();

for (var i = 0; i <= 8; i++) {

numIcon[i] = "<img src="./images/" + i + ".png" mce_src="images/" + i + ".png" width='40' height='40'>";

}

countP.innerHTML = "宸茬炕寮€鐨勭殑鏍煎瓙:"+countNumOfOpenedRect+"聽聽鍓╀綑闆鋒暟锛?+leftBombNum;

var rects = createAndInitrects();//鍒涘緩琛ㄦ牸

choseBombs(rects, numOfBomb);//甯冮浄锛?0涓?showrects(rects);//鏄劇ず琛ㄦ牸

addListener(rects);//鍔犲叆鐩戝惉

/**

* 涓€涓牸瀛愬璞? */

function Rect(x, y){

this.siteX = x, this.siteY = y, this.isBomb = false, // 鏄惁鏄湴闆? this.mytd = document.createElement("td"),// <td>鍏冪礌

this.mytd.id = 100 * x + y, // mytd鐨刬d,鍦▁,y閮藉皬浜?00鏃訛紝鍙互琚媶鍒嗚繕鍘熸垚x鍜寉

this.status = "OPENED", // 褰撳墠鐘舵€? this.icon = image1, // 鍥炬爣

this.roundBombNum = 0//鍛ㄥ洿鐨勫湴闆鋒暟鐩?}

/**

* 灏嗘墍鏈夎〃鏍紅d鍔犲叆鐩戝惉浜嬩歡

* @param {Object} rects

*/

function addListener(rects){

for (var i = 1; i <= row; i++) {

for (var j = 1; j <= col; j++) {

rects[i][j].mytd.addEventListener("mousedown", sweeping, false);

}

}

}

/**

* 浜х敓鍗曞嚮浜嬩歡鏃舵墽琛屾鍑芥暟

* @param {Object} e

*/

function sweeping(e){

id = (window.event.srcElement ||e.target).parentNode.id; //鍗曞嚮鍥劇墖鏃訛紝鑾峰彇鍏剁埗鑺傜偣鐨刬d锛堝浘鐗?lt;img>鐨勭埗鑺傜偣鏄?lt;td>锛?

if (id == 0) {

var id = ( window.event.srcElement ||e.target).id;//鑾峰彇鍗曞嚮鐨勬柟鏍糹d锛?lt;td>鐨刬d锛? }

/* 灏嗚幏鍙栫殑id鍊兼媶鍒嗕負鍧愭爣鍊紉鍜寉*/

var x = Math.round(id / 100);

var y = id % 100;

/*鏂規牸澶勪簬姝e父鐘舵€佹椂*/

if (e.button==0 && rects[x][y].status == "NORMAL") {//e.button==0鏄負宸﹂敭浜嬩歡

if (rects[x][y].isBomb == false) {//鐐瑰埌鐨勪笉鏄浄

openRect(x, y);

}

else {//鐐瑰埌鐨勬槸闆? rects[x][y].mytd.innerHTML = imageBombForLabel;

gameover();//缁撴潫

}

countP.innerHTML = "宸茬炕寮€鐨勭殑鏍煎瓙:"+countNumOfOpenedRect+"聽聽鍓╀綑闆鋒暟锛?+leftBombNum;

if(countNumOfOpenedRect==row*col-numOfBomb){

youWin();//鎴愬姛锛? }

}else if(e.button==2){//鍗曞嚮鍙抽敭

if(rects[x][y].status == "NORMAL"){

rects[x][y].status ="FLAGED";

rects[x][y].icon = imageFlag;

rects[x][y].mytd.innerHTML = imageFlag;//鍥炬爣

leftBombNum--;

}

else if(rects[x][y].status == "FLAGED"){

rects[x][y].status = "NORMAL";

rects[x][y].icon = image1;

rects[x][y].mytd.innerHTML = image1;//鍥炬爣

leftBombNum++;

}

countP.innerHTML = "宸茬炕寮€鐨勭殑鏍煎瓙:"+countNumOfOpenedRect+"聽聽鍓╀綑闆鋒暟锛?+leftBombNum;

}

}

/**

* 缈誨紑涓€涓牸瀛愶紝鍏跺潗鏍囨槸(x,y)

* @param {Object} x

* @param {Object} y

*/

function openRect(x, y){

//alert(x+" "+y+rects[x][y].status);

rects[x][y].status = "OPENED";

countNumOfOpenedRect++;//璁℃暟鍣ㄥ姞1

rects[x][y].icon = numIcon[rects[x][y].roundBombNum];

rects[x][y].mytd.innerHTML = rects[x][y].icon;//璁劇疆鍥炬爣涓烘暟瀛? /*褰撳墠鏂規牸鍛ㄥ洿闆鋒暟涓?锛屽垯缈誨紑鍏跺懆鍥?涓紝杩欎釜涓€涓€掑綊*/

if (rects[x][y].roundBombNum == 0) {

if (rects[x + 1][y].status == "NORMAL") {

openRect(x + 1, y);

}

if (rects[x - 1][y].status == "NORMAL") {

openRect(x - 1, y);

}

if (rects[x + 1][y + 1].status == "NORMAL") {

openRect(x + 1, y + 1);

}

if (rects[x - 1][y + 1].status == "NORMAL") {

openRect(x - 1, y + 1);

}

if (rects[x][y + 1].status == "NORMAL") {

openRect(x, y + 1);

}

if (rects[x + 1][y - 1].status == "NORMAL") {

openRect(x + 1, y - 1);

}

if (rects[x - 1][y - 1].status == "NORMAL") {

openRect(x - 1, y - 1);

}

if (rects[x][y - 1].status == "NORMAL") {

openRect(x, y - 1);

}

}

}

/**

* 缁撴潫

*/

function gameover(){

alert("Game Over!!!/n鎸夌‘瀹氶噸鏂闆紑濮嬶紒锛?);

window.location.reload();

}

function youWin(){

alert("鎭枩浣狅紒/n鎸夌‘瀹氶噸鏂闆紑濮?);

window.location.reload();

}

/**

* 甯冮浄锛屽湪rects闅忓嵆閫変腑涓駭鐢焠涓偢寮? * @param {Object} rects

* @param {Object} n

*/

function choseBombs(rects, n){

for (var i = 0; i < n;) {

var x = Math.floor(Math.random() * row + 1);

var y = Math.floor(Math.random() * col + 1);

if (rects[x][y].isBomb == false) {

rects[x][y].isBomb = true;//鏄惁鏄浄鐨勫睘鎬ц涓虹湡

/* 鍛ㄥ洿8鏍肩殑闆鋒暟鍔?*/

rects[x + 1][y].roundBombNum++;

rects[x - 1][y].roundBombNum++;

rects[x - 1][y + 1].roundBombNum++;

rects[x + 1][y + 1].roundBombNum++;

rects[x][y + 1].roundBombNum++;

rects[x][y - 1].roundBombNum++;

rects[x + 1][y - 1].roundBombNum++;

rects[x - 1][y - 1].roundBombNum++;

//rects[x][y].icon = imageBomb;//鍔犱笂杩欏彞璇濆彲浠ユ樉绀哄嚭闆風殑浣嶇疆锛屾祴璇曟椂鐢? i++;

}

}

}

/**

* 鍒涘緩骞跺垵濮嬪寲琛ㄦ牸

* 鍒涘緩浜岀淮鏁扮粍锛屾瘡涓€涓厓绱犳槸涓€涓崟鍏冩牸锛屽垱寤虹殑闀垮害姣斿疄闄呰鏄劇ず鐨勫2琛?鍒? */

function createAndInitrects(){

var rects = new Array();//绗竴缁? for (var i = 0; i <= row + 1; i++) {

var column = new Array();//绗簩缁? for (var j = 0; j <= col + 1; j++) {

column[j] = new Rect(i, j);

}

rects[i] = column;

}

return rects;

}

/**

*鏄劇ず鍗曞厓鏍? */

function showrects(rects){

for (var i = 1; i <= row; i++) {

var myTr = document.createElement("tr");

for (var j = 1; j <= col; j++) {

myTr.appendChild(rects[i][j].mytd);

rects[i][j].status = "NORMAL";

rects[i][j].mytd.innerHTML = rects[i][j].icon;//鏄劇ず鍥炬爣

}

myTable.appendChild(myTr);

}

mybody.appendChild(myTable);

}

/**

* 鑷笉瑕佽劯鐨処E

*/聽

鍦ㄩ」鐩枃浠跺す涓嬫湁涓€涓猧amges鏂囦歡澶廣€?

鍖呭惈鍥劇墖 0.png銆?.png鈥︹€?.png 銆乥omb.png 銆乫lag_3.png 銆乻mallIcon.png銆?bombForLabel.gif绛?

chrome涓嬬殑杩愯鏁堟灉锛?

javaScript 掃雷 beta0.1
javaScript 掃雷 beta0.1

璐翠笂涓嬭澆鍦闆潃锛毬爃ttp://download.csdn.net/source/3203748

javaScript 掃雷 beta0.1

繼續閱讀