聽
鎴戝潥淇♀€斺€旈€氳繃瀹炶返瀛︿範鏄渶鏈夋晥鐨勬柟娉曘€?
聽
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涓嬬殑杩愯鏁堟灉锛?
聽
聽
璐翠笂涓嬭澆鍦闆潃锛毬爃ttp://download.csdn.net/source/3203748
聽
聽
聽