javascript实现九宫格相加数值相等


Posted in Javascript onMay 28, 2020

本文实例介绍了javascript实现九宫格相加数值相等的对应方法,分享给大家供大家参考,具体内容如下

实现思路:

1、每个格子输入的数值必须为数字;

2、输入数值不能重复;

3、输入数值不能小于1或大于9;

4、数值不能为空;

5、相加方式共8个,分别为横向三个、纵向三个、两条对角线两个值。详情如下:

javascript实现九宫格相加数值相等

解释: 

       以每个格子所标记序号为标识:

      横向三个值:0-2,3-4,6-8;

      纵向三个值:[0,3,6]、[1,4,7]、[2,5,8];

      对角线两个值:[0,4,8]、[2,4,6]

实现过程:

很简单,和上面图片一样,点击提交按钮开始判断。

1、布局

html部分:

<div class="box">
 <input type="text">
 <input type="text">
 <input type="text">
 <input type="text">
 <input type="text">
 <input type="text">
 <input type="text">
 <input type="text">
 <input type="text">
 <button>提交</button>
</div>

css部分:通过css3中属性实现。

*{margin:0;padding:0;outline: none;}
html,body{
 height: 100%;
 display: flex;
 justify-content: center;
 align-items: center;
}
.box{
 position: relative;
 width: 250px;
 margin:0 auto;
}
input{
 text-align: center;
 font: 40px/60px 'Microsoft YaHei';
 width: 30%;
 float:left;
 box-sizing:border-box
}
button{
 position: absolute;
 bottom:-30px;
 left: 50%;
 margin-left: -30px;
 width: 40px;
}

2、接下来重点来了,js部分

之前已经说了js的实现的方法,一下是相关代码。

var oBtn=document.getElementsByTagName('button')[0],
aInp=document.getElementsByTagName('input');
function isNum(){

var aTemp=[];//创建临时函数,一次存放九宫格中的数字

for(i=0;i<aInp.length;i++)

{
 var val=Number(aInp[i].value);
 if(isNaN(val) || val<1 || val>9) {//判断当前输入框中数值是否是数字,是否小于1,是否大于9?
 
alert('1、您只能输入1-9纯数字;2、不能为空;');
 
return false;//若满足任意一条件直接退出函数不往下走
 }
 for(s=0;s<aTemp.length;s++){//循环判断九宫格内是否有重复数值,若是有重复直接推出函数
 
if(val == aTemp[s]){
 

alert('不能重复输入!');
 

return false;
 
}
 }
 //上述判断都满足,则将当前val的值放到数组aTemp中
 aTemp.push(val);

}

//n后面所跟数字与上面图片每个格子标记的数值一致

//将横向与纵向的值设置为0;其中n1-n3为横向三个值,n4-n6为纵向三个值

var n1=0,n2=0,n3=0,n4=0,n5=0,n6=0,

//n7、n8分别为两对角值
 n7=aTemp[0]+aTemp[4]+aTemp[8],
 n8=aTemp[2]+aTemp[4]+aTemp[6];

//横向:分段相加值

for(i=0;i<3;i++)n1+=aTemp[i];

for(i=3;i<6;i++)n2+=aTemp[i];

for(i=6;i<9;i++)n3+=aTemp[i];

//纵向:因为纵向是每隔两个格子相加一次,所以正好用取模方式计算



for(i=0;i<9;i++){
 (i%3==0) && (n4+=aTemp[i]);//当i%3=0时,分别为格子0、3、6
 (i%3==1) && (n5+=aTemp[i]);//当i%3=1时,分别为格子1、4、7
 (i%3==2) && (n6+=aTemp[i]);//当i%3=1时,分别为格子2、5、8

}

//判断n1-n8各值是否都相等,当然可以任意一个n判断,不局限只与n1的值相等

n1==n2 && n1==n3 && n1==n4 && n1==n5 && n1==n6 && n1==n7 && n1==n8 ? alert('恭喜您输入正确!') : alert('很遗憾您输入错误!');
}
oBtn.onclick=isNum;执行效果

1、当输入数值为非数字,或大于9,或小于0,或为空时

javascript实现九宫格相加数值相等

2、当输入重复数字时

javascript实现九宫格相加数值相等

3、当输入正确时

javascript实现九宫格相加数值相等

以上就是本文的全部内容,希望对大家学习javascript程序设计有所帮助。

