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 ...
随机推荐
- iOS 'The sandbox is not sync with the Podfile.lock错误
出现以下错误时, diff: /../Podfile.lock: No such file or directory diff: Manifest.lock: No such file or dire ...
- MongoDB 入门之基础 DCL
此文章主要记录部分主要的 MongoDB 的 DCL 操作. MongoDB 默认不需要用户名和密码就可以用 mongodb.exe 登录 一.开启 MonogoDB 的权限模式 修改 MongoDB ...
- 【BZOJ1827】[Usaco2010 Mar]gather 奶牛大集会 树形DP
[BZOJ][Usaco2010 Mar]gather 奶牛大集会 Description Bessie正在计划一年一度的奶牛大集会,来自全国各地的奶牛将来参加这一次集会.当然,她会选择最方便的地点来 ...
- BZOJ 1468 & 点分治
题意: 带权树,求距离小于k的点对数目. SOL: 参考http://blog.csdn.net/jiangshibiao/article/details/25738041解决了题意问题... 代码是 ...
- ubuntu下命令行禁用笔记本触摸板
机房电脑不好用,所以用笔记本,但是由于笔记本过分紧凑手经常让鼠标不知道跑哪里去.于是找到了这两个命令 禁用:sudo rmmod psmouse 启用:sudo modprobe psmouse 非常 ...
- Java的集合类
转自:Q.Mr的博客 http://www.cnblogs.com/zrtqsk/p/3472258.html (本人第一次写博客,部分内容有参照李刚老师的疯狂java系列图书,如有遗漏错误,请多指教 ...
- Android --时间控件的使用
1. mian.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns: ...
- Window对象简介
Window对象是JavaScript层级中的顶层对象. Window对象表示一个浏览器窗口或一个框架,它在<body>或<frameset>出现时被自动创建. Window对 ...
- 纪念逝去的岁月——C/C++快速排序
快速排序 代码 #include <stdio.h> void printList(int iList[], int iLen) { ; ; i < iLen; i++) { pri ...
- Node.js执行存储过程
直接上代码 var sql = require('mssql'); var config = { user: 'sa', password: '123456', server: ...