<table width="474" height="500" border="0" align="center" class="colorborder"> <tr> <td colspan="4" id="v17idpoint" align="center">point = 0</td> </tr> <tr> <td width="114" height="114" ><canvas id="v17myCanvas0" width="114" height="114"></canvas></td> <td width="114" height="114" ><canvas id="v17myCanvas1" width="114" height="114"></canvas></td> <td width="114" height="114" ><canvas id="v17myCanvas2" width="114" height="114"></canvas></td> <td width="114" height="114" ><canvas id="v17myCanvas3" width="114" height="114"></canvas></td> </tr><tr> <td width="114" height="114" ><canvas id="v17myCanvas4" width="114" height="114"></canvas></td> <td width="114" height="114" ><canvas id="v17myCanvas5" width="114" height="114"></canvas></td> <td width="114" height="114" ><canvas id="v17myCanvas6" width="114" height="114"></canvas></td> <td width="114" height="114" ><canvas id="v17myCanvas7" width="114" height="114"></canvas></td> </tr><tr> <td width="114" height="114" ><canvas id="v17myCanvas8" width="114" height="114"></canvas></td> <td width="114" height="114" ><canvas id="v17myCanvas9" width="114" height="114"></canvas></td> <td width="114" height="114" ><canvas id="v17myCanvas10" width="114" height="114"></canvas></td> <td width="114" height="114" ><canvas id="v17myCanvas11" width="114" height="114"></canvas></td> </tr><tr> <td width="114" height="114" ><canvas id="v17myCanvas12" width="114" height="114"></canvas></td> <td width="114" height="114" ><canvas id="v17myCanvas13" width="114" height="114"></canvas></td> <td width="114" height="114" ><canvas id="v17myCanvas14" width="114" height="114"></canvas></td> <td width="114" height="114" ><canvas id="v17myCanvas15" width="114" height="114"></canvas></td> </tr><tr> <td colspan="4" align="center"><input type="button" onclick="v17SortClick()" value="старт" /></td> </tr> </table> <script> var v17canvas0 = document.querySelector("#v17myCanvas0"); var v17canvas1 = document.querySelector("#v17myCanvas1"); var v17canvas2 = document.querySelector("#v17myCanvas2"); var v17canvas3 = document.querySelector("#v17myCanvas3"); var v17canvas4 = document.querySelector("#v17myCanvas4"); var v17canvas5 = document.querySelector("#v17myCanvas5"); var v17canvas6 = document.querySelector("#v17myCanvas6"); var v17canvas7 = document.querySelector("#v17myCanvas7"); var v17canvas8 = document.querySelector("#v17myCanvas8"); var v17canvas9 = document.querySelector("#v17myCanvas9"); var v17canvas10 = document.querySelector("#v17myCanvas10"); var v17canvas11 = document.querySelector("#v17myCanvas11"); var v17canvas12 = document.querySelector("#v17myCanvas12"); var v17canvas13 = document.querySelector("#v17myCanvas13"); var v17canvas14 = document.querySelector("#v17myCanvas14"); var v17canvas15 = document.querySelector("#v17myCanvas15"); var v17context0 = v17canvas0.getContext("2d"); var v17context1 = v17canvas1.getContext("2d"); var v17context2 = v17canvas2.getContext("2d"); var v17context3 = v17canvas3.getContext("2d"); var v17context4 = v17canvas4.getContext("2d"); var v17context5 = v17canvas5.getContext("2d"); var v17context6 = v17canvas6.getContext("2d"); var v17context7 = v17canvas7.getContext("2d"); var v17context8 = v17canvas8.getContext("2d"); var v17context9 = v17canvas9.getContext("2d"); var v17context10 = v17canvas10.getContext("2d"); var v17context11 = v17canvas11.getContext("2d"); var v17context12 = v17canvas12.getContext("2d"); var v17context13 = v17canvas13.getContext("2d"); var v17context14 = v17canvas14.getContext("2d"); var v17context15 = v17canvas15.getContext("2d"); var v17ColorFon = ['#F2F4FF','#F2F4FF','#F2F4FF','#A080FF','#4080FF','#FF80A0','#FF8040','#80FFA0','#80FF40','#60A060', '#408040']; var v17ColorNum = ['#F2F4FF','#62646F','#62646F','#90F090','#60F060','#F0F0FF','#80F0FF','#FF80A0','#FF8040','#F0FF80', '#80FF40']; var v17Num = ['', '2', '4', '8', '16', '32', '64', '128', '256', '512', '1024']; var v17Size = ['64', '64', '64', '64', '64', '64', '64', '52', '52', '52', '40']; var v17Left = ['80', '80', '80', '80', '80', '80', '80', '74', '74', '74', '70']; var v17Top = ['42', '42', '42', '42', '24', '24', '24', '16', '16', '16', '16']; var v17Number = [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]; var v17level = false; var v17colpoint = 0; </script> <script> function getRandomInt(min, max) { return Math.floor(Math.random() * (max - min)) + min; } function v17SortClick() { v17Number = [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]; ver17pressNext(); v17colpoint = 0; document.getElementById('v17idpoint').innerHTML = 'point = '+v17colpoint; } function v17update() { for (i=0; i<16; i++) { var elm = eval("v17context" + i); elm.clearRect(0, 0, 114, 114); elm.beginPath(); elm.rect(6, 6, 100, 100); elm.fillStyle = v17ColorFon[v17Number[i]]; elm.fill(); elm.closePath(); if (v17Number[i] > 2) { elm.beginPath(); elm.rect(2, 2, 108, 108); elm.strokeStyle = "#FFFF00"; elm.stroke(); elm.closePath(); } elm.beginPath(); elm.font = v17Size[v17Number[i]] + "px serif"; elm.fillStyle = v17ColorNum[v17Number[i]]; elm.fillText(v17Num[v17Number[i]], v17Top[v17Number[i]], v17Left[v17Number[i]]); elm.fill(); elm.closePath(); } requestAnimationFrame(v17update); } v17update(); </script> <script> ////presskey window.addEventListener("keydown", ver17logdown); function ver17logdown(event){ if (event.key === "ArrowLeft") ver17pressL(); if (event.key === "ArrowDown") ver17pressD(); if (event.key === "ArrowRight") ver17pressR(); if (event.key === "ArrowUp") ver17pressU(); for (i=0; i<16; i++) if (v17Number[i] > 10) v17Number[i] = 0; v17colpoint ++ ; document.getElementById('v17idpoint').innerHTML = 'point = '+v17colpoint; ver17pressNext(); } function ver17pressL() { for (var j=0; j<4; j++) { for (var n=0; n<3; n++) { for (var m=0; m<3; m++) { for (var i=4*j+0; i<4*j+3; i++) if ((v17Number[i] === 0)&&(v17Number[i+1] > 0)) {v17Number[i] = v17Number[i+1]; v17Number[i+1] = 0;};} for (var i=4*j+0; i<4*j+3; i++) if ((v17Number[i] === v17Number[i+1])&&(v17Number[i]>0)) {v17Number[i] = v17Number[i] + 1; v17Number[i+1] = 0;}; } } } function ver17pressD() { for (var j=0; j<4; j++) { for (var n=0; n<3; n++) { for (var m=0; m<3; m++) { for (var i=j+4*0; i<j+4*3; i+=4) if ((v17Number[i] > 0)&&(v17Number[i+4] === 0)) {v17Number[i+4] = v17Number[i]; v17Number[i] = 0;};} for (var i=j+4*0; i<j+4*3; i+=4) if ((v17Number[i] === v17Number[i+4])&&(v17Number[i]>0)) {v17Number[i+4] = v17Number[i+4] + 1; v17Number[i] = 0;}; } } } function ver17pressR() { for (var j=0; j<4; j++) { for (var n=0; n<3; n++) { for (var m=0; m<3; m++) { for (var i=4*j+0; i<4*j+3; i++) if ((v17Number[i] > 0)&&(v17Number[i+1] === 0)) {v17Number[i+1] = v17Number[i]; v17Number[i] = 0;};} for (var i=4*j+0; i<4*j+3; i++) if ((v17Number[i] === v17Number[i+1])&&(v17Number[i]>0)) {v17Number[i+1] = v17Number[i+1] + 1; v17Number[i] = 0;}; } } } function ver17pressU() { for (var j=0; j<4; j++) { for (var n=0; n<3; n++) { for (var m=0; m<3; m++) { for (var i=j+4*0; i<j+4*3; i+=4) if ((v17Number[i] === 0)&&(v17Number[i+4] > 0)) {v17Number[i] = v17Number[i+4]; v17Number[i+4] = 0;};} for (var i=j+4*0; i<j+4*3; i+=4) if ((v17Number[i] === v17Number[i+4])&&(v17Number[i]>0)) {v17Number[i] = v17Number[i] + 1; v17Number[i+4] = 0;}; } } } function ver17pressNext() { var ver17countEmpty = 0; for (var i=0; i<16; i++) if (v17Number[i] === 0) ver17countEmpty ++; if (ver17countEmpty === 0) document.getElementById('v17idpoint').innerHTML = document.getElementById('v17idpoint').innerHTML + " игра остановлена"; if (ver17countEmpty === 1) { for (var i=0; i<16; i++) if (v17Number[i] === 0) v17Number[i] = 1; } if (ver17countEmpty === 2) { for (var i=0; i<16; i++) if (v17Number[i] === 0) v17Number[i] = 1; if (v17level) for (var i=0; i<16; i++) if (v17Number[i] === 0) v17Number[i] = 2; } if ((ver17countEmpty > 2)&&(ver17countEmpty < 13)) { var ver17tmpPlace = getRandomInt(0, 16); while (v17Number[ver17tmpPlace] > 0) ver17tmpPlace = getRandomInt(0, 16); v17Number[ver17tmpPlace] = 1; if (v17level) { ver17tmpPlace = getRandomInt(0, 16); while (v17Number[ver17tmpPlace] > 0) ver17tmpPlace = getRandomInt(0, 16); v17Number[ver17tmpPlace] = 2; } } if (ver17countEmpty >= 13) { var ver17tmpPlace = getRandomInt(0, 16); while (v17Number[ver17tmpPlace] > 0) ver17tmpPlace = getRandomInt(0, 16); v17Number[ver17tmpPlace] = 1; if (v17level) { ver17tmpPlace = getRandomInt(0, 16); while (v17Number[ver17tmpPlace] > 0) ver17tmpPlace = getRandomInt(0, 16); v17Number[ver17tmpPlace] = 1; } } } </script>