初见 我是在这里看到这个游戏的

× 请看这里 http://www.webhek.com/misc/inverter.

看到这个小游戏就觉得挺有意思的,于是想要去自己实现它。

开始 下面的是这个小游戏,大家玩玩看

×Close

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小游戏-蓝色拼图的更多相关文章

  1. 一个js小游戏----总结

    花了大概一天左右的功夫实现了一个js小游戏的基本功能,类似于“雷电”那样的小游戏,实现了随即怪物发生器,碰撞检测,运动等等都实现了,下一个功能是子弹轨迹,还有其他一些扩展功能,没有用库,也没有用web ...

  2. JS小游戏:贪吃蛇(附源码)

    javascript小游戏:贪吃蛇 此小游戏采用的是面向对象的思想,将蛇,食物,和游戏引擎分为3个对象来写的. 为方便下载,我把js写在了html中, 源码中暂时没有注释,等有空我在添加点注释吧. 游 ...

  3. js小游戏:五子棋

    使用纯js的小游戏,五子棋 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> ...

  4. JS小游戏寻找房祖名

    提示:1:先把两个图片放到重命名并放到相应的路径内. 2:本小游戏只为闲事练手,如有小bug自行解决,解决不了的可以留言,我看到后解决. 代码如下: <!DOCTYPE html>< ...

  5. Vue.js小游戏:测试CF打狙速度

    此项目只测试反应速度,即手点击鼠标的反应速度 html代码 <div id="top">请等待图片变颜色,颜色便的那一刻即可点击测手速</div> < ...

  6. js小游戏---智力游戏

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <HEAD ...

  7. u3d_小游戏_拼图_1_生成碎片(非随机)

    http://blog.csdn.net/cube454517408/article/details/7907247  首先是参考此文: main.cs作用:1.大图的拆分 2.判断是否成功 3.对碎 ...

  8. JS小游戏

    捕鱼达人 飞机大战游戏 详解javaScript的深拷贝 http://www.cnblogs.com/penghuwan/p/7359026.html

  9. pixi.js 微信小游戏 入手

    pixi是什么?一款h5游戏引擎 优点:简单简洁性能第一 缺点:大多数用的国产三大引擎,pixi资料少,工具少, 为什么学,装逼 用pixi开发小游戏行吗? 行.但要简单处理下 下载官网上的 weap ...

随机推荐

  1. 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 ...

  2. MongoDB 入门之基础 DCL

    此文章主要记录部分主要的 MongoDB 的 DCL 操作. MongoDB 默认不需要用户名和密码就可以用 mongodb.exe 登录 一.开启 MonogoDB 的权限模式 修改 MongoDB ...

  3. 【BZOJ1827】[Usaco2010 Mar]gather 奶牛大集会 树形DP

    [BZOJ][Usaco2010 Mar]gather 奶牛大集会 Description Bessie正在计划一年一度的奶牛大集会,来自全国各地的奶牛将来参加这一次集会.当然,她会选择最方便的地点来 ...

  4. BZOJ 1468 & 点分治

    题意: 带权树,求距离小于k的点对数目. SOL: 参考http://blog.csdn.net/jiangshibiao/article/details/25738041解决了题意问题... 代码是 ...

  5. ubuntu下命令行禁用笔记本触摸板

    机房电脑不好用,所以用笔记本,但是由于笔记本过分紧凑手经常让鼠标不知道跑哪里去.于是找到了这两个命令 禁用:sudo rmmod psmouse 启用:sudo modprobe psmouse 非常 ...

  6. Java的集合类

    转自:Q.Mr的博客 http://www.cnblogs.com/zrtqsk/p/3472258.html (本人第一次写博客,部分内容有参照李刚老师的疯狂java系列图书,如有遗漏错误,请多指教 ...

  7. Android --时间控件的使用

    1. mian.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns: ...

  8. Window对象简介

    Window对象是JavaScript层级中的顶层对象. Window对象表示一个浏览器窗口或一个框架,它在<body>或<frameset>出现时被自动创建. Window对 ...

  9. 纪念逝去的岁月——C/C++快速排序

    快速排序 代码 #include <stdio.h> void printList(int iList[], int iLen) { ; ; i < iLen; i++) { pri ...

  10. Node.js执行存储过程

    直接上代码 var sql = require('mssql'); var config = {     user: 'sa',     password: '123456',     server: ...