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弹出对话框返回值代码(asp.net后台)
Dec 28 Javascript
关于COOKIE个数与大小的问题
Jan 17 Javascript
JavaScript创建对象的写法
Aug 29 Javascript
JQuery操作iframe父页面与子页面的元素与方法(实例讲解)
Nov 20 Javascript
鼠标拖拽移动子窗体的JS实现
Feb 25 Javascript
jQuery中DOM操作实例分析
Jan 23 Javascript
阻止表单提交按钮多次提交的完美解决方法
May 16 Javascript
jquery实现ajax提交表单信息的简单方法(推荐)
Aug 24 Javascript
小程序组件之自定义顶部导航实例
Jun 12 Javascript
Nuxt v-bind绑定img src不显示的解决
Dec 05 Javascript
JS跨浏览器解析XML应用过程详解
Oct 16 Javascript
解决vue打包报错Unexpected token: punc的问题
Oct 24 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
php正则
2006/07/07 PHP
PHPMailer邮件发送的实现代码
2013/05/04 PHP
Linux下PHP连接Oracle数据库
2014/08/20 PHP
PHP使用递归方式列出当前目录下所有文件的方法
2015/06/02 PHP
php实现XSS安全过滤的方法
2015/07/29 PHP
PHP上传图片时判断上传文件是否为可用图片的方法
2016/10/20 PHP
PHP XML和数组互相转换详解
2016/10/26 PHP
PHP迭代器和生成器用法实例分析
2019/09/28 PHP
javascript Firefox与IE 替换节点的方法
2010/02/24 Javascript
js动态修改表格行colspan列跨度的方法
2015/03/30 Javascript
JavaScript中用sort()方法对数组元素进行排序的操作
2015/06/09 Javascript
ionic由于使用了header和subheader导致被遮挡的问题的两种解决方法
2016/09/22 Javascript
JavaScript设计模式之策略模式详解
2017/06/09 Javascript
jQuery常见的遍历DOM操作详解
2018/09/05 jQuery
jstree中的checkbox默认选中和隐藏示例代码
2019/12/29 Javascript
使用webpack搭建pixi.js开发环境
2020/02/12 Javascript
JS实现分页导航效果
2020/02/19 Javascript
基于html+css+js实现简易计算器代码实例
2020/02/28 Javascript
Python深入学习之内存管理
2014/08/31 Python
Python网页解析利器BeautifulSoup安装使用介绍
2015/03/17 Python
通过数据库向Django模型添加字段的示例
2015/07/21 Python
Python实现统计代码行的方法分析
2017/07/12 Python
python爬取指定微信公众号文章
2018/12/20 Python
在Python中通过getattr获取对象引用的方法
2019/01/21 Python
pytorch学习教程之自定义数据集
2020/11/10 Python
深入剖析webstorage[html5的本地数据处理]
2016/07/11 HTML / CSS
匡威德国官网:Converse德国
2019/01/26 全球购物
会计电算化个人求职信范文
2014/01/24 职场文书
农村婚礼主持词
2014/03/13 职场文书
病媒生物防治方案
2014/05/13 职场文书
人民调解员培训方案
2014/06/05 职场文书
财务检查整改报告
2014/11/06 职场文书
维稳工作承诺书
2015/01/20 职场文书
简历中自我评价范文
2015/03/11 职场文书
Python多个MP4合成视频的实现方法
2021/07/16 Python
php png失真的原因及解决办法
2021/10/24 PHP