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 相关文章推荐
Packer 3.0 JS压缩及混淆工具 下载
May 03 Javascript
jquery实现点击TreeView文本父节点展开/折叠子节点
Jan 10 Javascript
jquery中使用$(#form).submit()重写提交表单无效原因分析及解决
Mar 25 Javascript
Javascript 函数parseInt()转换时出现bug问题
May 20 Javascript
Express.JS使用详解
Jul 17 Javascript
seajs加载jquery时提示$ is not a function该怎么解决
Oct 23 Javascript
探讨跨域请求资源的几种方式(总结)
Dec 02 Javascript
运用jQuery写的验证表单(实例讲解)
Jul 06 jQuery
Vue列表页渲染优化详解
Jul 24 Javascript
angularJS实现动态添加,删除div方法
Feb 27 Javascript
node省市区三级数据性能测评实例分析
Nov 06 Javascript
小程序如何写动态标签的实现方法
Feb 05 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
PHP中多维数组的foreach遍历示例
2014/06/13 PHP
PHP手机短信验证码实现流程详解
2018/05/17 PHP
PHP实现微信公众号验证Token的示例代码
2019/12/16 PHP
jQuery中文入门指南,翻译加实例,jQuery的起点教程
2007/01/13 Javascript
JavaScript中的对象化编程
2008/01/16 Javascript
Exitjs获取DataView中图片文件名
2009/11/26 Javascript
javascript日期转换 时间戳转日期格式
2011/11/05 Javascript
关于JAVASCRIPT urldecode URL解码的问题
2012/01/08 Javascript
jquery滚动特效集锦
2015/06/03 Javascript
向JavaScript的数组中添加元素的方法小结
2015/10/24 Javascript
利用Node.js对文件进行重命名
2017/03/12 Javascript
详解jquery选择器的原理
2017/08/01 jQuery
详解Vue的钩子函数(路由导航守卫、keep-alive、生命周期钩子)
2018/07/24 Javascript
ES6 Promise对象的应用实例分析
2019/06/27 Javascript
js+canvas实现转盘效果(两个版本)
2020/09/13 Javascript
[45:25]OG vs EG 2019国际邀请赛淘汰赛 胜者组 BO3 第一场 8.22
2019/09/05 DOTA
仅用50行代码实现一个Python编写的计算器的教程
2015/04/17 Python
基于Python 的进程管理工具supervisor使用指南
2016/09/18 Python
python日志记录模块实例及改进
2017/02/12 Python
python字符串常用方法
2018/06/14 Python
Python数据分析matplotlib设置多个子图的间距方法
2018/08/03 Python
解决Python selenium get页面很慢时的问题
2019/01/30 Python
pytorch 实现删除tensor中的指定行列
2020/01/13 Python
windows10环境下用anaconda和VScode配置的图文教程
2020/03/30 Python
用Python制作音乐海报
2021/01/26 Python
HTML5中在title标题标签里设置小图标的方法
2020/06/23 HTML / CSS
纽约现代艺术博物馆商店:MoMA STORE(室内家具和杂货商品)
2016/08/02 全球购物
华为慧通面试题
2012/09/11 面试题
工商学院毕业生个人自我评价
2013/09/19 职场文书
村庄环境整治方案
2014/05/15 职场文书
学习之星事迹材料
2014/05/17 职场文书
离婚起诉书范文2016
2015/11/26 职场文书
党组织结对共建协议书
2016/03/23 职场文书
nginx location中多个if里面proxy_pass的方法
2021/03/31 Servers
TypeScript 使用 Tuple Union 声明函数重载
2022/04/07 Javascript