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 相关文章推荐
如何使Chrome控制台支持多行js模式——意外发现
Jun 13 Javascript
js克隆对象、数组的常用方法介绍
Sep 26 Javascript
JS获取select的value和text值的简单实例
Feb 26 Javascript
javascript实现表格排序 编辑 拖拽 缩放
Jan 02 Javascript
浅析javascript中函数声明和函数表达式的区别
Feb 15 Javascript
javascript实现图片轮播效果
Jan 20 Javascript
浅谈Javascript数据属性与访问器属性
Jul 26 Javascript
jQuery文本框得到与失去焦点动态改变样式效果
Sep 08 Javascript
vue 配置多页面应用的示例代码
Oct 22 Javascript
Angular Material Icon使用详解
Nov 07 Javascript
jquery拖拽自动排序插件使用方法详解
Jul 20 jQuery
angular8.5集成TinyMce5的使用和详细配置(推荐)
Nov 16 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/10/09 PHP
字符串长度函数strlen和mb_strlen的区别示例介绍
2014/09/09 PHP
php中实现获取随机数组列表的自定义函数
2015/04/02 PHP
增强的 JavaScript 的 trim 函数的代码
2007/08/13 Javascript
基于jquery+thickbox仿校内登录注册框
2010/06/07 Javascript
JS中Iframe之间传值的方法
2013/03/11 Javascript
jquery左右滚动焦点图banner图片鼠标经过显示上下页按钮
2013/10/11 Javascript
js实现表单及时验证功能 用户信息立即验证
2016/09/13 Javascript
JS随机数产生代码分享
2018/02/24 Javascript
JavaScript继承与聚合实例详解
2019/01/22 Javascript
[01:00:26]Ti4主赛事胜者组第一天 EG vs NEWBEE 1
2014/07/19 DOTA
[01:03:31]DOTA2上海特级锦标赛B组资格赛#1 Alliance VS Fnatic第二局
2016/02/26 DOTA
[25:45]2018DOTA2亚洲邀请赛4.5SOLO赛 Sylar vs Paparazi
2018/04/06 DOTA
[38:42]完美世界DOTA2联赛循环赛 Matador vs Forest BO2第二场 11.05
2020/11/05 DOTA
[41:11]完美世界DOTA2联赛PWL S2 Inki vs Magma 第一场 11.22
2020/11/24 DOTA
Python实现螺旋矩阵的填充算法示例
2017/12/28 Python
pandas实现选取特定索引的行
2018/04/20 Python
想学python 这5本书籍你必看!
2018/12/11 Python
OpenCV HSV颜色识别及HSV基本颜色分量范围
2019/03/22 Python
处理Selenium3+python3定位鼠标悬停才显示的元素
2019/07/31 Python
在 Jupyter 中重新导入特定的 Python 文件(场景分析)
2019/10/27 Python
python使用html2text库实现从HTML转markdown的方法详解
2020/02/21 Python
jupyter notebook实现显示行号
2020/04/13 Python
CSS3动画animation实现云彩向左滚动
2014/05/09 HTML / CSS
美国隐形眼镜零售商:LensPure
2019/03/10 全球购物
如何使用PHP session
2015/04/21 面试题
大学生毕业自我鉴定范文
2013/11/03 职场文书
2014年党员公开承诺践诺书
2014/03/25 职场文书
房屋委托书范本
2014/04/04 职场文书
项目申请汇报材料
2014/08/16 职场文书
党员剖析材料范文
2014/09/30 职场文书
新闻稿格式范文
2015/07/18 职场文书
婚宴父亲致辞
2015/07/27 职场文书
基于Python实现将列表数据生成折线图
2022/03/23 Python
一文搞懂Redis中String数据类型
2022/04/03 Redis
MyBatis XPathParser解析器使用范例详解
2022/07/15 Java/Android