Javascript 相关文章推荐
jqPlot Option配置对象详解
Jul 25 Javascript
学习ExtJS Panel常用方法
Oct 07 Javascript
jquery判断checkbox(复选框)是否被选中的代码
Oct 20 Javascript
jquery 全局AJAX事件使用代码
Nov 05 Javascript
jquery 获取自定义属性(attr和prop)的实现代码
Jun 27 Javascript
javascript用户注册提示效果的简单实例
Aug 17 Javascript
ajaxFileUpload.js插件支持多文件上传的方法
Sep 02 Javascript
ES6新特性之类(Class)和继承(Extends)相关概念与用法分析
May 24 Javascript
javascript数组定义的几种方法
Oct 06 Javascript
QQ跳转支付宝并自动领红包脚本(最新)
Jun 22 Javascript
浅谈JS中this在各个场景下的指向
Aug 14 Javascript
vue自动化路由的实现代码
Sep 30 Javascript
Javascript类型转换的规则实例解析
Feb 23 #Javascript
理解Javascript图片预加载
Feb 23 #Javascript
Bootstarp风格的toggle效果分享
Feb 23 #Javascript
javascript瀑布流式图片懒加载实例解析与优化
Feb 23 #Javascript
javascript瀑布流式图片懒加载实例
Jun 28 #Javascript
Bootstrap创建可折叠的组件
Feb 23 #Javascript
理解javascript定时器中的setTimeout与setInterval
Feb 23 #Javascript
You might like
基于header的一些常用指令详解
2013/06/06 PHP
php四种基础算法代码实例
2013/10/29 PHP
jQuery 遍历-nextUntil()方法以及prevUntil()方法的使用介绍
2013/04/26 Javascript
js拖动div 当鼠标移动时整个div也相应的移动
2013/11/21 Javascript
js如何判断用户是在PC端和还是移动端访问
2014/04/24 Javascript
详解jQuery移动页面开发中的ui-grid网格布局使用
2015/12/03 Javascript
JavaScript核心语法总结(推荐)
2016/06/02 Javascript
Jquery遍历select option和添加移除option的实现方法
2016/08/26 Javascript
jQuery插件JWPlayer视频播放器用法实例分析
2017/01/11 Javascript
jQuery事件_动力节点Java学院整理
2017/07/05 jQuery
关于Vue组件库开发详析
2018/07/01 Javascript
详解NodeJS Https HSM双向认证实现
2019/03/12 NodeJs
Node.js如何优雅的封装一个实用函数的npm包的方法
2019/04/29 Javascript
使用element-ui的el-menu导航选中后刷新页面保持当前选中状态
2019/07/19 Javascript
vue 实现滚动到底部翻页效果(pc端)
2019/07/31 Javascript
JS实现联想、自动补齐国家或地区名称的功能
2020/07/07 Javascript
vue+高德地图实现地图搜索及点击定位操作
2020/09/09 Javascript
用Python将IP地址在整型和字符串之间轻松转换
2017/03/22 Python
Python基于更相减损术实现求解最大公约数的方法
2018/04/04 Python
python3 selenium 切换窗口的几种方法小结
2018/05/21 Python
python3实现SMTP发送邮件详细教程
2018/06/19 Python
python 使用事件对象asyncio.Event来同步协程的操作
2020/05/04 Python
CSS3旋转——彩色扇子兼容firefox浏览器
2013/06/04 HTML / CSS
HTML5仿微信聊天界面、微信朋友圈实例代码
2018/01/29 HTML / CSS
澳洲小众品牌的集合网站:BNKR
2018/02/23 全球购物
Tenstickers法国:墙贴和装饰贴纸
2019/08/26 全球购物
美国伴娘礼服商店:Evening Collective
2019/10/07 全球购物
大学新学期计划书
2014/04/28 职场文书
护士求职信
2014/07/05 职场文书
干部考核工作总结
2015/08/12 职场文书
2019个人工作计划书的格式及范文!
2019/07/04 职场文书
2019年恭贺升学祝福语集锦
2019/08/15 职场文书
django 认证类配置实现
2021/11/11 Python
Golang 并发编程 SingleFlight模式
2022/04/26 Golang
java版 联机五子棋游戏
2022/05/04 Java/Android
一文教你快速生成MySQL数据库关系图
2022/06/28 Redis