Js 简单实现翻牌小游戏

news/2024/11/8 0:38:47/

1.简介

非常简单的一个网络消消乐翻牌小游戏的实现,代码量较少,不过遇到的bug和自行开发的步骤十分有纪念意义。

2.核心代码块

生成随机数列,确定图片随机分布

function getImgIndex(is){var index = parseInt(Math.random()*8)+1;if(is[index] < 2){is[index]++;} else {index = getImgIndex(is);}return index;}

通过window.onload函数定义8个背景图片随机分布

window.onload = function(){//规则:五个背景图,每张图出现两次,随机分配到16个div中var ele = document.getElementById("parent");var imgs = [1,2,3,4,5,6,7,8]; 				var is = [0,0,0,0,0,0,0,0,0];for(var i = 0; i < 16; i++){var index = getImgIndex(is);console.info(index);ele.innerHTML += "<div id='k"+i+"' class='kid' "+"οnclick='oclick(this.id,"+index+");'></div>";	//通过字符串拼接方式,将H5代码发送给网页执行			}}

点击图片事件
oclick函数中利用f存储上个图片的index,;利用id2存储上个图片的id
再进行以下操作比较

function oclick(id,index){   if(find[index]<2){if(f==0){find[index]++;look(id,index);f=index;id2=id;}else{if(f==index&&id!=id2){   find[index]++;look(id,index);f=0;id2=0;marked++;}else{   find[f]=0;look(id,index);look(id2,f);clearStyle(id);clearStyle(id2);f=0;id2=0;}}}if(marked==8){alert("恭喜完成");}}

图片操作函数

function look(id,index){var ele = document.getElementById(id);ele.style="background-image: url("+index+".gif);";}function clearStyle(id){setTimeout(function(){var ele = document.getElementById(id);ele.style="";}, 200);}

重置页面函数

function re(){window.location.reload();}

页面的设计

	<body><div id="parent" class="par"></div><input type="button" name="b1" id="b1" value="再van♂一次" onclick="re();"/></body>

3.已知bug 说明(已解决)

1.点击图片本身两次导致匹配成功
解决方式:加入id判断是否为自身比较

f==index&&id!=id2

2.已匹配的图片再次点击会消除
解决方式:加入find[]数组统计图片点击次数,超过两次不再比较

if(find[index]<2)

4.全文代码

<!DOCTYPE html>
<html><head><meta charset="utf-8"><title></title><style>/* 父子网页界面设计 */.kid{width: 100px;height: 100px;background-color: #aaffff;border: 1px solid black;margin: 10px;float: left;}.par{width: 1000px;padding: 10px;border: 1px solid black;float: left;}</style><script>var f=0;var id2=0;var find = [0,0,0,0,0,0,0,0,0];var marked=0;window.onload = function(){//规则:五个背景图,每张图出现两次,随机分配到16个div中var ele = document.getElementById("parent");var imgs = [1,2,3,4,5,6,7,8]; 				var is = [0,0,0,0,0,0,0,0,0];for(var i = 0; i < 16; i++){var index = getImgIndex(is);console.info(index);ele.innerHTML += "<div id='k"+i+"' class='kid' "+"οnclick='oclick(this.id,"+index+");'></div>";				}}function getImgIndex(is){var index = parseInt(Math.random()*8)+1;if(is[index] < 2){is[index]++;} else {index = getImgIndex(is);}return index;}function oclick(id,index){   if(find[index]<2){if(f==0){find[index]++;look(id,index);f=index;id2=id;}else{if(f==index&&id!=id2){   find[index]++;look(id,index);f=0;id2=0;marked++;}else{   find[f]=0;look(id,index);look(id2,f);clearStyle(id);clearStyle(id2);f=0;id2=0;}}}if(marked==8){alert("恭喜完成");}}function look(id,index){var ele = document.getElementById(id);ele.style="background-image: url("+index+".gif);";}function clearStyle(id){setTimeout(function(){var ele = document.getElementById(id);ele.style="";}, 200);}function re(){window.location.reload();}</script></head><body><div id="parent" class="par"></div><input type="button" name="b1" id="b1" value="再van♂一次" onclick="re();"/></body>
</html>

注意:使用需修改图片地址url

实现效果

在这里插入图片描述
------by 啊哈在下


http://www.ppmy.cn/news/218899.html

相关文章

翻牌动画

效果如下(可兼容移动端)&#xff1a; css部分&#xff1a; <style type"text/css"> *, *:before, *:after { box-sizing: border-box; } html { font-size: 18px; line-height: 1.5; font-weight: 300; color: #333; font-family: "Nunito …

js 翻牌小游戏

js 翻牌小游戏 效果图 链接 PC端翻牌小游戏 需求分析 生成两组顺序随机的1-8数据卡片需要有翻转效果两次翻转数据不相等&#xff0c;回复原状两次翻转数据相等&#xff0c;卡片相等&#xff0c;不能再被点击当所有卡片不能被点击游戏结束限制最大点击次数50次 HTML结构 &…

JAVA记忆翻牌游戏制作

游戏功能需求说明代码编写 1 框架搭建2 主要技术难点 21 图片面板对应的图片索引获取22 图片面板 3 完整代码 游戏截图 1启动后界面2开始游戏界面3游戏结束界面 1 游戏功能需求说明 该游戏主要模拟常见的翻牌游戏&#xff0c;即找到所有两两相同的牌认为游戏成功&#xff0c;主…

js实现翻牌游戏

在我的项目中需要在里面添加一个翻牌游戏&#xff0c;就研究了一下&#xff0c;在这里只实现了基本的效果。不多说&#xff0c;和大家分享一下。 说到翻牌游戏&#xff0c;大致分为以下几个步骤&#xff1a; 绘制正反面卡牌-------------->洗牌----------------------->…

Qt 在 VS2017 上的安装配置

Qt5.0 以上的版本可以较好地满足一些软件项目开发的要求&#xff0c;并且移植性强。Qt 中包含 很多库函数用来支持 UI 界面的设计开发。所以可选择 Qt 与 VS2017 相结合的 开发方式。由于 Qt 是安装在 VS2017 上的插件&#xff0c;所以需要下载相关的 vsaddin-msvc2017 插件。 …

Qt的安装及配置

一、Qt的安装 1.下载链接 或者 网盘下载 链接: https://pan.baidu.com/s/15Fwh8kOtrj4GIIg6ptnb7A 提取码: uvar 2.先注册账号&#xff0c;用自己的qq邮箱就可(注意&#xff1a;密码要有数字和大小写字母) 3.看图 4. 第一个&#xff1a;通过在Q中启用发送假名使用统计数据来…

QT5.14.2+VS2022配置MSVC2017

VS2022安装注意事项 1.在单个组件里选中需要的编译器&#xff0c; 安装Qt 配置Qt kits 跳转链接吧&#xff0c;详细教程

vs2019配置qt

下载安装包路径&#xff1a;http://download.qt.io/archive/qt/&#xff0c;先安装qt。 VS配置&#xff1a;在扩展—管理扩展—联机中搜索Qt并安装。 安装重启VS后&#xff0c;在点击扩展&#xff0c;下面有一栏Qt VS Tools&#xff0c;点击后如下配置对应的插件版本即可。&am…