JS小游戏-蓝色拼图
初见 我是在这里看到这个游戏的
看到这个小游戏就觉得挺有意思的,于是想要去自己实现它。
开始 下面的是这个小游戏,大家玩玩看
Oh!蓝色拼图
当前级别:
重置本局 重置级别 玩法说明
以下是代码 写完后自己看着都觉得恶心...很想把它放到一个对象里面,但是太懒了,能用就行(つд⊂)
.gamebox {
background-color: #4D4D4D;
border-radius: 4px;
height: 200px;
margin: 0 auto;
margin-bottom: 50px;
position: relative;
width: 60%;
max-width:500px;
}
.gamecard {
background-color: rgb(230, 171, 94);
border-radius: 4px;
position: absolute;
}
var gameBox;
$(function() {
gameBox = $("#gameBox");
loadLevel(1); $(window).resize(function() {
setBoxPosition();
});
}); var gameOptions = {
level: 1,
border: 15,
array: []
}; function showHowToPlay() {
bootbox.dialog({
title: "玩法说明",
message: "
如何才算赢:使拼板全部变成蓝色。
玩法:每个方块一面橙色,一面蓝色。点击一个方块,这个方块的颜色会翻转,并且,与它邻接的方块的颜色也会翻转。
",
buttons: {
btn: {
label: "了解",
className: "btn btn-success"
}
}
});
} function reloadLevel() {
bootbox.dialog({
title: "确定要这么做么?",
message: "你将要从Lv1重新开始游戏",
buttons: {
cancel: {
label: "算了",
className: "btn btn-success"
},
btn: {
label: "我确定",
className: "btn btn-danger",
callback: function() {
loadLevel(1);
}
}
}
});
} function reloadGame() {
bootbox.dialog({
title: "确定要这么做么?",
message: "你将重新开始该等级的游戏",
buttons: {
cancel: {
label: "算了",
className: "btn btn-success"
},
btn: {
label: "我确定",
className: "btn btn-danger",
callback: function() {
loadLevel(gameOptions.level);
}
}
}
});
} function fillCard() {
gameBox.empty();
gameOptions.array = [];
for (var x = 0; x < gameOptions.level; x++) {
var row = new Array();
for (var y = 0; y < gameOptions.level; y++) {
var card = "
";
gameBox.append(card); //添加元素
row.push(0);
}
gameOptions.array.push(row); //添加二维数组,定义元素状态,默认全为0
}
} function setBoxPosition() {
var boxwidth = gameBox.width();
gameBox.height(boxwidth); //宽高相等
var border = gameOptions.border; //间隔宽度
var len = (boxwidth - (gameOptions.level + 1) * border) / gameOptions.level;
for (var x = 0; x < gameOptions.level; x++) {
for (var y = 0; y < gameOptions.level; y++) {
var ele = gameBox.children("div[data-x=" + x + "][data-y=" + y + "]");
var eleX = x * len + (x + 1) * border;
var eleY = y * len + (y + 1) * border;
ele.css({ "left": eleX + "px", "top": eleY + "px" });
ele.width(len).height(len);
}
}
} function loadLevel(level) {
gameOptions.level = level;
fillCard();
setBoxPosition();
$("#tip-level").html(level);
} function clickCard(x, y) {
changeState(x, y); changeState(x - 1, y);
changeState(x + 1, y);
changeState(x, y + 1);
changeState(x, y - 1); checkWin();
} function changeState(x, y) {
var lel = gameOptions.level;
if (x < 0 || x >= lel || y < 0 || y > lel) {
return;
} var num = getNum(x, y);
num = num == 1 ? 0 : 1;
setNum(x, y, num); //当前块状态改变 var ele = gameBox.children("div[data-x=" + x + "][data-y=" + y + "]");
ele.css("background-color", num == 1 ? "rgb(92, 144, 255)" : "rgb(230, 171, 94)"); //改变颜色
} function setNum(x, y, num) {
gameOptions.array[x][y] = num;
} function getNum(x, y) {
return gameOptions.array[x][y];
} function checkWin() {
var win = true;
for (var x = 0; x < gameOptions.level; x++) {
for (var y = 0; y < gameOptions.level; y++) {
var num = getNum(x, y);
if (num != 1) {
win = false;
break;
}
}
if (!win) break;
}
if (win) {
var lev = gameOptions.level + 1;
makeDialog("完成拼图!", "进入下一关,Lv" + lev, function() {
loadLevel(lev);
}, 10);
}
}
Σ( ゚д゚) 上面的代码一直调不好
实在不行看源码,哈哈
.
JS小游戏-蓝色拼图的更多相关文章
- 一个js小游戏----总结
花了大概一天左右的功夫实现了一个js小游戏的基本功能,类似于“雷电”那样的小游戏,实现了随即怪物发生器,碰撞检测,运动等等都实现了,下一个功能是子弹轨迹,还有其他一些扩展功能,没有用库,也没有用web ...
- JS小游戏:贪吃蛇(附源码)
javascript小游戏:贪吃蛇 此小游戏采用的是面向对象的思想,将蛇,食物,和游戏引擎分为3个对象来写的. 为方便下载,我把js写在了html中, 源码中暂时没有注释,等有空我在添加点注释吧. 游 ...
- js小游戏:五子棋
使用纯js的小游戏,五子棋 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> ...
- JS小游戏寻找房祖名
提示:1:先把两个图片放到重命名并放到相应的路径内. 2:本小游戏只为闲事练手,如有小bug自行解决,解决不了的可以留言,我看到后解决. 代码如下: <!DOCTYPE html>< ...
- Vue.js小游戏:测试CF打狙速度
此项目只测试反应速度,即手点击鼠标的反应速度 html代码 <div id="top">请等待图片变颜色,颜色便的那一刻即可点击测手速</div> < ...
- js小游戏---智力游戏
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <HEAD ...
- u3d_小游戏_拼图_1_生成碎片(非随机)
http://blog.csdn.net/cube454517408/article/details/7907247 首先是参考此文: main.cs作用:1.大图的拆分 2.判断是否成功 3.对碎 ...
- JS小游戏
捕鱼达人 飞机大战游戏 详解javaScript的深拷贝 http://www.cnblogs.com/penghuwan/p/7359026.html
- pixi.js 微信小游戏 入手
pixi是什么?一款h5游戏引擎 优点:简单简洁性能第一 缺点:大多数用的国产三大引擎,pixi资料少,工具少, 为什么学,装逼 用pixi开发小游戏行吗? 行.但要简单处理下 下载官网上的 weap ...
随机推荐
- shell中命令之间数据的传递
1.管道 "|" ls | cat -n > out.txt 2. 子shell 2.1 子shell 说明 在shell脚本中可以用()操作符可以定义一个子shell #/ ...
- MFC 设置控件事件对应的函数
在项目中,右击你想设置的控件,打开属性. 然后找到:控件事件,如果在Visual Studio 2015中操作,显示如图: 然后,以设定单击事件为例: 点击右边的三角,选择 <Edit Code ...
- HDU4758 Walk Through Squares(AC自动机+状压DP)
题目大概说有个n×m的格子,有两种走法,每种走法都是一个包含D或R的序列,D表示向下走R表示向右走.问从左上角走到右下角的走法有多少种走法包含那两种走法. D要走n次,R要走m次,容易想到用AC自动机 ...
- Unity Standard Assets 简介之 2D
这篇介绍2D资源包. 文件夹比较多,但是很多都是prefab的基础资源,所以我们只介绍 Prefabs 和 Scripts 文件夹. Prefabs文件夹: CharacterRobotBoy: 提供 ...
- Android Intent (可通过URL启动 Activity)
Intent分为两大类: (1)显性的(Explicit) (2)隐性的(Implicit) 对于隐性意图,在某些时候, 应用程序只是想启动具有某种特征的组件, 并不想和某个特定的组件耦合. 使用In ...
- Android Service与Activity之间通信
主要分为: 通过Binder对象 通过broadcast(广播)的形式 Activity调用bindService (Intent service, ServiceConnection conn, i ...
- 【BZOJ1034】[ZJOI2008]泡泡堂BNB 贪心
Description 第XXXX届NOI期间,为了加强各省选手之间的交流,组委会决定组织一场省际电子竞技大赛,每一个省的代表队由n名选手组成,比赛的项目是老少咸宜的网络游戏泡泡堂.每一场比赛前,对阵 ...
- Lable得到自定义高度!
方法1(系统):CGSize declabesize = [_questionDecLabel.text boundingRectWithSize:CGSizeMake(CGRectGetWidth( ...
- Flex条件判断中注意事项
1:等于判断条件,一定注意写两个==等号, if (obj.ProcessType="Relation") 如果只写一个等号,编译不会报错,并且Flex会认为是赋值操作,并且该语句 ...
- GraphicsMagick+im4java 图片处理
最近团队内部分享GraphicsMagick+im4java 图片处理 就把如何安装,运行都统一整理一下. 详细如下: 在windows上安装ImageMagick: download 地址:http ...