- 浏览: 267676 次
- 性别:
- 来自: 深圳
最新评论
-
zhaoaifeiyu:
楼主真是幽默,不过我看这个帖子居然是13年的。。。 我感觉我 ...
Java使用Tess4J 进行图片文字识别 笔记 -
wangzihui:
你好,能给我一个完整的代码么?我按照你的写出来后,汉字全是乱码 ...
Java使用Tess4J 进行图片文字识别 笔记 -
piaolin7:
[color=orange] ...
Java使用Tess4J 进行图片文字识别 笔记 -
xulei1992:
打开只有一个读到一半的进度条啊亲
连连看-js -
chenhailong:
楼主请问下你上面那个图是怎么画的?是用什么工具?
Java7语法新特性
前几天写了,算是一个小小的总结吧.
//连连看 2010.07.14 isw2 zhoux (function () { var cellDivCSS = "cellDiv";//选中前样式 var selectDivCSS = "selectDiv";//选中后样式 var maxChangePath = 2;//最多转向2次 //图块 var cell = function (panel, con, row) {//显示的图块 this.elem = document.createElement("div"); this.disImage; this.con = con; this.row = row; this.display = false; var height = "48", width = "48"; $(this.elem).attr("class", cellDivCSS); $(this.elem).click(function () { panel.cellClick(con, row); }); this.init = function (imageSrc) {//初始化图块 this.disImage = document.createElement("img"); this.disImage.src = imageSrc; this.elem.appendChild(this.disImage); $(this.disImage).attr({height:height,width:width,alt:imageSrc}); this.display = true; }; this.hide = function (speed) {//隐藏图块 $(this.disImage).hide(speed); this.display = false; }; this.show = function (speed) {//显示图块 $(this.disImage).show(speed); this.display = true; }; this.selectByPath = function (changePath, path, selectPath, endCell) {//根据路径查找 var tempCell = panel.cellPath(selectPath, this.con, this.row); if (null == tempCell) {//图块不可使用 return false; } if (tempCell.con === endCell.con && tempCell.row == endCell.row) {//图块找到 return true; } if (tempCell.display) {//如果此图块有显示 return false; } if (path !== selectPath && changePath < maxChangePath && tempCell.selectPath(changePath + 1, path, endCell)) {//如需转向 return true; } else if (path === selectPath && tempCell.selectPath(changePath, path, endCell)) {//不需转向 return true; }else{ return false; } }; this.selectPath = function (changePath, path, endCell) {//选择路径 if (path != "down" && this.selectByPath(changePath, path, "up", endCell)) {//上 return true; } if (path != "up" && this.selectByPath(changePath, path, "down", endCell)) {//下 return true; } if (path != "right" && this.selectByPath(changePath, path, "left", endCell)) {//左 return true; } if (path != "left" && this.selectByPath(changePath, path, "right", endCell)) {//右 return true; } return false; }; }; //面板 var panel = function () { this.row = 6, this.con = 6; var cellList, elem, selected = []; var imageList = ["image/chrome.png", "image/firefox.png", "image/google.png", "image/ie.png", "image/java.png", "image/opera.png", "image/ubuntu.png","image/eclipse.png","image/gnome.png","image/msn.png","image/redhat.png","image/windows.png"]; var selectDisplayImage = function () {//筛选出显示在面板上的图层(私有) var row, con, i, j, tempArr = [], countArr = 0; for (row = 0, i = cellList.length; row < i; row++) { for (con = 0, j = cellList[row].length; con < j; con++) { if (cellList[row][con].display === true) { tempArr[countArr++] = cellList[row][con]; } } } return tempArr; }; var setSelect = function (cell) {//设置选中 $(cell.elem).attr("class", selectDivCSS); }; var setUnselect = function (cell) {//取消选中 $(cell.elem).attr("class", cellDivCSS); }; this.init = function (panelId) {//初始化面板 var row, con, i, j; elem = $("#" + panelId)[0]; cellList = new Array(this.row + 2); for (row = 0, i = cellList.length; row < i; row++) {//初始化DIV cellList[row] = new Array(this.con + 2); for (con = 0, j = cellList[row].length; con < j; con++) { cellList[row][con] = new cell(this, con, row); elem.appendChild(cellList[row][con].elem); if (row > 0 && row < i - 1 && con > 0 && con < j - 1) {//设置是否显示 cellList[row][con].display = true; } } } this.radomImage(); }; this.radomImage = function () {//在现有的块上生成随机图片 var i, j, count, countArr = 0, imageLength = imageList.length, indexImage, tempArr; tempArr = selectDisplayImage();//筛选出在面板上显示的图块 for (indexImage in tempArr) {//删除原有图片 $(tempArr.disImage).remove(); } for (countArr = 0, count = tempArr.length; countArr < count / 2; countArr++) {//随机生成新图片,每次两张,保证配对 do { i = Math.floor(Math.random() * count); j = Math.floor(Math.random() * count); } while (i == j || (tempArr[i].disImage != null) || (tempArr[j].disImage != null)); indexImage = Math.floor(Math.random() * imageLength); tempArr[i].init(imageList[indexImage]); tempArr[j].init(imageList[indexImage]); } }; this.cellClick = function (con, row) { if (!cellList[row][con].display) { return; } if (cellList[row][con] == selected[0] || cellList[row][con] == selected[1]) { if (cellList[row][con] == selected[0]) {//取消选中第一个 selected[0] = selected[1]; selected[1] = null; } else if (cellList[row][con] == selected[1]) {//取消选中第二个 selected[1] = null; } setUnselect(cellList[row][con]); } else { if (null == selected[0]) {//选中第一个 selected[0] = cellList[row][con]; setSelect(selected[0]); } else { if (null == selected[1]) {//选中第二个 selected[1] = cellList[row][con]; if(selected[1].disImage.src == selected[0].disImage.src){//如果图片相同 if (selected[1].selectPath(0, "up", selected[0]) || selected[1].selectPath(0, "down", selected[0]) || selected[1].selectPath(0, "left", selected[0]) || selected[1].selectPath(0, "right", selected[0])) { selected[1].hide("slow"); selected[0].hide("slow"); if(!this.checkUse()){//检查是否可继续操作 this.radomImage(); } } } setUnselect(selected[0]);//取消选中的第一个 setUnselect(selected[1]);//取消选中的第二个 selected[1] = null; selected[0] = null; } } } }; this.cellPath = function (path, con, row) {//选择旁边的cell try {//数组越界 switch (path) { case "up": return cellList[++row][con]; case "down": return cellList[--row][con]; case "right": return cellList[row][++con]; case "left": return cellList[row][--con]; } } catch (e) { } return null; }; this.checkUse = function(){//查看是否还可以继续操作 var tempArr = selectDisplayImage(),i,j,k; if(tempArr.length == 0){ return true; } for(i in tempArr){ for(j = parseInt(i)+1,k = tempArr.length;j < k ;j++){ if(tempArr[i].disImage.src == tempArr[j].disImage.src){//如果图片相同 if (tempArr[i].selectPath(0, "up", tempArr[j]) || tempArr[i].selectPath(0, "down", tempArr[j]) || tempArr[i].selectPath(0, "left", tempArr[j]) || tempArr[i].selectPath(0, "right", tempArr[j])) { return true; } } } } alert("error"); return false; }; }; window._ = window.panel = new panel(); })();
- WebRoot.zip (240.2 KB)
- 下载次数: 79
发表评论
-
JavaScript 对象
2013-06-13 17:50 902<html> <head> &l ... -
ajax小结
2010-11-11 08:20 1170昨天笔试,杯具,SQL的 ... -
Json 在 IE6下出错
2010-09-17 15:59 1485前些天写的js 在IE6下出错,因为电脑上用的是IE8+ff ... -
jQuery1.4.1 代码分析(3多库共存,数据缓存,队列控制)
2010-07-13 15:21 1275jQuery 分析中出了很多疑问,都不能解决,代码能看懂,但搞 ... -
jQuery1.4.1 代码分析(2对象访问,插件机制)
2010-07-09 16:57 1196jQuery 的核心分为 jQuery 核心函数 j ... -
jQuery1.4.1 代码分析(1核心函数)
2010-07-08 15:29 1120学习一段时间了,算是总结一下吧.有部分暂时不能完全看明白.用& ... -
JavaScript 随手小记
2010-07-06 15:51 1007前些时间看了<JavaScript 权威指南>,信 ... -
jQuery 实现上下,左右滑动
2010-07-01 11:06 21176前几天的任务:http://t.sina.com.cn/ 的 ... -
JavaScript 写的一个贪吃蛇
2010-06-08 12:33 987这几天闲来无事写的。 算是总结了一下这段时间以来学到的 ... -
jQuery 表格排序
2010-06-02 16:27 2272<!DOCTYPE html PUBLIC " ... -
javaScript 实现的年月日三级联动
2010-05-29 01:26 2417// JavaScript Document 2010-06 ... -
Google map api的使用
2010-04-30 13:42 1681google map api google map ... -
JQuery 事件(3)
2010-04-29 15:09 1034JS美化,压缩http://js.clicki ... -
JQuery 选择器(2)
2010-04-28 17:31 930<!DOCTYPE html PUBLIC " ... -
JQuery 的使用(1)
2010-04-28 11:15 1152<!DOCTYPE HTML PUBLIC " ... -
打开MSN,QQ对话框
2010-03-13 11:34 3135下面是一个用超链打开QQ临时对话框的代码 <html& ... -
DIV和Image 的一些JavaScript 操作
2010-02-25 16:42 1492<html> <head> < ... -
Javascript 中正则表达示的使用
2010-02-09 14:55 949<script language="javas ... -
JavaScript 中自定义对象
2010-02-08 11:48 810http://www.ccvita.com/94.html ... -
JavaScript 操作CSS类
2010-02-05 16:59 1495<!DOCTYPE html PUBLIC " ...
相关推荐
本项目“图标连连看--js版连连看”是基于JavaScript实现的一款经典休闲游戏——连连看。通过这个游戏,我们可以深入理解JavaScript在图形用户界面(GUI)设计和游戏逻辑中的应用。 一、JavaScript基础与DOM操作 ...
【JavaScript连连看游戏详解】 本项目是一个基于JavaScript实现的连连看游戏,采用了QQ头像作为游戏元素,使得游戏更具趣味性。在这个项目中,我们主要会涉及到以下几个关键知识点: 1. **HTML布局**:游戏界面的...
开发者可以通过WebView加载本地存储的HTML、CSS和JavaScript文件,使得三国杀版连连看的游戏界面和交互逻辑能够在Android设备上流畅运行。 源码分析中,我们可以看到以下几个关键知识点: 1. **Activity和Intent**...
JavaScript应用实例-连连看.js
JavaScript应用实例-玩吧连连看.js
【JavaScript版连连看2.0】是一款基于JavaScript编程语言开发的轻量级休闲游戏,它在网页环境中为玩家提供了一种趣味盎然的娱乐方式。这款游戏的实现充分展示了JavaScript在网页交互和游戏开发中的强大能力。 ...
"js 版的连连看3个"这个项目涉及到了使用JavaScript实现连连看游戏的代码。连连看,又称为对对碰,是一款流行的休闲益智游戏,玩家需要在限定时间内找出并消除所有可以配对的相同元素。 描述中提到的两个已做好版本...
- 添加计时标签`js`,用于显示计时文字。 - 添加计时显示标签`s`,用于显示游戏计时。 - 添加提示按钮`ts`,用于显示剩余提示次数。 - 添加多个按钮控件`ButtonXX`,其中`XX`表示按钮的位置坐标,用于放置不同的...
在本项目中,“js游戏连连看代码”是一个使用JavaScript语言编写的前端小游戏。JavaScript,简称JS,是一种广泛应用于网页和网络应用的脚本语言,主要负责处理网页中的动态内容。它是HTML和CSS的强力补充,使得网页...
本文将深入探讨“js连连看”这款小游戏背后的JavaScript技术及其相关知识点。 首先,"js连连看"是一款基于纯JavaScript编写的休闲游戏。这款游戏的实现完全依赖于JavaScript的事件处理、DOM操作以及算法设计。下面...
"连连看游戏JavaScript版本"是一个基于JavaScript编程语言开发的小型休闲游戏。JavaScript是Web开发中的主要脚本语言,常用于实现网页的动态交互效果。在这个项目中,开发者使用JavaScript来控制游戏逻辑,包括游戏...
JavaScript连连看是一款基于JavaScript开发的在线游戏,它模拟了经典的桌面游戏连连看,目标是通过消除相同的图片对来清空游戏盘面。这个游戏的核心在于它的逻辑实现,包括图像的匹配规则、用户交互以及游戏状态的...
总的来说,这个纯JS实现的连连看游戏源码是一个很好的学习资源,涵盖了JavaScript基础、canvas绘图、响应式设计等多个方面,对于想要提升JavaScript游戏开发技能的开发者来说,无疑是一份宝贵的实践案例。...
JS连连看是一款基于JavaScript编程语言实现的在线休闲游戏,深受用户喜爱。这个游戏的核心在于其逻辑算法与交互设计,下面将详细解析JS连连看游戏的实现过程及其关键技术。 首先,我们需要理解游戏的基本规则。...
JavaScript编写的连连看游戏是一种基于Web的休闲娱乐应用,它利用了JavaScript这门客户端脚本语言的特性,为用户在浏览器环境下提供了互动的游戏体验。在火狐浏览器下,这款游戏能够流畅运行,显示了良好的跨平台...
在这个基于JavaScript(js)实现的连连看项目中,我们将探讨如何利用js和jQuery库来创建这样一个游戏。 首先,我们需要理解JavaScript的基本语法和数据结构,这是编写任何JavaScript程序的基础。JavaScript是一种弱...
"canvas小游戏-连连看"是一款基于JavaScript和HTML5 Canvas技术实现的经典连连看游戏。Canvas是HTML5中的一个重要元素,它允许开发者在网页上绘制图形,非常适合用来开发各种交互式的2D游戏。在这个项目中,...
在"js连连看游戏代码"中,我们可以看到整个项目的源代码,包括HTML用于构建游戏界面,CSS用于样式设计,以及JavaScript文件用于处理游戏逻辑和用户交互。通过阅读和理解这些代码,开发者不仅可以学习到如何用...
JavaScript应用实例-连连看(1).js