| 首页 | 新闻 | 网页 | 设计 | 色彩 | 原创 | 视觉 | 素材 | 动漫 | 酷站 | 策划 | 文案 | 访谈 | 运营 | 编程 | 数据库 | 服务器 | 下载 | 图库 | 
您的位置: 幽幽天空 > 网页 > 网页制作 > Flash教程 > Flash游戏制作 > 文章正文 用户登录
为你新浪博客添加
关于RPG类型游戏制
[手机游戏]:关于t
一个FLASH小游戏的
利用条件语句制作
猜数字游戏--AS处
一个猜球游戏
拼图游戏
另一个种拼图游戏
ACT游戏基础-键盘

扫雷游戏代码           

扫雷游戏代码

作者:佚名 来源:不详 更新:2007-1-13 20:43:02 错误报告 我要投稿
 代码是没有除错的,我只用来参考,先放这儿:
function buildMap(map) {
 W = map[0].length;
 H = map.length;
 for (var j = 0; j<H; ++j) {
  for (var i = 0; i<W; ++i) {
   this.attachMovie("tile", "t_"+j+"_"+i, ++d);
   var _mc = this["t_"+j+"_"+i];
   _mc._x = i*size+width[level];
   _mc._y = j*size+height[level];
   _mc.gotoAndStop(12);
   _mc.state = 0;
   _mc.number = 0;
   _mc.bomb = 0;
   _mc.count = 0;
   _mc.mark = 0;
   _mc.x = i;
   _mc.y = j;
  }
 }
}
function placeBombs() {
 var counter = 0;
 while (counter<bombs[level]) {
  var ranW = random(W);
  var ranH = random(H);
  var _mc = this["t_"+ranH+"_"+ranW];
  var b = _mc.bomb;
  if (!b) {
   _mc.bomb = 1;
   myMap[ranH][ranW] = 9;
   ++counter;
  }
 }
}
function placeNumbers(map) {
 for (var j = 0; j<H; ++j) {
  for (var i = 0; i<W; ++i) {
   var _mc = this["t_"+j+"_"+i];
   if (!_mc.bomb) {
    if (map[j][i+1] == 9) {
     ++_mc.count;
    }
    if (map[j][i-1] == 9) {
     ++_mc.count;
    }
    if (map[j+1][i] == 9) {
     ++_mc.count;
    }
    if (map[j-1][i] == 9) {
     ++_mc.count;
    }
    if (map[j-1][i-1] == 9) {
     ++_mc.count;
    }
    if (map[j-1][i+1] == 9) {
     ++_mc.count;
    }
    if (map[j+1][i+1] == 9) {
     ++_mc.count;
    }
    if (map[j+1][i-1] == 9) {
     ++_mc.count;
    }
    if (_mc.count !== 1) {
     continue;
    }
    _mc.number = 1;
    continue;
    _mc.number = 2;
    continue;
    _mc.number = 3;
    continue;
    _mc.number = 4;
    continue;
    _mc.number = 5;
    continue;
    _mc.number = 6;
    continue;
    _mc.number = 7;
    continue;
    _mc.number = 8;
    continue;
   }
  }
 }
}
function setLabel(m) {
 markedLabel = "Marked: "+m+" / "+bombs[level];
 switch (level) {
 case 1 :
  levelLabel = "Beginner";
  break;
 case 2 :
  levelLabel = "Intermediate";
  break;
 case 3 :
  levelLabel = "Expert";
  break;
 }
}
function findTile(x, y) {
 var Y = y;
 var X = x;
 var tu = this["t_"+(Y-1)+"_"+X];
 var td = this["t_"+(Y+1)+"_"+X];
 var tl = this["t_"+Y+"_"+(X-1)];
 var tr = this["t_"+Y+"_"+(X+1)];
 var tur = this["t_"+(Y-1)+"_"+(X+1)];
 var tdr = this["t_"+(Y+1)+"_"+(X+1)];
 var tul = this["t_"+(Y-1)+"_"+(X-1)];
 var tdl = this["t_"+(Y+1)+"_"+(X-1)];
 if (tu.bomb == 0 && tu.mark == 0 || td.bomb == 0 && td.mark == 0 || tl.bomb == 0 && tl.mark == 0 || tr.bomb == 0 && tr.mark == 0 || tur.bomb == 0 && tur.mark == 0 || tdr.bomb == 0 && tdr.mark == 0 || tul.bomb == 0 && tul.mark || tdl.bomb == 0 && tdl.mark == 0) {
  this["t_"+Y+"_"+X].state = 1;
  this["t_"+Y+"_"+X].gotoAndStop(13);
  if (tu.number == 0 && tu.state == 0 && tu.bomb == 0 && tu.mark == 0) {
   findTile(X, Y-1);
  } else if (tu.bomb == 0 && tu.mark == 0) {
   tu.gotoAndStop(tu.number);
   tu.state = 1;
  }
  if (td.number == 0 && td.state == 0 && td.bomb == 0 && td.mark == 0) {
   findTile(X, Y+1);
  } else if (td.bomb == 0 && td.mark == 0) {
   td.gotoAndStop(td.number);
   td.state = 1;
  }
  if (tl.number == 0 && tl.state == 0 && tl.bomb == 0 && tl.mark == 0) {
   findTile(X-1, Y);
  } else if (tl.bomb == 0 && tl.mark == 0) {
   tl.gotoAndStop(tl.number);
   tl.state = 1;
  }
  if (tr.number == 0 && tr.state == 0 && tr.bomb == 0 && tr.mark == 0) {
   findTile(X+1, Y);
  } else if (tr.bomb == 0 && tr.mark == 0) {
   tr.gotoAndStop(tr.number);
   tr.state = 1;
  }
  if (tur.number == 0 && tur.state == 0 && tur.bomb == 0 && tur.mark == 0) {
   findTile(X+1, Y-1);
  } else if (tur.bomb == 0 && tur.mark == 0) {
   tur.gotoAndStop(tur.number);
   tur.state = 1;
  }
  if (tdr.number == 0 && tdr.state == 0 && tdr.bomb == 0 && tdr.mark == 0) {
   findTile(X+1, Y+1);
  } else if (tdr.bomb == 0 && tdr.mark == 0) {
   tdr.gotoAndStop(tdr.number);
   tdr.state = 1;
  }
  if (tul.number == 0 && tul.state == 0 && tul.bomb == 0 && tul.mark == 0) {
   findTile(X-1, Y-1);
  } else if (tul.bomb == 0 && tul.mark == 0) {
   tul.gotoAndStop(tul.number);
   tul.state = 1;
  }
  if (tdl.number == 0 && tdl.state == 0 && tdl.bomb == 0 && tdl.mark == 0) {
   findTile(X-1, Y+1);
   return;
  }
  if (tdl.bomb == 0 && tdl.mark == 0) {
   tdl.gotoAndStop(tdl.number);
   tdl.state = 1;
  }
 }
}
function gameOver(x, y) {
 var _this = this;
 for (var j = 0; j<H; ++j) {
  for (var i = 0; i<W; ++i) {
   if (_this["t_"+j+"_"+i].bomb) {
    _this["t_"+j+"_"+i].gotoAndStop(9);
   }
  }
 }
 _this["t_"+y+"_"+x].gotoAndStop(10);
 playGame = 0;
 snd2.start(0, 1);
 statusLabel = "DEAD!";
}
function checkWin() {
 var count = 0;
 for (var j = 0; j<H; ++j) {
  for (var i = 0; i<W; ++i) {
   var mc = this["t_"+j+"_"+i];
   if (mc.state == 1) {
    ++count;
   }
  }
 }
 if (count+bombs[level] == H*W) {
  statusLabel = "YOU WIN!";
  snd1.start(0, 1);
  playGame = 0;
 }
}
myMap1 = [[0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0]];
myMap2 = [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]];
myMap3 = [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]];
width = [0, 49, 34, 18];
height = [0, 48, 34, 16];
bombs = [0, 10, 15, 20];
size = 16;
_root.onKeyDown = function() {
 if (playGame) {
  if (Key.isDown(32)) {
   var col = int((_xmouse-width[level])/size);
   var row = int((_ymouse-height[level])/size);
   var _mc = this["t_"+row+"_"+col];
   if (!_mc.mark && !_mc.state) {
    _mc.mark = 1;
    _mc.gotoAndStop(11);
    ++marked;
    setLabel(marked);
   }
  }
 }
};
d = 0;
marked = 0;
playGame = 1;
myMap = _root["myMap"+level];
buildMap(myMap);
placeBombs();
placeNumbers(myMap);
setLabel(marked);
statusLabel = "";
Key.addListener(_root);
stop();
文章录入:skyuu    责任编辑:skyuu 
  • 上一篇文章:

  • 下一篇文章:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    发表评论:
    姓名:  评 分: 1分 2分 3分 4分 5分
     
  • 严禁发表危害国家安全、政治、黄色淫秽等内容的评论。
  • 用户需对自己在使用幽幽天空服务过程中的行为承担法律责任。
  • 本站管理员有权保留或删除评论内容。
  • 评论内容只代表机友个人观点,与本网站立场无关。