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对HTML标签select的获取、添加、删除操作
Oct 17 Javascript
jQuery html()方法使用不了无法显示内容的问题
Aug 06 Javascript
Yii2使用Bootbox插件实现自定义弹窗
Apr 02 Javascript
在Javascript中处理数组之toSource()方法的使用
Jun 09 Javascript
jQuery Ajax 上传文件处理方式介绍(推荐)
Jun 30 Javascript
AngularJS 入门教程之事件处理器详解
Aug 19 Javascript
vue.js初学入门教程(2)
Nov 07 Javascript
jquery请求servlet实现ajax异步请求的示例
Jun 03 jQuery
Vue中计算属性computed的示例解读
Jul 26 Javascript
angular4中关于表单的校验示例
Oct 16 Javascript
Openlayers3实现车辆轨迹回放功能
Sep 29 Javascript
面试中canvas绘制图片模糊图片问题处理
Mar 13 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
我的论坛源代码(九)
2006/10/09 PHP
linux下为php添加curl扩展的方法
2011/07/29 PHP
php 判断字符串中是否包含html标签
2014/02/17 PHP
PHP直接修改表内容DataGrid功能实现代码
2015/09/24 PHP
PHP请求Socket接口测试实例
2016/08/12 PHP
JS 拼图游戏 面向对象,注释完整。
2009/06/18 Javascript
关于Jqzoom的使用心得 jquery放大镜效果插件
2010/04/12 Javascript
基于SVG的web页面图形绘制API介绍及编程演示
2013/06/28 Javascript
Js删除数组中某一项或几项的几种方法(推荐)
2016/07/27 Javascript
JS正则匹配URL网址的方法(可匹配www,http开头的一切网址)
2017/01/06 Javascript
js图片放大镜实例讲解(必看篇)
2017/07/17 Javascript
在Vue中使用highCharts绘制3d饼图的方法
2018/02/08 Javascript
微信小程序实现商品属性联动选择
2019/02/15 Javascript
pm2启动ssr失败的解决方法
2019/06/29 Javascript
关于vue里页面的缓存详解
2019/11/04 Javascript
webpack4 optimization使用总结
2019/11/10 Javascript
js中script的上下放置区别,Dom的增删改创建操作实例分析
2019/12/16 Javascript
通过实例了解Nodejs模块系统及require机制
2020/07/16 NodeJs
[42:22]DOTA2上海特级锦标赛C组小组赛#1 OG VS Archon第一局
2016/02/27 DOTA
Python用UUID库生成唯一ID的方法示例
2016/12/15 Python
Python对列表去重的多种方法(四种方法)
2017/12/05 Python
Python语言实现百度语音识别API的使用实例
2017/12/13 Python
wxPython之解决闪烁的问题
2018/01/15 Python
TensorFlow如何实现反向传播
2018/02/06 Python
jupyter notebook 多行输出实例
2020/04/09 Python
python支持多继承吗
2020/06/19 Python
Python基于pyjnius库实现访问java类
2020/07/31 Python
Django静态文件加载失败解决方案
2020/08/26 Python
详解python 支持向量机(SVM)算法
2020/09/18 Python
python获得命令行输入的参数的两种方式
2020/11/02 Python
世界上最大的二手相机店:KEN
2017/05/17 全球购物
几道Web/Ajax的面试题
2016/11/05 面试题
爽歪歪广告词
2014/03/20 职场文书
好学生评语大全
2014/05/05 职场文书
红与黑读书笔记
2015/06/29 职场文书
解决persistence.xml配置文件修改存放路径的问题
2022/02/24 Java/Android