介绍
今天就跟大家聊聊有关使用JavaScript编写一个2048小游戏,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。
JavaScript可以做什么
1。可以使网页具有交互性,例如响应用户点击,给用户提供更好的体验。 2 .可以处理表单,检验用户的输入,并提供及时反馈节省用户时间。 3 .可以根据用户的操作,动态的创建页面。 4使用JavaScript可以通过设置饼干存储在浏览器上的一些临时信息。
首先2048小游戏离不开16个格子,我们通过html和css创建好对应的标签和样式,然后开始js逻辑
& lt; div id=癰ox"在//一个盒子里面16个小div ,& lt; div id=皊on"祝辞& lt;/div> ,& lt; div id=皊on"祝辞& lt;/div> ,& lt; div id=皊on"祝辞& lt;/div> ,& lt; div id=皊on"祝辞& lt;/div> ,& lt; div id=皊on"祝辞& lt;/div> ,& lt; div id=皊on"祝辞& lt;/div> ,& lt; div id=皊on"祝辞& lt;/div> ,& lt; div id=皊on"祝辞& lt;/div> ,& lt; div id=皊on"祝辞& lt;/div> ,& lt; div id=皊on"祝辞& lt;/div> ,& lt; div id=皊on"祝辞& lt;/div> ,& lt; div id=皊on"祝辞& lt;/div> ,& lt; div id=皊on"祝辞& lt;/div> ,& lt; div id=皊on"祝辞& lt;/div> ,& lt; div id=皊on"祝辞& lt;/div> ,& lt; div id=皊on"祝辞& lt;/div> & lt;/div>
<强>设置对应的样式:强>(仅供参考)
#箱{ ,宽度:450 px; ,身高:450 px; ,背景颜色:棕色; ,显示:flex; ,flex-wrap:包装; ,justify-content: space-evenly; ,边界:1 px solid # 000; ,保证金:100 px 汽车; ,这个特性:10 px; ,} ,div> div { ,margin-top: 5 px; ,宽度:100 px; ,身高:100 px; ,这个特性:5 px; 背景颜色:大敌;陶瓷; ,text-align:中心; ,行高:100 px; ,字体大小:40像素; 以前,}>效果如下:
然后真正的js部分真正开始了
先使用css选择器获取所有小格子的divvar divs =, document.querySelectorAll (& # 39; [id ==的儿子]& # 39;);然后创建一个二维的数组来接收这16个小格子div的dom对象
var arr =, [[]、[] [], []]; var a =, 0; (var i=0,小姐:& lt;, 4,,小姐:+ +){ ,(var j=0, j & lt;, 4,, j + +) { 所以,arr[我][j],=, div [a]; ,+ +; ,} }这就形成了:i和j轴
这样就便于我们后面的移动操作
现在我们写一个在该16各种里随机产生一个随机数2和4填入一个空格子里,我们后面在调用!
function sj(){,//产生随机数 ,var a =, Math.floor (math . random (), *, 4); ,var b =, Math.floor (math . random (), *, 4); ,如果(arr [a] [b] .innerHTML ==,““) { ,如果(math . random()在0.5){ ,arr[一][b] .innerHTML =, 2; ,其他}{ ,arr[一][b] .innerHTML =, 4; ,} , ,其他}{//如果该格子不为空我们在执行函数 ,sj (); ,} }第二个就是要判断游戏是否结束时的函数:当格子你所有的值都不为空的时候结束游戏!(后面在调用)
function js(){,//游戏是否结束 ,var bool =,真的; ,(var i=0,小姐:& lt;, 4,,小姐:+ +){ ,(var j=0, j & lt;, 4,, j + +) { 所以,如果(arr[我][j] .innerHTML ==,““) { 时间=bool 才能;假; ,其他}{ ,, ,} ,} }大敌; ,如果(bool) { ,警报(“游戏结束“); ,(var i=0,小姐:& lt;, 4,,小姐:+ +){ ,(var j=0, j & lt;, 4,, j + +) { 所以,arr[我][j],=,零; ,} ,} , ,} }然后我们分别写如按下上下左右键执行的函数:
<强>以按上键为例子:强>
①如果上面一个数为空,下面一个不为空上下值交换,
②如果上面一个为数字且和下面的相等,那么上面数* 2下面的改值为空。其他情况不变。使用JavaScript编写一个2048小游戏