漫威终极逆转 發表於 2019-8-27 19:00:00

HTML+CSS+JavaScript实现2048小游戏

<p>相信很多人都玩过2048小游戏,规则易懂、操作简单,我曾经也“痴迷”于它,不到2048不罢休,最高成绩合成了4096,现在正好拿它来练练手。</p>
<p>我对于2048的实现,除了使用了现有2048小游戏的配色,其它所有的代码都是自己写的,尤其是上下左右移动时的逻辑部分,耗费了主要精力。</p>
<p>在草稿纸上设计、思考逻辑:</p>
<p><img src="https://img2018.cnblogs.com/blog/1641227/201908/1641227-20190827183828906-1906953189.jpg"></p>
<p>HTML:4x4的棋盘,上下左右方向键,开始新游戏,分数</p>
<div class="cnblogs_code"><img src="http://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif"><img id="code_img_opened_c3625ff5-e6da-4d2b-bdf2-f970c8639db9" class="code_img_opened lazyload" style="display: none" alt="" data-src="http://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif">
<div id="cnblogs_code_open_c3625ff5-e6da-4d2b-bdf2-f970c8639db9" class="cnblogs_code_hide">
<pre><span style="color: rgba(0, 128, 128, 1)"> 1</span> <span style="color: rgba(0, 0, 255, 1)">&lt;</span><span style="color: rgba(128, 0, 0, 1)">div </span><span style="color: rgba(255, 0, 0, 1)">class</span><span style="color: rgba(0, 0, 255, 1)">="wrapper"</span><span style="color: rgba(0, 0, 255, 1)">&gt;</span>
<span style="color: rgba(0, 128, 128, 1)"> 2</span>   <span style="color: rgba(0, 0, 255, 1)">&lt;</span><span style="color: rgba(128, 0, 0, 1)">div </span><span style="color: rgba(255, 0, 0, 1)">class</span><span style="color: rgba(0, 0, 255, 1)">="square"</span><span style="color: rgba(255, 0, 0, 1)"> id</span><span style="color: rgba(0, 0, 255, 1)">="s11"</span><span style="color: rgba(0, 0, 255, 1)">&gt;&lt;/</span><span style="color: rgba(128, 0, 0, 1)">div</span><span style="color: rgba(0, 0, 255, 1)">&gt;</span>
<span style="color: rgba(0, 128, 128, 1)"> 3</span>   <span style="color: rgba(0, 0, 255, 1)">&lt;</span><span style="color: rgba(128, 0, 0, 1)">div </span><span style="color: rgba(255, 0, 0, 1)">class</span><span style="color: rgba(0, 0, 255, 1)">="square"</span><span style="color: rgba(255, 0, 0, 1)"> id</span><span style="color: rgba(0, 0, 255, 1)">="s12"</span><span style="color: rgba(0, 0, 255, 1)">&gt;&lt;/</span><span style="color: rgba(128, 0, 0, 1)">div</span><span style="color: rgba(0, 0, 255, 1)">&gt;</span>
<span style="color: rgba(0, 128, 128, 1)"> 4</span>   <span style="color: rgba(0, 0, 255, 1)">&lt;</span><span style="color: rgba(128, 0, 0, 1)">div </span><span style="color: rgba(255, 0, 0, 1)">class</span><span style="color: rgba(0, 0, 255, 1)">="square"</span><span style="color: rgba(255, 0, 0, 1)"> id</span><span style="color: rgba(0, 0, 255, 1)">="s13"</span><span style="color: rgba(0, 0, 255, 1)">&gt;&lt;/</span><span style="color: rgba(128, 0, 0, 1)">div</span><span style="color: rgba(0, 0, 255, 1)">&gt;</span>
<span style="color: rgba(0, 128, 128, 1)"> 5</span>   <span style="color: rgba(0, 0, 255, 1)">&lt;</span><span style="color: rgba(128, 0, 0, 1)">div </span><span style="color: rgba(255, 0, 0, 1)">class</span><span style="color: rgba(0, 0, 255, 1)">="square"</span><span style="color: rgba(255, 0, 0, 1)"> id</span><span style="color: rgba(0, 0, 255, 1)">="s14"</span><span style="color: rgba(0, 0, 255, 1)">&gt;&lt;/</span><span style="color: rgba(128, 0, 0, 1)">div</span><span style="color: rgba(0, 0, 255, 1)">&gt;</span>
<span style="color: rgba(0, 128, 128, 1)"> 6</span>   <span style="color: rgba(0, 0, 255, 1)">&lt;</span><span style="color: rgba(128, 0, 0, 1)">div </span><span style="color: rgba(255, 0, 0, 1)">class</span><span style="color: rgba(0, 0, 255, 1)">="square"</span><span style="color: rgba(255, 0, 0, 1)"> id</span><span style="color: rgba(0, 0, 255, 1)">="s21"</span><span style="color: rgba(0, 0, 255, 1)">&gt;&lt;/</span><span style="color: rgba(128, 0, 0, 1)">div</span><span style="color: rgba(0, 0, 255, 1)">&gt;</span>
<span style="color: rgba(0, 128, 128, 1)"> 7</span>   <span style="color: rgba(0, 0, 255, 1)">&lt;</span><span style="color: rgba(128, 0, 0, 1)">div </span><span style="color: rgba(255, 0, 0, 1)">class</span><span style="color: rgba(0, 0, 255, 1)">="square"</span><span style="color: rgba(255, 0, 0, 1)"> id</span><span style="color: rgba(0, 0, 255, 1)">="s22"</span><span style="color: rgba(0, 0, 255, 1)">&gt;&lt;/</span><span style="color: rgba(128, 0, 0, 1)">div</span><span style="color: rgba(0, 0, 255, 1)">&gt;</span>
<span style="color: rgba(0, 128, 128, 1)"> 8</span>   <span style="color: rgba(0, 0, 255, 1)">&lt;</span><span style="color: rgba(128, 0, 0, 1)">div </span><span style="color: rgba(255, 0, 0, 1)">class</span><span style="color: rgba(0, 0, 255, 1)">="square"</span><span style="color: rgba(255, 0, 0, 1)"> id</span><span style="color: rgba(0, 0, 255, 1)">="s23"</span><span style="color: rgba(0, 0, 255, 1)">&gt;&lt;/</span><span style="color: rgba(128, 0, 0, 1)">div</span><span style="color: rgba(0, 0, 255, 1)">&gt;</span>
<span style="color: rgba(0, 128, 128, 1)"> 9</span>   <span style="color: rgba(0, 0, 255, 1)">&lt;</span><span style="color: rgba(128, 0, 0, 1)">div </span><span style="color: rgba(255, 0, 0, 1)">class</span><span style="color: rgba(0, 0, 255, 1)">="square"</span><span style="color: rgba(255, 0, 0, 1)"> id</span><span style="color: rgba(0, 0, 255, 1)">="s24"</span><span style="color: rgba(0, 0, 255, 1)">&gt;&lt;/</span><span style="color: rgba(128, 0, 0, 1)">div</span><span style="color: rgba(0, 0, 255, 1)">&gt;</span>
<span style="color: rgba(0, 128, 128, 1)">10</span>   <span style="color: rgba(0, 0, 255, 1)">&lt;</span><span style="color: rgba(128, 0, 0, 1)">div </span><span style="color: rgba(255, 0, 0, 1)">class</span><span style="color: rgba(0, 0, 255, 1)">="square"</span><span style="color: rgba(255, 0, 0, 1)"> id</span><span style="color: rgba(0, 0, 255, 1)">="s31"</span><span style="color: rgba(0, 0, 255, 1)">&gt;&lt;/</span><span style="color: rgba(128, 0, 0, 1)">div</span><span style="color: rgba(0, 0, 255, 1)">&gt;</span>
<span style="color: rgba(0, 128, 128, 1)">11</span>   <span style="color: rgba(0, 0, 255, 1)">&lt;</span><span style="color: rgba(128, 0, 0, 1)">div </span><span style="color: rgba(255, 0, 0, 1)">class</span><span style="color: rgba(0, 0, 255, 1)">="square"</span><span style="color: rgba(255, 0, 0, 1)"> id</span><span style="color: rgba(0, 0, 255, 1)">="s32"</span><span style="color: rgba(0, 0, 255, 1)">&gt;&lt;/</span><span style="color: rgba(128, 0, 0, 1)">div</span><span style="color: rgba(0, 0, 255, 1)">&gt;</span>
<span style="color: rgba(0, 128, 128, 1)">12</span>   <span style="color: rgba(0, 0, 255, 1)">&lt;</span><span style="color: rgba(128, 0, 0, 1)">div </span><span style="color: rgba(255, 0, 0, 1)">class</span><span style="color: rgba(0, 0, 255, 1)">="square"</span><span style="color: rgba(255, 0, 0, 1)"> id</span><span style="color: rgba(0, 0, 255, 1)">="s33"</span><span style="color: rgba(0, 0, 255, 1)">&gt;&lt;/</span><span style="color: rgba(128, 0, 0, 1)">div</span><span style="color: rgba(0, 0, 255, 1)">&gt;</span>
<span style="color: rgba(0, 128, 128, 1)">13</span>   <span style="color: rgba(0, 0, 255, 1)">&lt;</span><span style="color: rgba(128, 0, 0, 1)">div </span><span style="color: rgba(255, 0, 0, 1)">class</span><span style="color: rgba(0, 0, 255, 1)">="square"</span><span style="color: rgba(255, 0, 0, 1)"> id</span><span style="color: rgba(0, 0, 255, 1)">="s34"</span><span style="color: rgba(0, 0, 255, 1)">&gt;&lt;/</span><span style="color: rgba(128, 0, 0, 1)">div</span><span style="color: rgba(0, 0, 255, 1)">&gt;</span>
<span style="color: rgba(0, 128, 128, 1)">14</span>   <span style="color: rgba(0, 0, 255, 1)">&lt;</span><span style="color: rgba(128, 0, 0, 1)">div </span><span style="color: rgba(255, 0, 0, 1)">class</span><span style="color: rgba(0, 0, 255, 1)">="square"</span><span style="color: rgba(255, 0, 0, 1)"> id</span><span style="color: rgba(0, 0, 255, 1)">="s41"</span><span style="color: rgba(0, 0, 255, 1)">&gt;&lt;/</span><span style="color: rgba(128, 0, 0, 1)">div</span><span style="color: rgba(0, 0, 255, 1)">&gt;</span>
<span style="color: rgba(0, 128, 128, 1)">15</span>   <span style="color: rgba(0, 0, 255, 1)">&lt;</span><span style="color: rgba(128, 0, 0, 1)">div </span><span style="color: rgba(255, 0, 0, 1)">class</span><span style="color: rgba(0, 0, 255, 1)">="square"</span><span style="color: rgba(255, 0, 0, 1)"> id</span><span style="color: rgba(0, 0, 255, 1)">="s42"</span><span style="color: rgba(0, 0, 255, 1)">&gt;&lt;/</span><span style="color: rgba(128, 0, 0, 1)">div</span><span style="color: rgba(0, 0, 255, 1)">&gt;</span>
<span style="color: rgba(0, 128, 128, 1)">16</span>   <span style="color: rgba(0, 0, 255, 1)">&lt;</span><span style="color: rgba(128, 0, 0, 1)">div </span><span style="color: rgba(255, 0, 0, 1)">class</span><span style="color: rgba(0, 0, 255, 1)">="square"</span><span style="color: rgba(255, 0, 0, 1)"> id</span><span style="color: rgba(0, 0, 255, 1)">="s43"</span><span style="color: rgba(0, 0, 255, 1)">&gt;&lt;/</span><span style="color: rgba(128, 0, 0, 1)">div</span><span style="color: rgba(0, 0, 255, 1)">&gt;</span>
<span style="color: rgba(0, 128, 128, 1)">17</span>   <span style="color: rgba(0, 0, 255, 1)">&lt;</span><span style="color: rgba(128, 0, 0, 1)">div </span><span style="color: rgba(255, 0, 0, 1)">class</span><span style="color: rgba(0, 0, 255, 1)">="square"</span><span style="color: rgba(255, 0, 0, 1)"> id</span><span style="color: rgba(0, 0, 255, 1)">="s44"</span><span style="color: rgba(0, 0, 255, 1)">&gt;&lt;/</span><span style="color: rgba(128, 0, 0, 1)">div</span><span style="color: rgba(0, 0, 255, 1)">&gt;</span>
<span style="color: rgba(0, 128, 128, 1)">18</span>   <span style="color: rgba(0, 0, 255, 1)">&lt;</span><span style="color: rgba(128, 0, 0, 1)">button </span><span style="color: rgba(255, 0, 0, 1)">class</span><span style="color: rgba(0, 0, 255, 1)">="direction"</span><span style="color: rgba(255, 0, 0, 1)"> id</span><span style="color: rgba(0, 0, 255, 1)">="up"</span><span style="color: rgba(255, 0, 0, 1)"> onclick</span><span style="color: rgba(0, 0, 255, 1)">="up()"</span><span style="color: rgba(0, 0, 255, 1)">&gt;</span>↑<span style="color: rgba(0, 0, 255, 1)">&lt;/</span><span style="color: rgba(128, 0, 0, 1)">button</span><span style="color: rgba(0, 0, 255, 1)">&gt;</span>
<span style="color: rgba(0, 128, 128, 1)">19</span>   <span style="color: rgba(0, 0, 255, 1)">&lt;</span><span style="color: rgba(128, 0, 0, 1)">button </span><span style="color: rgba(255, 0, 0, 1)">class</span><span style="color: rgba(0, 0, 255, 1)">="direction"</span><span style="color: rgba(255, 0, 0, 1)"> id</span><span style="color: rgba(0, 0, 255, 1)">="down"</span><span style="color: rgba(255, 0, 0, 1)"> onclick</span><span style="color: rgba(0, 0, 255, 1)">="down()"</span><span style="color: rgba(0, 0, 255, 1)">&gt;</span>↓<span style="color: rgba(0, 0, 255, 1)">&lt;/</span><span style="color: rgba(128, 0, 0, 1)">button</span><span style="color: rgba(0, 0, 255, 1)">&gt;</span>
<span style="color: rgba(0, 128, 128, 1)">20</span>   <span style="color: rgba(0, 0, 255, 1)">&lt;</span><span style="color: rgba(128, 0, 0, 1)">button </span><span style="color: rgba(255, 0, 0, 1)">class</span><span style="color: rgba(0, 0, 255, 1)">="direction"</span><span style="color: rgba(255, 0, 0, 1)"> id</span><span style="color: rgba(0, 0, 255, 1)">="left"</span><span style="color: rgba(255, 0, 0, 1)"> onclick</span><span style="color: rgba(0, 0, 255, 1)">="left()"</span><span style="color: rgba(0, 0, 255, 1)">&gt;</span>←<span style="color: rgba(0, 0, 255, 1)">&lt;/</span><span style="color: rgba(128, 0, 0, 1)">button</span><span style="color: rgba(0, 0, 255, 1)">&gt;</span>
<span style="color: rgba(0, 128, 128, 1)">21</span>   <span style="color: rgba(0, 0, 255, 1)">&lt;</span><span style="color: rgba(128, 0, 0, 1)">button </span><span style="color: rgba(255, 0, 0, 1)">class</span><span style="color: rgba(0, 0, 255, 1)">="direction"</span><span style="color: rgba(255, 0, 0, 1)"> id</span><span style="color: rgba(0, 0, 255, 1)">="right"</span><span style="color: rgba(255, 0, 0, 1)"> onclick</span><span style="color: rgba(0, 0, 255, 1)">="right()"</span><span style="color: rgba(0, 0, 255, 1)">&gt;</span>→<span style="color: rgba(0, 0, 255, 1)">&lt;/</span><span style="color: rgba(128, 0, 0, 1)">button</span><span style="color: rgba(0, 0, 255, 1)">&gt;</span>
<span style="color: rgba(0, 128, 128, 1)">22</span>   <span style="color: rgba(0, 0, 255, 1)">&lt;</span><span style="color: rgba(128, 0, 0, 1)">button </span><span style="color: rgba(255, 0, 0, 1)">id</span><span style="color: rgba(0, 0, 255, 1)">="new_game"</span><span style="color: rgba(255, 0, 0, 1)"> onclick</span><span style="color: rgba(0, 0, 255, 1)">="new_game()"</span><span style="color: rgba(0, 0, 255, 1)">&gt;</span>新游戏<span style="color: rgba(0, 0, 255, 1)">&lt;/</span><span style="color: rgba(128, 0, 0, 1)">button</span><span style="color: rgba(0, 0, 255, 1)">&gt;</span>
<span style="color: rgba(0, 128, 128, 1)">23</span>   <span style="color: rgba(0, 0, 255, 1)">&lt;</span><span style="color: rgba(128, 0, 0, 1)">div </span><span style="color: rgba(255, 0, 0, 1)">id</span><span style="color: rgba(0, 0, 255, 1)">="score"</span><span style="color: rgba(0, 0, 255, 1)">&gt;&lt;/</span><span style="color: rgba(128, 0, 0, 1)">div</span><span style="color: rgba(0, 0, 255, 1)">&gt;</span>
<span style="color: rgba(0, 128, 128, 1)">24</span>   <span style="color: rgba(0, 0, 255, 1)">&lt;</span><span style="color: rgba(128, 0, 0, 1)">div </span><span style="color: rgba(255, 0, 0, 1)">id</span><span style="color: rgba(0, 0, 255, 1)">="game_over"</span><span style="color: rgba(0, 0, 255, 1)">&gt;</span>游戏结束!<span style="color: rgba(0, 0, 255, 1)">&lt;/</span><span style="color: rgba(128, 0, 0, 1)">div</span><span style="color: rgba(0, 0, 255, 1)">&gt;</span>
<span style="color: rgba(0, 128, 128, 1)">25</span> <span style="color: rgba(0, 0, 255, 1)">&lt;/</span><span style="color: rgba(128, 0, 0, 1)">div</span><span style="color: rgba(0, 0, 255, 1)">&gt;</span></pre>
</div>
<span class="cnblogs_code_collapse">View Code</span></div>
<p>CSS:棋盘块配色使用了现有2048配色</p>
<div class="cnblogs_code"><img id="code_img_closed_2b1f9703-f359-4d1b-b6ba-3244f0ad55c9" class="code_img_closed lazyload" alt="" data-src="http://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif"><img id="code_img_opened_2b1f9703-f359-4d1b-b6ba-3244f0ad55c9" class="code_img_opened lazyload" style="display: none" alt="" data-src="http://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif">
<div id="cnblogs_code_open_2b1f9703-f359-4d1b-b6ba-3244f0ad55c9" class="cnblogs_code_hide">
<pre><span style="color: rgba(0, 128, 128, 1)"> 1</span> <span style="color: rgba(128, 0, 0, 1)">&lt;style type="text/css"&gt;
</span><span style="color: rgba(0, 128, 128, 1)"> 2</span> <span style="color: rgba(128, 0, 0, 1)">    .wrapper </span>{
<span style="color: rgba(0, 128, 128, 1)"> 3</span> <span style="color: rgba(255, 0, 0, 1)">      width</span>:<span style="color: rgba(0, 0, 255, 1)"> 420px</span>;
<span style="color: rgba(0, 128, 128, 1)"> 4</span> <span style="color: rgba(255, 0, 0, 1)">      height</span>:<span style="color: rgba(0, 0, 255, 1)"> 420px</span>;
<span style="color: rgba(0, 128, 128, 1)"> 5</span> <span style="color: rgba(255, 0, 0, 1)">      background-color</span>:<span style="color: rgba(0, 0, 255, 1)"> #C3C0B7</span>;
<span style="color: rgba(0, 128, 128, 1)"> 6</span> <span style="color: rgba(255, 0, 0, 1)">      margin</span>:<span style="color: rgba(0, 0, 255, 1)"> 0 auto</span>;
<span style="color: rgba(0, 128, 128, 1)"> 7</span> <span style="color: rgba(255, 0, 0, 1)">      border-radius</span>:<span style="color: rgba(0, 0, 255, 1)"> 15px</span>;
<span style="color: rgba(0, 128, 128, 1)"> 8</span> <span style="color: rgba(255, 0, 0, 1)">      position</span>:<span style="color: rgba(0, 0, 255, 1)"> relative</span>;
<span style="color: rgba(0, 128, 128, 1)"> 9</span>   }
<span style="color: rgba(0, 128, 128, 1)">10</span> <span style="color: rgba(128, 0, 0, 1)">    .square </span>{
<span style="color: rgba(0, 128, 128, 1)">11</span> <span style="color: rgba(255, 0, 0, 1)">      float</span>:<span style="color: rgba(0, 0, 255, 1)"> left</span>;
<span style="color: rgba(0, 128, 128, 1)">12</span> <span style="color: rgba(255, 0, 0, 1)">      width</span>:<span style="color: rgba(0, 0, 255, 1)"> 90px</span>;
<span style="color: rgba(0, 128, 128, 1)">13</span> <span style="color: rgba(255, 0, 0, 1)">      height</span>:<span style="color: rgba(0, 0, 255, 1)"> 90px</span>;
<span style="color: rgba(0, 128, 128, 1)">14</span> <span style="color: rgba(255, 0, 0, 1)">      margin</span>:<span style="color: rgba(0, 0, 255, 1)"> 7.5px</span>;
<span style="color: rgba(0, 128, 128, 1)">15</span> <span style="color: rgba(255, 0, 0, 1)">      background-color</span>:<span style="color: rgba(0, 0, 255, 1)">#FBEFE3</span>;
<span style="color: rgba(0, 128, 128, 1)">16</span> <span style="color: rgba(255, 0, 0, 1)">      border-radius</span>:<span style="color: rgba(0, 0, 255, 1)"> 7.5px</span>;
<span style="color: rgba(0, 128, 128, 1)">17</span> <span style="color: rgba(255, 0, 0, 1)">      color</span>:<span style="color: rgba(0, 0, 255, 1)"> #59503F</span>;
<span style="color: rgba(0, 128, 128, 1)">18</span> <span style="color: rgba(255, 0, 0, 1)">      text-align</span>:<span style="color: rgba(0, 0, 255, 1)"> center</span>;
<span style="color: rgba(0, 128, 128, 1)">19</span> <span style="color: rgba(255, 0, 0, 1)">      line-height</span>:<span style="color: rgba(0, 0, 255, 1)"> 90px</span>;
<span style="color: rgba(0, 128, 128, 1)">20</span> <span style="color: rgba(255, 0, 0, 1)">      font-size</span>:<span style="color: rgba(0, 0, 255, 1)"> 35px</span>;
<span style="color: rgba(0, 128, 128, 1)">21</span>   }
<span style="color: rgba(0, 128, 128, 1)">22</span> <span style="color: rgba(128, 0, 0, 1)">    .direction </span>{
<span style="color: rgba(0, 128, 128, 1)">23</span> <span style="color: rgba(255, 0, 0, 1)">      width</span>:<span style="color: rgba(0, 0, 255, 1)"> 120px</span>;
<span style="color: rgba(0, 128, 128, 1)">24</span> <span style="color: rgba(255, 0, 0, 1)">      height</span>:<span style="color: rgba(0, 0, 255, 1)"> 75px</span>;
<span style="color: rgba(0, 128, 128, 1)">25</span> <span style="color: rgba(255, 0, 0, 1)">      border</span>:<span style="color: rgba(0, 0, 255, 1)"> none</span>;
<span style="color: rgba(0, 128, 128, 1)">26</span> <span style="color: rgba(255, 0, 0, 1)">      border-radius</span>:<span style="color: rgba(0, 0, 255, 1)"> 7.5px</span>;
<span style="color: rgba(0, 128, 128, 1)">27</span> <span style="color: rgba(255, 0, 0, 1)">      color</span>:<span style="color: rgba(0, 0, 255, 1)"> white</span>;
<span style="color: rgba(0, 128, 128, 1)">28</span> <span style="color: rgba(255, 0, 0, 1)">      background-color</span>:<span style="color: rgba(0, 0, 255, 1)"> #C6BFB9</span>;
<span style="color: rgba(0, 128, 128, 1)">29</span> <span style="color: rgba(255, 0, 0, 1)">      font-size</span>:<span style="color: rgba(0, 0, 255, 1)"> 45px</span>;
<span style="color: rgba(0, 128, 128, 1)">30</span> <span style="color: rgba(255, 0, 0, 1)">      font-weight</span>:<span style="color: rgba(0, 0, 255, 1)"> bolder</span>;
<span style="color: rgba(0, 128, 128, 1)">31</span> <span style="color: rgba(255, 0, 0, 1)">      line-height</span>:<span style="color: rgba(0, 0, 255, 1)"> 75px</span>;
<span style="color: rgba(0, 128, 128, 1)">32</span>   }
<span style="color: rgba(0, 128, 128, 1)">33</span> <span style="color: rgba(128, 0, 0, 1)">    #new_game </span>{
<span style="color: rgba(0, 128, 128, 1)">34</span> <span style="color: rgba(255, 0, 0, 1)">      width</span>:<span style="color: rgba(0, 0, 255, 1)"> 120px</span>;
<span style="color: rgba(0, 128, 128, 1)">35</span> <span style="color: rgba(255, 0, 0, 1)">      height</span>:<span style="color: rgba(0, 0, 255, 1)"> 75px</span>;
<span style="color: rgba(0, 128, 128, 1)">36</span> <span style="color: rgba(255, 0, 0, 1)">      border</span>:<span style="color: rgba(0, 0, 255, 1)"> none</span>;
<span style="color: rgba(0, 128, 128, 1)">37</span> <span style="color: rgba(255, 0, 0, 1)">      border-radius</span>:<span style="color: rgba(0, 0, 255, 1)"> 15px</span>;
<span style="color: rgba(0, 128, 128, 1)">38</span> <span style="color: rgba(255, 0, 0, 1)">      background-color</span>:<span style="color: rgba(0, 0, 255, 1)"> #C6BFB9</span>;
<span style="color: rgba(0, 128, 128, 1)">39</span> <span style="color: rgba(255, 0, 0, 1)">      font-size</span>:<span style="color: rgba(0, 0, 255, 1)"> 30px</span>;
<span style="color: rgba(0, 128, 128, 1)">40</span> <span style="color: rgba(255, 0, 0, 1)">      color</span>:<span style="color: rgba(0, 0, 255, 1)"> #FFFBF7</span>;
<span style="color: rgba(0, 128, 128, 1)">41</span> <span style="color: rgba(255, 0, 0, 1)">      position</span>:<span style="color: rgba(0, 0, 255, 1)"> absolute</span>;
<span style="color: rgba(0, 128, 128, 1)">42</span> <span style="color: rgba(255, 0, 0, 1)">      top</span>:<span style="color: rgba(0, 0, 255, 1)">430px</span>;
<span style="color: rgba(0, 128, 128, 1)">43</span> <span style="color: rgba(255, 0, 0, 1)">      left</span>:<span style="color: rgba(0, 0, 255, 1)"> 0px</span>;
<span style="color: rgba(0, 128, 128, 1)">44</span>   }
<span style="color: rgba(0, 128, 128, 1)">45</span> <span style="color: rgba(128, 0, 0, 1)">    #up </span>{
<span style="color: rgba(0, 128, 128, 1)">46</span> <span style="color: rgba(255, 0, 0, 1)">      position</span>:<span style="color: rgba(0, 0, 255, 1)"> absolute</span>;
<span style="color: rgba(0, 128, 128, 1)">47</span> <span style="color: rgba(255, 0, 0, 1)">      top</span>:<span style="color: rgba(0, 0, 255, 1)">430px</span>;
<span style="color: rgba(0, 128, 128, 1)">48</span> <span style="color: rgba(255, 0, 0, 1)">      left</span>:<span style="color: rgba(0, 0, 255, 1)">150px</span>;
<span style="color: rgba(0, 128, 128, 1)">49</span>   }
<span style="color: rgba(0, 128, 128, 1)">50</span> <span style="color: rgba(128, 0, 0, 1)">    #left </span>{
<span style="color: rgba(0, 128, 128, 1)">51</span> <span style="color: rgba(255, 0, 0, 1)">      position</span>:<span style="color: rgba(0, 0, 255, 1)"> absolute</span>;
<span style="color: rgba(0, 128, 128, 1)">52</span> <span style="color: rgba(255, 0, 0, 1)">      top</span>:<span style="color: rgba(0, 0, 255, 1)">512px</span>;
<span style="color: rgba(0, 128, 128, 1)">53</span> <span style="color: rgba(255, 0, 0, 1)">      left</span>:<span style="color: rgba(0, 0, 255, 1)">0px</span>;
<span style="color: rgba(0, 128, 128, 1)">54</span>   }
<span style="color: rgba(0, 128, 128, 1)">55</span> <span style="color: rgba(128, 0, 0, 1)">    #right </span>{
<span style="color: rgba(0, 128, 128, 1)">56</span> <span style="color: rgba(255, 0, 0, 1)">      position</span>:<span style="color: rgba(0, 0, 255, 1)"> absolute</span>;
<span style="color: rgba(0, 128, 128, 1)">57</span> <span style="color: rgba(255, 0, 0, 1)">      top</span>:<span style="color: rgba(0, 0, 255, 1)">512px</span>;
<span style="color: rgba(0, 128, 128, 1)">58</span> <span style="color: rgba(255, 0, 0, 1)">      left</span>:<span style="color: rgba(0, 0, 255, 1)">300px</span>;
<span style="color: rgba(0, 128, 128, 1)">59</span>   }
<span style="color: rgba(0, 128, 128, 1)">60</span> <span style="color: rgba(128, 0, 0, 1)">    #down </span>{
<span style="color: rgba(0, 128, 128, 1)">61</span> <span style="color: rgba(255, 0, 0, 1)">      position</span>:<span style="color: rgba(0, 0, 255, 1)"> absolute</span>;
<span style="color: rgba(0, 128, 128, 1)">62</span> <span style="color: rgba(255, 0, 0, 1)">      top</span>:<span style="color: rgba(0, 0, 255, 1)">512px</span>;
<span style="color: rgba(0, 128, 128, 1)">63</span> <span style="color: rgba(255, 0, 0, 1)">      left</span>:<span style="color: rgba(0, 0, 255, 1)">150px</span>;
<span style="color: rgba(0, 128, 128, 1)">64</span>   }
<span style="color: rgba(0, 128, 128, 1)">65</span> <span style="color: rgba(128, 0, 0, 1)">    #game_over </span>{
<span style="color: rgba(0, 128, 128, 1)">66</span> <span style="color: rgba(255, 0, 0, 1)">      width</span>:<span style="color: rgba(0, 0, 255, 1)"> 300px</span>;
<span style="color: rgba(0, 128, 128, 1)">67</span> <span style="color: rgba(255, 0, 0, 1)">      height</span>:<span style="color: rgba(0, 0, 255, 1)"> 100px</span>;
<span style="color: rgba(0, 128, 128, 1)">68</span> <span style="color: rgba(255, 0, 0, 1)">      color</span>:<span style="color: rgba(0, 0, 255, 1)"> #FFFFFF</span>;
<span style="color: rgba(0, 128, 128, 1)">69</span> <span style="color: rgba(255, 0, 0, 1)">      border-radius</span>:<span style="color: rgba(0, 0, 255, 1)">20px </span>;
<span style="color: rgba(0, 128, 128, 1)">70</span> <span style="color: rgba(255, 0, 0, 1)">      background-color</span>:<span style="color: rgba(0, 0, 255, 1)"> burlywood</span>;
<span style="color: rgba(0, 128, 128, 1)">71</span> <span style="color: rgba(255, 0, 0, 1)">      font-size</span>:<span style="color: rgba(0, 0, 255, 1)"> 40px</span>;
<span style="color: rgba(0, 128, 128, 1)">72</span> <span style="color: rgba(255, 0, 0, 1)">      position</span>:<span style="color: rgba(0, 0, 255, 1)"> absolute</span>;
<span style="color: rgba(0, 128, 128, 1)">73</span> <span style="color: rgba(255, 0, 0, 1)">      top</span>:<span style="color: rgba(0, 0, 255, 1)"> 160px</span>;
<span style="color: rgba(0, 128, 128, 1)">74</span> <span style="color: rgba(255, 0, 0, 1)">      left</span>:<span style="color: rgba(0, 0, 255, 1)"> 60px</span>;
<span style="color: rgba(0, 128, 128, 1)">75</span> <span style="color: rgba(255, 0, 0, 1)">      text-align</span>:<span style="color: rgba(0, 0, 255, 1)"> center</span>;
<span style="color: rgba(0, 128, 128, 1)">76</span> <span style="color: rgba(255, 0, 0, 1)">      line-height</span>:<span style="color: rgba(0, 0, 255, 1)"> 100px</span>;
<span style="color: rgba(0, 128, 128, 1)">77</span> <span style="color: rgba(255, 0, 0, 1)">      visibility</span>:<span style="color: rgba(0, 0, 255, 1)"> hidden</span>;
<span style="color: rgba(0, 128, 128, 1)">78</span>   }
<span style="color: rgba(0, 128, 128, 1)">79</span> <span style="color: rgba(128, 0, 0, 1)">    #score </span>{
<span style="color: rgba(0, 128, 128, 1)">80</span> <span style="color: rgba(255, 0, 0, 1)">      width</span>:<span style="color: rgba(0, 0, 255, 1)"> 120px</span>;
<span style="color: rgba(0, 128, 128, 1)">81</span> <span style="color: rgba(255, 0, 0, 1)">      height</span>:<span style="color: rgba(0, 0, 255, 1)"> 75px</span>;
<span style="color: rgba(0, 128, 128, 1)">82</span> <span style="color: rgba(255, 0, 0, 1)">      border-radius</span>:<span style="color: rgba(0, 0, 255, 1)"> 15px</span>;
<span style="color: rgba(0, 128, 128, 1)">83</span> <span style="color: rgba(255, 0, 0, 1)">      background-color</span>:<span style="color: rgba(0, 0, 255, 1)"> #C6BFB9</span>;
<span style="color: rgba(0, 128, 128, 1)">84</span> <span style="color: rgba(255, 0, 0, 1)">      font-size</span>:<span style="color: rgba(0, 0, 255, 1)"> 20px</span>;
<span style="color: rgba(0, 128, 128, 1)">85</span> <span style="color: rgba(255, 0, 0, 1)">      color</span>:<span style="color: rgba(0, 0, 255, 1)"> #FFFBF7</span>;
<span style="color: rgba(0, 128, 128, 1)">86</span> <span style="color: rgba(255, 0, 0, 1)">      position</span>:<span style="color: rgba(0, 0, 255, 1)"> absolute</span>;
<span style="color: rgba(0, 128, 128, 1)">87</span> <span style="color: rgba(255, 0, 0, 1)">      top</span>:<span style="color: rgba(0, 0, 255, 1)">430px</span>;
<span style="color: rgba(0, 128, 128, 1)">88</span> <span style="color: rgba(255, 0, 0, 1)">      left</span>:<span style="color: rgba(0, 0, 255, 1)"> 300px</span>;
<span style="color: rgba(0, 128, 128, 1)">89</span> <span style="color: rgba(255, 0, 0, 1)">      text-align</span>:<span style="color: rgba(0, 0, 255, 1)"> center</span>;
<span style="color: rgba(0, 128, 128, 1)">90</span> <span style="color: rgba(255, 0, 0, 1)">      line-height</span>:<span style="color: rgba(0, 0, 255, 1)"> 75px</span>;
<span style="color: rgba(0, 128, 128, 1)">91</span>   }
<span style="color: rgba(0, 128, 128, 1)">92</span> <span style="color: rgba(128, 0, 0, 1)">&lt;/style&gt;</span></pre>
</div>
<span class="cnblogs_code_collapse">View Code</span></div>
<p>JavaScript:包括标记变量,新游戏加载函数,新数字生成函数,键盘事件绑定控制方向,以及最重要的各个方向的逻辑函数,具体的算法就不描述了,代码通俗易懂。</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 128, 128, 1)">1</span> &lt;script type="text/javascript"&gt;
<span style="color: rgba(0, 128, 128, 1)">2</span>   <span style="color: rgba(0, 0, 255, 1)">var</span> can_up = <span style="color: rgba(0, 0, 255, 1)">true</span>;      <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">可向上移动</span>
<span style="color: rgba(0, 128, 128, 1)">3</span>   <span style="color: rgba(0, 0, 255, 1)">var</span> can_down = <span style="color: rgba(0, 0, 255, 1)">true</span>;    <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">可向下移动    </span>
<span style="color: rgba(0, 128, 128, 1)">4</span>   <span style="color: rgba(0, 0, 255, 1)">var</span> can_left = <span style="color: rgba(0, 0, 255, 1)">true</span>;    <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">可向左移动    </span>
<span style="color: rgba(0, 128, 128, 1)">5</span>   <span style="color: rgba(0, 0, 255, 1)">var</span> can_right = <span style="color: rgba(0, 0, 255, 1)">true</span>;    <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">可向右移动    </span>
<span style="color: rgba(0, 128, 128, 1)">6</span>   <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">游戏结束</span>
<span style="color: rgba(0, 128, 128, 1)">7</span>   <span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)"> game_over() {
</span><span style="color: rgba(0, 128, 128, 1)">8</span>         <span style="color: rgba(0, 0, 255, 1)">if</span>(!can_up&amp;&amp;!can_down&amp;&amp;!can_left&amp;&amp;!<span style="color: rgba(0, 0, 0, 1)">can_right) {
</span><span style="color: rgba(0, 128, 128, 1)">9</span>             document.getElementById("game_over").style.visibility = "visible"<span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 10</span> <span style="color: rgba(0, 0, 0, 1)">      }
</span><span style="color: rgba(0, 128, 128, 1)"> 11</span> <span style="color: rgba(0, 0, 0, 1)">    }
</span><span style="color: rgba(0, 128, 128, 1)"> 12</span>   <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">开始新游戏</span>
<span style="color: rgba(0, 128, 128, 1)"> 13</span>   <span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)"> new_game() {
</span><span style="color: rgba(0, 128, 128, 1)"> 14</span>         document.getElementById("game_over").style.visibility = "hidden"<span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 15</span>         <span style="color: rgba(0, 0, 255, 1)">for</span>(<span style="color: rgba(0, 0, 255, 1)">var</span> i = 1;i &lt; 5;i++<span style="color: rgba(0, 0, 0, 1)">) {
</span><span style="color: rgba(0, 128, 128, 1)"> 16</span>             <span style="color: rgba(0, 0, 255, 1)">for</span>(<span style="color: rgba(0, 0, 255, 1)">var</span> j = 1;j &lt; 5;j++<span style="color: rgba(0, 0, 0, 1)">) {
</span><span style="color: rgba(0, 128, 128, 1)"> 17</span>               document.getElementById("s"+i+j).innerHTML = ""<span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 18</span> <span style="color: rgba(0, 0, 0, 1)">            }
</span><span style="color: rgba(0, 128, 128, 1)"> 19</span> <span style="color: rgba(0, 0, 0, 1)">      }
</span><span style="color: rgba(0, 128, 128, 1)"> 20</span> <span style="color: rgba(0, 0, 0, 1)">      born();
</span><span style="color: rgba(0, 128, 128, 1)"> 21</span>         can_up = <span style="color: rgba(0, 0, 255, 1)">false</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 22</span>         can_down = <span style="color: rgba(0, 0, 255, 1)">false</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 23</span>         can_left = <span style="color: rgba(0, 0, 255, 1)">false</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 24</span>         can_right = <span style="color: rgba(0, 0, 255, 1)">false</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 25</span> <span style="color: rgba(0, 0, 0, 1)">    }
</span><span style="color: rgba(0, 128, 128, 1)"> 26</span>   <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">键盘监听</span>
<span style="color: rgba(0, 128, 128, 1)"> 27</span>   document.onkeydown = <span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)">(event) {
</span><span style="color: rgba(0, 128, 128, 1)"> 28</span>         <span style="color: rgba(0, 0, 255, 1)">switch</span><span style="color: rgba(0, 0, 0, 1)">(event.keyCode) {
</span><span style="color: rgba(0, 128, 128, 1)"> 29</span>             <span style="color: rgba(0, 0, 255, 1)">case</span> 37: left();<span style="color: rgba(0, 0, 255, 1)">break</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 30</span>             <span style="color: rgba(0, 0, 255, 1)">case</span> 38: up();<span style="color: rgba(0, 0, 255, 1)">break</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 31</span>             <span style="color: rgba(0, 0, 255, 1)">case</span> 39: right();<span style="color: rgba(0, 0, 255, 1)">break</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 32</span>             <span style="color: rgba(0, 0, 255, 1)">case</span> 40: down();<span style="color: rgba(0, 0, 255, 1)">break</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 33</span>             <span style="color: rgba(0, 0, 255, 1)">default</span><span style="color: rgba(0, 0, 0, 1)">: ;
</span><span style="color: rgba(0, 128, 128, 1)"> 34</span> <span style="color: rgba(0, 0, 0, 1)">      }
</span><span style="color: rgba(0, 128, 128, 1)"> 35</span> <span style="color: rgba(0, 0, 0, 1)">    }
</span><span style="color: rgba(0, 128, 128, 1)"> 36</span>   <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">生成新数字2或者4</span>
<span style="color: rgba(0, 128, 128, 1)"> 37</span>   <span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)"> born() {
</span><span style="color: rgba(0, 128, 128, 1)"> 38</span>         <span style="color: rgba(0, 0, 255, 1)">var</span> rand_num =<span style="color: rgba(0, 0, 0, 1)"> Math.random();
</span><span style="color: rgba(0, 128, 128, 1)"> 39</span>         <span style="color: rgba(0, 0, 255, 1)">var</span> new_num = (rand_num&gt;0.5)?2:4<span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 40</span>         <span style="color: rgba(0, 0, 255, 1)">while</span>(<span style="color: rgba(0, 0, 255, 1)">true</span><span style="color: rgba(0, 0, 0, 1)">) {
</span><span style="color: rgba(0, 128, 128, 1)"> 41</span>             <span style="color: rgba(0, 0, 255, 1)">var</span> row = Math.ceil(Math.random()*4<span style="color: rgba(0, 0, 0, 1)">);
</span><span style="color: rgba(0, 128, 128, 1)"> 42</span>             <span style="color: rgba(0, 0, 255, 1)">var</span> col = Math.ceil(Math.random()*4<span style="color: rgba(0, 0, 0, 1)">);
</span><span style="color: rgba(0, 128, 128, 1)"> 43</span>             <span style="color: rgba(0, 0, 255, 1)">var</span> square = document.getElementById("s"+row+<span style="color: rgba(0, 0, 0, 1)">col);
</span><span style="color: rgba(0, 128, 128, 1)"> 44</span>             <span style="color: rgba(0, 0, 255, 1)">if</span>(square.innerHTML ==""<span style="color: rgba(0, 0, 0, 1)">) {
</span><span style="color: rgba(0, 128, 128, 1)"> 45</span>               square.innerHTML =<span style="color: rgba(0, 0, 0, 1)"> new_num;
</span><span style="color: rgba(0, 128, 128, 1)"> 46</span>               <span style="color: rgba(0, 0, 255, 1)">break</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 47</span> <span style="color: rgba(0, 0, 0, 1)">            }
</span><span style="color: rgba(0, 128, 128, 1)"> 48</span> <span style="color: rgba(0, 0, 0, 1)">      }
</span><span style="color: rgba(0, 128, 128, 1)"> 49</span> <span style="color: rgba(0, 0, 0, 1)">    }
</span><span style="color: rgba(0, 128, 128, 1)"> 50</span>   <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">向上移动</span>
<span style="color: rgba(0, 128, 128, 1)"> 51</span>   <span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)"> up() {
</span><span style="color: rgba(0, 128, 128, 1)"> 52</span>         <span style="color: rgba(0, 0, 255, 1)">var</span> new_square_num =<span style="color: rgba(0, 0, 0, 1)"> [];
</span><span style="color: rgba(0, 128, 128, 1)"> 53</span>         <span style="color: rgba(0, 0, 255, 1)">var</span><span style="color: rgba(0, 0, 0, 1)"> target_square ;
</span><span style="color: rgba(0, 128, 128, 1)"> 54</span>         <span style="color: rgba(0, 0, 255, 1)">var</span> target_exist= <span style="color: rgba(0, 0, 255, 1)">false</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 55</span>         <span style="color: rgba(0, 0, 255, 1)">for</span>(<span style="color: rgba(0, 0, 255, 1)">var</span> i =1;i &lt; 5;i++<span style="color: rgba(0, 0, 0, 1)">) {
</span><span style="color: rgba(0, 128, 128, 1)"> 56</span>             <span style="color: rgba(0, 0, 255, 1)">for</span>(<span style="color: rgba(0, 0, 255, 1)">var</span> j = 2;j &lt; 5;j++<span style="color: rgba(0, 0, 0, 1)">) {
</span><span style="color: rgba(0, 128, 128, 1)"> 57</span>               <span style="color: rgba(0, 0, 255, 1)">var</span> self_square = document.getElementById("s"+j+<span style="color: rgba(0, 0, 0, 1)">i);
</span><span style="color: rgba(0, 128, 128, 1)"> 58</span>               <span style="color: rgba(0, 0, 255, 1)">if</span>(self_square.innerHTML!=""<span style="color: rgba(0, 0, 0, 1)">) {
</span><span style="color: rgba(0, 128, 128, 1)"> 59</span>                     <span style="color: rgba(0, 0, 255, 1)">for</span>(<span style="color: rgba(0, 0, 255, 1)">var</span> k =1;k &lt; j;k++<span style="color: rgba(0, 0, 0, 1)">) {
</span><span style="color: rgba(0, 128, 128, 1)"> 60</span>                         <span style="color: rgba(0, 0, 255, 1)">var</span> pre_square = document.getElementById("s"+(j-k)+<span style="color: rgba(0, 0, 0, 1)">i);
</span><span style="color: rgba(0, 128, 128, 1)"> 61</span>                         <span style="color: rgba(0, 0, 255, 1)">if</span>(pre_square.innerHTML==""<span style="color: rgba(0, 0, 0, 1)">) {
</span><span style="color: rgba(0, 128, 128, 1)"> 62</span>                           target_square =<span style="color: rgba(0, 0, 0, 1)"> pre_square ;
</span><span style="color: rgba(0, 128, 128, 1)"> 63</span>                           target_exist = <span style="color: rgba(0, 0, 255, 1)">true</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 64</span> <span style="color: rgba(0, 0, 0, 1)">                        }
</span><span style="color: rgba(0, 128, 128, 1)"> 65</span>                         <span style="color: rgba(0, 0, 255, 1)">else</span> <span style="color: rgba(0, 0, 255, 1)">if</span>(self_square.innerHTML == pre_square.innerHTML &amp;&amp; new_square_num[+((j-k).toString()+i)]==<span style="color: rgba(0, 0, 0, 1)">undefined ){
</span><span style="color: rgba(0, 128, 128, 1)"> 66</span>                           pre_square.innerHTML = 2*<span style="color: rgba(0, 0, 0, 1)">self_square.innerHTML;
</span><span style="color: rgba(0, 128, 128, 1)"> 67</span>                           document.getElementById("score").innerHTML = +(document.getElementById("score").innerHTML) + (+<span style="color: rgba(0, 0, 0, 1)">pre_square.innerHTML);
</span><span style="color: rgba(0, 128, 128, 1)"> 68</span>                           self_square.innerHTML = ""<span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 69</span>                           new_square_num[+((j-k).toString()+i)] = 1<span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 70</span>                           can_up = <span style="color: rgba(0, 0, 255, 1)">true</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 71</span> <span style="color: rgba(0, 0, 0, 1)">                        }
</span><span style="color: rgba(0, 128, 128, 1)"> 72</span>                         <span style="color: rgba(0, 0, 255, 1)">else</span><span style="color: rgba(0, 0, 0, 1)"> {
</span><span style="color: rgba(0, 128, 128, 1)"> 73</span>                           <span style="color: rgba(0, 0, 255, 1)">break</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 74</span> <span style="color: rgba(0, 0, 0, 1)">                        }
</span><span style="color: rgba(0, 128, 128, 1)"> 75</span> <span style="color: rgba(0, 0, 0, 1)">                  }
</span><span style="color: rgba(0, 128, 128, 1)"> 76</span>                     <span style="color: rgba(0, 0, 255, 1)">if</span><span style="color: rgba(0, 0, 0, 1)">(target_exist) {
</span><span style="color: rgba(0, 128, 128, 1)"> 77</span>                         target_square.innerHTML =<span style="color: rgba(0, 0, 0, 1)"> self_square.innerHTML;
</span><span style="color: rgba(0, 128, 128, 1)"> 78</span>                         self_square.innerHTML = ""<span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 79</span>                         can_up = <span style="color: rgba(0, 0, 255, 1)">true</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 80</span>                         target_exist = <span style="color: rgba(0, 0, 255, 1)">false</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 81</span> <span style="color: rgba(0, 0, 0, 1)">                  }
</span><span style="color: rgba(0, 128, 128, 1)"> 82</span> <span style="color: rgba(0, 0, 0, 1)">                }
</span><span style="color: rgba(0, 128, 128, 1)"> 83</span> <span style="color: rgba(0, 0, 0, 1)">            }
</span><span style="color: rgba(0, 128, 128, 1)"> 84</span>             new_square_num =<span style="color: rgba(0, 0, 0, 1)"> [];
</span><span style="color: rgba(0, 128, 128, 1)"> 85</span> <span style="color: rgba(0, 0, 0, 1)">      }
</span><span style="color: rgba(0, 128, 128, 1)"> 86</span>         <span style="color: rgba(0, 0, 255, 1)">if</span><span style="color: rgba(0, 0, 0, 1)">(can_up) {
</span><span style="color: rgba(0, 128, 128, 1)"> 87</span> <span style="color: rgba(0, 0, 0, 1)">            born();
</span><span style="color: rgba(0, 128, 128, 1)"> 88</span>             can_up = <span style="color: rgba(0, 0, 255, 1)">false</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 89</span> <span style="color: rgba(0, 0, 0, 1)">      }
</span><span style="color: rgba(0, 128, 128, 1)"> 90</span>
<span style="color: rgba(0, 128, 128, 1)"> 91</span> <span style="color: rgba(0, 0, 0, 1)">    }
</span><span style="color: rgba(0, 128, 128, 1)"> 92</span>   <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">向下移动</span>
<span style="color: rgba(0, 128, 128, 1)"> 93</span>   <span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)"> down() {
</span><span style="color: rgba(0, 128, 128, 1)"> 94</span>         <span style="color: rgba(0, 0, 255, 1)">var</span> new_square_num =<span style="color: rgba(0, 0, 0, 1)"> [];
</span><span style="color: rgba(0, 128, 128, 1)"> 95</span>         <span style="color: rgba(0, 0, 255, 1)">var</span><span style="color: rgba(0, 0, 0, 1)"> target_square ;
</span><span style="color: rgba(0, 128, 128, 1)"> 96</span>         <span style="color: rgba(0, 0, 255, 1)">var</span> target_exist= <span style="color: rgba(0, 0, 255, 1)">false</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 97</span>         <span style="color: rgba(0, 0, 255, 1)">for</span>(<span style="color: rgba(0, 0, 255, 1)">var</span> i =1;i &lt; 5;i++<span style="color: rgba(0, 0, 0, 1)">) {
</span><span style="color: rgba(0, 128, 128, 1)"> 98</span>             <span style="color: rgba(0, 0, 255, 1)">for</span>(<span style="color: rgba(0, 0, 255, 1)">var</span> j = 3;j &gt; 0;j--<span style="color: rgba(0, 0, 0, 1)">) {
</span><span style="color: rgba(0, 128, 128, 1)"> 99</span>               <span style="color: rgba(0, 0, 255, 1)">var</span> self_square = document.getElementById("s"+j+<span style="color: rgba(0, 0, 0, 1)">i);
</span><span style="color: rgba(0, 128, 128, 1)">100</span>               <span style="color: rgba(0, 0, 255, 1)">if</span>(self_square.innerHTML!=""<span style="color: rgba(0, 0, 0, 1)">) {
</span><span style="color: rgba(0, 128, 128, 1)">101</span>                     <span style="color: rgba(0, 0, 255, 1)">for</span>(<span style="color: rgba(0, 0, 255, 1)">var</span> k =j+1;k &lt; 5;k++<span style="color: rgba(0, 0, 0, 1)">) {
</span><span style="color: rgba(0, 128, 128, 1)">102</span>                         <span style="color: rgba(0, 0, 255, 1)">var</span> pre_square = document.getElementById("s"+k+<span style="color: rgba(0, 0, 0, 1)">i);
</span><span style="color: rgba(0, 128, 128, 1)">103</span>                         <span style="color: rgba(0, 0, 255, 1)">if</span>(pre_square.innerHTML==""<span style="color: rgba(0, 0, 0, 1)">) {
</span><span style="color: rgba(0, 128, 128, 1)">104</span>                           target_square =<span style="color: rgba(0, 0, 0, 1)"> pre_square ;
</span><span style="color: rgba(0, 128, 128, 1)">105</span>                           target_exist = <span style="color: rgba(0, 0, 255, 1)">true</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">106</span> <span style="color: rgba(0, 0, 0, 1)">                        }
</span><span style="color: rgba(0, 128, 128, 1)">107</span>                         <span style="color: rgba(0, 0, 255, 1)">else</span> <span style="color: rgba(0, 0, 255, 1)">if</span>(self_square.innerHTML == pre_square.innerHTML &amp;&amp; new_square_num[+((k).toString()+i)]==<span style="color: rgba(0, 0, 0, 1)">undefined ){
</span><span style="color: rgba(0, 128, 128, 1)">108</span>                           pre_square.innerHTML = 2*<span style="color: rgba(0, 0, 0, 1)">self_square.innerHTML;
</span><span style="color: rgba(0, 128, 128, 1)">109</span>                           document.getElementById("score").innerHTML = +(document.getElementById("score").innerHTML) + (+<span style="color: rgba(0, 0, 0, 1)">pre_square.innerHTML);
</span><span style="color: rgba(0, 128, 128, 1)">110</span>                           self_square.innerHTML = ""<span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">111</span>                           new_square_num[+((k).toString()+i)] = 1<span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">112</span>                           can_down = <span style="color: rgba(0, 0, 255, 1)">true</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">113</span>                           target_exist = <span style="color: rgba(0, 0, 255, 1)">false</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">114</span> <span style="color: rgba(0, 0, 0, 1)">                        }
</span><span style="color: rgba(0, 128, 128, 1)">115</span>                         <span style="color: rgba(0, 0, 255, 1)">else</span><span style="color: rgba(0, 0, 0, 1)"> {
</span><span style="color: rgba(0, 128, 128, 1)">116</span>                           <span style="color: rgba(0, 0, 255, 1)">break</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">117</span> <span style="color: rgba(0, 0, 0, 1)">                        }
</span><span style="color: rgba(0, 128, 128, 1)">118</span> <span style="color: rgba(0, 0, 0, 1)">                  }
</span><span style="color: rgba(0, 128, 128, 1)">119</span>                     <span style="color: rgba(0, 0, 255, 1)">if</span><span style="color: rgba(0, 0, 0, 1)">(target_exist) {
</span><span style="color: rgba(0, 128, 128, 1)">120</span>                         target_square.innerHTML =<span style="color: rgba(0, 0, 0, 1)"> self_square.innerHTML;
</span><span style="color: rgba(0, 128, 128, 1)">121</span>                         self_square.innerHTML = ""<span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">122</span>                         can_down = <span style="color: rgba(0, 0, 255, 1)">true</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">123</span>                         target_exist = <span style="color: rgba(0, 0, 255, 1)">false</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">124</span> <span style="color: rgba(0, 0, 0, 1)">                  }
</span><span style="color: rgba(0, 128, 128, 1)">125</span> <span style="color: rgba(0, 0, 0, 1)">                }
</span><span style="color: rgba(0, 128, 128, 1)">126</span> <span style="color: rgba(0, 0, 0, 1)">            }
</span><span style="color: rgba(0, 128, 128, 1)">127</span>             new_square_num =<span style="color: rgba(0, 0, 0, 1)"> [];
</span><span style="color: rgba(0, 128, 128, 1)">128</span> <span style="color: rgba(0, 0, 0, 1)">      }
</span><span style="color: rgba(0, 128, 128, 1)">129</span>         <span style="color: rgba(0, 0, 255, 1)">if</span><span style="color: rgba(0, 0, 0, 1)">(can_down) {
</span><span style="color: rgba(0, 128, 128, 1)">130</span> <span style="color: rgba(0, 0, 0, 1)">            born();
</span><span style="color: rgba(0, 128, 128, 1)">131</span>             can_down = <span style="color: rgba(0, 0, 255, 1)">false</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">132</span> <span style="color: rgba(0, 0, 0, 1)">      }
</span><span style="color: rgba(0, 128, 128, 1)">133</span> <span style="color: rgba(0, 0, 0, 1)">    }
</span><span style="color: rgba(0, 128, 128, 1)">134</span>   <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">向左移动</span>
<span style="color: rgba(0, 128, 128, 1)">135</span>   <span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)"> left() {
</span><span style="color: rgba(0, 128, 128, 1)">136</span>         <span style="color: rgba(0, 0, 255, 1)">var</span> new_square_num =<span style="color: rgba(0, 0, 0, 1)"> [];
</span><span style="color: rgba(0, 128, 128, 1)">137</span>         <span style="color: rgba(0, 0, 255, 1)">var</span><span style="color: rgba(0, 0, 0, 1)"> target_square ;
</span><span style="color: rgba(0, 128, 128, 1)">138</span>         <span style="color: rgba(0, 0, 255, 1)">var</span> target_exist= <span style="color: rgba(0, 0, 255, 1)">false</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">139</span>         <span style="color: rgba(0, 0, 255, 1)">for</span>(<span style="color: rgba(0, 0, 255, 1)">var</span> j =1;j &lt; 5;j++<span style="color: rgba(0, 0, 0, 1)">) {
</span><span style="color: rgba(0, 128, 128, 1)">140</span>             <span style="color: rgba(0, 0, 255, 1)">for</span>(<span style="color: rgba(0, 0, 255, 1)">var</span> i = 2;i &lt; 5;i++<span style="color: rgba(0, 0, 0, 1)">) {
</span><span style="color: rgba(0, 128, 128, 1)">141</span>               <span style="color: rgba(0, 0, 255, 1)">var</span> self_square = document.getElementById("s"+j+<span style="color: rgba(0, 0, 0, 1)">i);
</span><span style="color: rgba(0, 128, 128, 1)">142</span>               <span style="color: rgba(0, 0, 255, 1)">if</span>(self_square.innerHTML!=""<span style="color: rgba(0, 0, 0, 1)">) {
</span><span style="color: rgba(0, 128, 128, 1)">143</span>                     <span style="color: rgba(0, 0, 255, 1)">for</span>(<span style="color: rgba(0, 0, 255, 1)">var</span> k =1;k &lt; i;k++<span style="color: rgba(0, 0, 0, 1)">) {
</span><span style="color: rgba(0, 128, 128, 1)">144</span>                         <span style="color: rgba(0, 0, 255, 1)">var</span> pre_square = document.getElementById("s"+j+(i-<span style="color: rgba(0, 0, 0, 1)">k));
</span><span style="color: rgba(0, 128, 128, 1)">145</span>                         <span style="color: rgba(0, 0, 255, 1)">if</span>(pre_square.innerHTML==""<span style="color: rgba(0, 0, 0, 1)">) {
</span><span style="color: rgba(0, 128, 128, 1)">146</span>                           target_square =<span style="color: rgba(0, 0, 0, 1)"> pre_square ;
</span><span style="color: rgba(0, 128, 128, 1)">147</span>                           target_exist = <span style="color: rgba(0, 0, 255, 1)">true</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">148</span> <span style="color: rgba(0, 0, 0, 1)">                        }
</span><span style="color: rgba(0, 128, 128, 1)">149</span>                         <span style="color: rgba(0, 0, 255, 1)">else</span> <span style="color: rgba(0, 0, 255, 1)">if</span>(self_square.innerHTML == pre_square.innerHTML &amp;&amp; new_square_num[+(j+(i-k).toString())]==<span style="color: rgba(0, 0, 0, 1)">undefined ){
</span><span style="color: rgba(0, 128, 128, 1)">150</span>                           pre_square.innerHTML = 2*<span style="color: rgba(0, 0, 0, 1)">self_square.innerHTML;
</span><span style="color: rgba(0, 128, 128, 1)">151</span>                           document.getElementById("score").innerHTML = +(document.getElementById("score").innerHTML) + (+<span style="color: rgba(0, 0, 0, 1)">pre_square.innerHTML);
</span><span style="color: rgba(0, 128, 128, 1)">152</span>                           self_square.innerHTML = ""<span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">153</span>                           new_square_num[+(j+(i-k).toString())] = 1<span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">154</span>                           can_left = <span style="color: rgba(0, 0, 255, 1)">true</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">155</span>                           target_exist = <span style="color: rgba(0, 0, 255, 1)">false</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">156</span> <span style="color: rgba(0, 0, 0, 1)">                        }
</span><span style="color: rgba(0, 128, 128, 1)">157</span>                         <span style="color: rgba(0, 0, 255, 1)">else</span><span style="color: rgba(0, 0, 0, 1)"> {
</span><span style="color: rgba(0, 128, 128, 1)">158</span>                           <span style="color: rgba(0, 0, 255, 1)">break</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">159</span> <span style="color: rgba(0, 0, 0, 1)">                        }
</span><span style="color: rgba(0, 128, 128, 1)">160</span> <span style="color: rgba(0, 0, 0, 1)">                  }
</span><span style="color: rgba(0, 128, 128, 1)">161</span>                     <span style="color: rgba(0, 0, 255, 1)">if</span><span style="color: rgba(0, 0, 0, 1)">(target_exist) {
</span><span style="color: rgba(0, 128, 128, 1)">162</span>                         target_square.innerHTML =<span style="color: rgba(0, 0, 0, 1)"> self_square.innerHTML;
</span><span style="color: rgba(0, 128, 128, 1)">163</span>                         self_square.innerHTML = ""<span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">164</span>                         can_left = <span style="color: rgba(0, 0, 255, 1)">true</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">165</span>                         target_exist = <span style="color: rgba(0, 0, 255, 1)">false</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">166</span> <span style="color: rgba(0, 0, 0, 1)">                  }
</span><span style="color: rgba(0, 128, 128, 1)">167</span> <span style="color: rgba(0, 0, 0, 1)">                }
</span><span style="color: rgba(0, 128, 128, 1)">168</span> <span style="color: rgba(0, 0, 0, 1)">            }
</span><span style="color: rgba(0, 128, 128, 1)">169</span>             new_square_num =<span style="color: rgba(0, 0, 0, 1)"> [];
</span><span style="color: rgba(0, 128, 128, 1)">170</span> <span style="color: rgba(0, 0, 0, 1)">      }
</span><span style="color: rgba(0, 128, 128, 1)">171</span>         <span style="color: rgba(0, 0, 255, 1)">if</span><span style="color: rgba(0, 0, 0, 1)">(can_left) {
</span><span style="color: rgba(0, 128, 128, 1)">172</span> <span style="color: rgba(0, 0, 0, 1)">            born();
</span><span style="color: rgba(0, 128, 128, 1)">173</span>             can_left = <span style="color: rgba(0, 0, 255, 1)">false</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">174</span> <span style="color: rgba(0, 0, 0, 1)">      }
</span><span style="color: rgba(0, 128, 128, 1)">175</span> <span style="color: rgba(0, 0, 0, 1)">    }
</span><span style="color: rgba(0, 128, 128, 1)">176</span>   <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">向右移动</span>
<span style="color: rgba(0, 128, 128, 1)">177</span>   <span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)"> right() {
</span><span style="color: rgba(0, 128, 128, 1)">178</span>         <span style="color: rgba(0, 0, 255, 1)">var</span> new_square_num =<span style="color: rgba(0, 0, 0, 1)"> [];
</span><span style="color: rgba(0, 128, 128, 1)">179</span>         <span style="color: rgba(0, 0, 255, 1)">var</span><span style="color: rgba(0, 0, 0, 1)"> target_square ;
</span><span style="color: rgba(0, 128, 128, 1)">180</span>         <span style="color: rgba(0, 0, 255, 1)">var</span> target_exist= <span style="color: rgba(0, 0, 255, 1)">false</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">181</span>         <span style="color: rgba(0, 0, 255, 1)">for</span>(<span style="color: rgba(0, 0, 255, 1)">var</span> j =1;j &lt; 5;j++<span style="color: rgba(0, 0, 0, 1)">) {
</span><span style="color: rgba(0, 128, 128, 1)">182</span>             <span style="color: rgba(0, 0, 255, 1)">for</span>(<span style="color: rgba(0, 0, 255, 1)">var</span> i = 3;i &gt; 0;i--<span style="color: rgba(0, 0, 0, 1)">) {
</span><span style="color: rgba(0, 128, 128, 1)">183</span>               <span style="color: rgba(0, 0, 255, 1)">var</span> self_square = document.getElementById("s"+j+<span style="color: rgba(0, 0, 0, 1)">i);
</span><span style="color: rgba(0, 128, 128, 1)">184</span>               <span style="color: rgba(0, 0, 255, 1)">if</span>(self_square.innerHTML!=""<span style="color: rgba(0, 0, 0, 1)">) {
</span><span style="color: rgba(0, 128, 128, 1)">185</span>                     <span style="color: rgba(0, 0, 255, 1)">for</span>(<span style="color: rgba(0, 0, 255, 1)">var</span> k =i+1;k &lt; 5;k++<span style="color: rgba(0, 0, 0, 1)">) {
</span><span style="color: rgba(0, 128, 128, 1)">186</span>                         <span style="color: rgba(0, 0, 255, 1)">var</span> pre_square = document.getElementById("s"+j+<span style="color: rgba(0, 0, 0, 1)">k);
</span><span style="color: rgba(0, 128, 128, 1)">187</span>                         <span style="color: rgba(0, 0, 255, 1)">if</span>(pre_square.innerHTML==""<span style="color: rgba(0, 0, 0, 1)">) {
</span><span style="color: rgba(0, 128, 128, 1)">188</span>                           target_square =<span style="color: rgba(0, 0, 0, 1)"> pre_square ;
</span><span style="color: rgba(0, 128, 128, 1)">189</span>                           target_exist = <span style="color: rgba(0, 0, 255, 1)">true</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">190</span> <span style="color: rgba(0, 0, 0, 1)">                        }
</span><span style="color: rgba(0, 128, 128, 1)">191</span>                         <span style="color: rgba(0, 0, 255, 1)">else</span> <span style="color: rgba(0, 0, 255, 1)">if</span>(self_square.innerHTML == pre_square.innerHTML &amp;&amp; new_square_num[+(j.toString()+k)]==<span style="color: rgba(0, 0, 0, 1)">undefined ){
</span><span style="color: rgba(0, 128, 128, 1)">192</span>                           pre_square.innerHTML = 2*<span style="color: rgba(0, 0, 0, 1)">self_square.innerHTML;
</span><span style="color: rgba(0, 128, 128, 1)">193</span>                           document.getElementById("score").innerHTML = +(document.getElementById("score").innerHTML) + (+<span style="color: rgba(0, 0, 0, 1)">pre_square.innerHTML);
</span><span style="color: rgba(0, 128, 128, 1)">194</span>                           self_square.innerHTML = ""<span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">195</span>                           new_square_num[+(j.toString()+k)] = 1<span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">196</span>                           can_right = <span style="color: rgba(0, 0, 255, 1)">true</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">197</span>                           target_exist = <span style="color: rgba(0, 0, 255, 1)">false</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">198</span> <span style="color: rgba(0, 0, 0, 1)">                        }
</span><span style="color: rgba(0, 128, 128, 1)">199</span>                         <span style="color: rgba(0, 0, 255, 1)">else</span><span style="color: rgba(0, 0, 0, 1)"> {
</span><span style="color: rgba(0, 128, 128, 1)">200</span>                           <span style="color: rgba(0, 0, 255, 1)">break</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">201</span> <span style="color: rgba(0, 0, 0, 1)">                        }
</span><span style="color: rgba(0, 128, 128, 1)">202</span> <span style="color: rgba(0, 0, 0, 1)">                  }
</span><span style="color: rgba(0, 128, 128, 1)">203</span>                     <span style="color: rgba(0, 0, 255, 1)">if</span><span style="color: rgba(0, 0, 0, 1)">(target_exist) {
</span><span style="color: rgba(0, 128, 128, 1)">204</span>                         target_square.innerHTML =<span style="color: rgba(0, 0, 0, 1)"> self_square.innerHTML;
</span><span style="color: rgba(0, 128, 128, 1)">205</span>                         self_square.innerHTML = ""<span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">206</span>                         can_right = <span style="color: rgba(0, 0, 255, 1)">true</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">207</span>                         target_exist = <span style="color: rgba(0, 0, 255, 1)">false</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">208</span> <span style="color: rgba(0, 0, 0, 1)">                  }
</span><span style="color: rgba(0, 128, 128, 1)">209</span> <span style="color: rgba(0, 0, 0, 1)">                }
</span><span style="color: rgba(0, 128, 128, 1)">210</span> <span style="color: rgba(0, 0, 0, 1)">            }
</span><span style="color: rgba(0, 128, 128, 1)">211</span>             new_square_num =<span style="color: rgba(0, 0, 0, 1)"> [];
</span><span style="color: rgba(0, 128, 128, 1)">212</span> <span style="color: rgba(0, 0, 0, 1)">      }
</span><span style="color: rgba(0, 128, 128, 1)">213</span>         <span style="color: rgba(0, 0, 255, 1)">if</span><span style="color: rgba(0, 0, 0, 1)">(can_right) {
</span><span style="color: rgba(0, 128, 128, 1)">214</span> <span style="color: rgba(0, 0, 0, 1)">            born();
</span><span style="color: rgba(0, 128, 128, 1)">215</span>             can_right = <span style="color: rgba(0, 0, 255, 1)">false</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">216</span> <span style="color: rgba(0, 0, 0, 1)">      }
</span><span style="color: rgba(0, 128, 128, 1)">217</span> <span style="color: rgba(0, 0, 0, 1)">    }
</span><span style="color: rgba(0, 128, 128, 1)">218</span>   <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">涂色</span>
<span style="color: rgba(0, 128, 128, 1)">219</span>   setInterval(<span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)"> paint() {
</span><span style="color: rgba(0, 128, 128, 1)">220</span>         <span style="color: rgba(0, 0, 255, 1)">for</span>(<span style="color: rgba(0, 0, 255, 1)">var</span> i = 1;i &lt; 5;i++<span style="color: rgba(0, 0, 0, 1)">) {
</span><span style="color: rgba(0, 128, 128, 1)">221</span>             <span style="color: rgba(0, 0, 255, 1)">for</span>(<span style="color: rgba(0, 0, 255, 1)">var</span> j = 1;j &lt; 5;j++<span style="color: rgba(0, 0, 0, 1)">) {
</span><span style="color: rgba(0, 128, 128, 1)">222</span>               <span style="color: rgba(0, 0, 255, 1)">var</span> square = document.getElementById("s"+i+<span style="color: rgba(0, 0, 0, 1)">j);
</span><span style="color: rgba(0, 128, 128, 1)">223</span>               <span style="color: rgba(0, 0, 255, 1)">switch</span><span style="color: rgba(0, 0, 0, 1)">(square.innerHTML) {
</span><span style="color: rgba(0, 128, 128, 1)">224</span>                     <span style="color: rgba(0, 0, 255, 1)">case</span> "2" :square.style.backgroundColor = "#EEE4DA"<span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">225</span>                           square.style.color = "#766D64"<span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">226</span>                           <span style="color: rgba(0, 0, 255, 1)">break</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">227</span>                     <span style="color: rgba(0, 0, 255, 1)">case</span> "4" :square.style.backgroundColor = "#ECE0C8"<span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">228</span>                           square.style.color = "#786D67"<span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">229</span>                           <span style="color: rgba(0, 0, 255, 1)">break</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">230</span>                     <span style="color: rgba(0, 0, 255, 1)">case</span> "8" :square.style.backgroundColor = "#F2B179"<span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">231</span>                           square.style.color = "#F6F7F2"<span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">232</span>                           <span style="color: rgba(0, 0, 255, 1)">break</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">233</span>                     <span style="color: rgba(0, 0, 255, 1)">case</span> "16" :square.style.backgroundColor = "#F59565"<span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">234</span>                           square.style.color = "#FAF6F5"<span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">235</span>                           <span style="color: rgba(0, 0, 255, 1)">break</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">236</span>                     <span style="color: rgba(0, 0, 255, 1)">case</span> "32" :square.style.backgroundColor = "#F77B5F"<span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">237</span>                           square.style.color = "#FBF3F0"<span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">238</span>                           <span style="color: rgba(0, 0, 255, 1)">break</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">239</span>                     <span style="color: rgba(0, 0, 255, 1)">case</span> "64" :square.style.backgroundColor = "#F35F3B"<span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">240</span>                           square.style.color = "#FAF4F4"<span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">241</span>                           <span style="color: rgba(0, 0, 255, 1)">break</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">242</span>                     <span style="color: rgba(0, 0, 255, 1)">case</span> "128" :square.style.backgroundColor = "#EDCE71"<span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">243</span>                           square.style.color = "#F8FAF7"<span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">244</span>                           <span style="color: rgba(0, 0, 255, 1)">break</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">245</span>                     <span style="color: rgba(0, 0, 255, 1)">case</span> "256" :square.style.backgroundColor = "#EDCC61"<span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">246</span>                           square.style.color = "#FAF6F7"<span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">247</span>                           <span style="color: rgba(0, 0, 255, 1)">break</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">248</span>                     <span style="color: rgba(0, 0, 255, 1)">case</span> "512" :square.style.backgroundColor = "#ECC850"<span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">249</span>                           square.style.color = "#FAF4F6"<span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">250</span>                           <span style="color: rgba(0, 0, 255, 1)">break</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">251</span>                     <span style="color: rgba(0, 0, 255, 1)">case</span> "1024" :square.style.backgroundColor = "#EDC53F"<span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">252</span>                           square.style.color = "#F9F4FA"<span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">253</span>                           <span style="color: rgba(0, 0, 255, 1)">break</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">254</span>                     <span style="color: rgba(0, 0, 255, 1)">case</span> "2048" :square.style.backgroundColor = "#E9B501"<span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">255</span>                           square.style.color = "#FFFCB0"<span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">256</span>                           <span style="color: rgba(0, 0, 255, 1)">break</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">257</span>                     <span style="color: rgba(0, 0, 255, 1)">case</span> "4096" :square.style.backgroundColor = "#FCEDD8"<span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">258</span>                           square.style.color = "#524B39"<span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">259</span>                           <span style="color: rgba(0, 0, 255, 1)">break</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">260</span>                     <span style="color: rgba(0, 0, 255, 1)">default</span>:square.style.backgroundColor = "#FBEFE3"<span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">261</span> <span style="color: rgba(0, 0, 0, 1)">                }
</span><span style="color: rgba(0, 128, 128, 1)">262</span> <span style="color: rgba(0, 0, 0, 1)">            }
</span><span style="color: rgba(0, 128, 128, 1)">263</span> <span style="color: rgba(0, 0, 0, 1)">      }
</span><span style="color: rgba(0, 128, 128, 1)">264</span>   },10<span style="color: rgba(0, 0, 0, 1)">);
</span><span style="color: rgba(0, 128, 128, 1)">265</span>
<span style="color: rgba(0, 128, 128, 1)">266</span> &lt;/script&gt;</pre>
</div>
<p>效果图:</p>
<p><img alt="" width="693" height="393" data-src="https://img2018.cnblogs.com/blog/1641227/201908/1641227-20190827185631717-1295912790.png"></p>
<p>&nbsp;</p>
<p>虽然小游戏简单,但是实现了也是自己的成果,也是一种进步!</p>
<p>&nbsp;</p><br><br>
来源:https://www.cnblogs.com/duoge/p/11420196.html
頁: [1]
查看完整版本: HTML+CSS+JavaScript实现2048小游戏