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 相关文章推荐
自己的js工具 Cookie 封装
Aug 21 Javascript
理解Javascript_05_原型继承原理
Oct 13 Javascript
jQuery.Validate验证库的使用介绍
Apr 26 Javascript
jquery删除指定的html标签并保留标签内文本内容的方法
Apr 02 Javascript
js+jquery常用知识点汇总
Mar 03 Javascript
javascript实现淘宝幻灯片广告展示效果
Apr 27 Javascript
JS拖动鼠标画出方框实现鼠标选区的方法
Aug 05 Javascript
利用chrome浏览器进行js调试并找出元素绑定的点击事件详解
Jan 30 Javascript
微信小程序wx.request的简单封装
Nov 13 Javascript
Javascript中window.name属性详解
Nov 19 Javascript
react中hook介绍以及使用教程
Dec 11 Javascript
JS实现扫雷项目总结
May 19 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
destoon在360浏览器下出现用户被强行注销的解决方法
2014/06/26 PHP
百度实时推送api接口应用示例
2014/10/21 PHP
Laravel5中contracts详解
2015/03/02 PHP
php计算到指定日期还有多少天的方法
2015/04/14 PHP
PHP对象克隆clone用法示例
2016/09/28 PHP
PHP使用gearman进行异步的邮件或短信发送操作详解
2020/02/27 PHP
实例化php类时传参的方法分析
2020/06/05 PHP
Nigma vs Alliance BO5 第五场2.14
2021/03/10 DOTA
jQuery学习笔记之jQuery的事件
2010/12/22 Javascript
Google的跟踪代码 动态加载js代码方法应用
2012/11/12 Javascript
jQuery中使用data()方法读取HTML5自定义属性data-*实例
2014/04/11 Javascript
JS动态显示表格上下frame的方法
2015/03/31 Javascript
bootstrap常用组件之头部导航实现代码
2017/04/20 Javascript
vue中Npm run build 根据环境传递参数方法来打包不同域名
2018/03/29 Javascript
js回溯法计算最佳旅行线路代码实例
2019/09/11 Javascript
weui中的picker使用js进行动态绑定数据问题
2019/11/06 Javascript
JavaScript实现省份城市的三级联动
2020/02/11 Javascript
《javascript设计模式》学习笔记七:Javascript面向对象程序设计组合模式详解
2020/04/08 Javascript
Python获取远程文件大小的函数代码分享
2014/05/13 Python
Python实现PS滤镜的旋转模糊功能示例
2018/01/20 Python
Python实现的寻找前5个默尼森数算法示例
2018/03/25 Python
python 获取页面表格数据存放到csv中的方法
2018/12/26 Python
python 多线程对post请求服务器测试并发的方法
2019/06/13 Python
Python+PyQT5的子线程更新UI界面的实例
2019/06/14 Python
Python多继承以及MRO顺序的使用
2019/11/11 Python
Python利用Faiss库实现ANN近邻搜索的方法详解
2020/08/03 Python
html Table 表头固定的实现
2019/01/22 HTML / CSS
中学生爱国演讲稿
2013/12/31 职场文书
运动会四百米广播稿
2014/01/19 职场文书
大学班级计划书
2014/04/29 职场文书
英文邀请函
2015/02/02 职场文书
资料员岗位职责范本
2015/04/13 职场文书
初一数学教学反思
2016/02/17 职场文书
入党申请书格式
2019/06/20 职场文书
python3实现无权最短路径的方法
2021/05/12 Python
MySQL选择合适的备份策略和备份工具
2022/06/01 MySQL