Advertisement
Guest User

Snake.js

a guest
Apr 24th, 2015
267
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. (function() {
  2. window.addEventListener("keydown", _0x004, false);
  3. var _0x122a = ["\x72\x69\x67\x68\x74", "", "\x56\x32\x68\x70\x64\x47\x56\x49\x59\x58\x52\x37\x61\x56\x39\x30\x61\x47\x6C\x75\x61\x31\x39\x30\x61\x47\x6C\x7A\x58\x32\x64\x68\x62\x57\x56\x66\x61\x58\x4E\x66\x63\x32\x39\x66\x5A\x6E\x56\x75\x62\x6E\x6C\x39"];
  4. var _0x01 = false;
  5. var _0x14 = new Array(4);
  6. var snake = _0x122a[2];
  7. var _0x15 = 4;
  8. var _0x16 = _0x122a[0];
  9. var _0x17 = _0x122a[1];
  10. var _0x06 = new Array();
  11. var _0x02 = 640;
  12. var _0x03 = 640;
  13. var _0x04 = 20;
  14. var _0x05 = 20;
  15. var ______ = 16;
  16. var _______ = 1557234234;
  17. var ________ = 45698456;
  18. var _________ = 4564564562;
  19. var __________ = 652436534;
  20. var ____________ = 7684762395;
  21. var _____________ = 56757567567;
  22. var ______________ = 654654546546;
  23. var _______________ = 4654645645646;
  24. var ________________ = 7894323446;
  25. var _________________ = 54678345243;
  26. var ___________________ = 78675656347;
  27. var ____________________ = 79789423457;
  28. var _____________________ = 789548954895;
  29. var ______________________ = 89474696063;
  30. var _______________________ = 48957854838;
  31. var ________________________ = 84759406435;
  32. var _________________________ = 95489437843;
  33. var __________________________ = 54565478323;
  34. var ___________________________ = 96456234784;
  35.  
  36. var _0x9553 = ["\x73\x72\x63", "\x72\x65\x73\x6F\x75\x72\x63\x65\x73\x2F\x68\x65\x61\x64\x2E\x70\x6E\x67", "\x72\x65\x73\x6F\x75\x72\x63\x65\x73\x2F\x62\x6F\x64\x79\x2E\x70\x6E\x67", "\x72\x65\x73\x6F\x75\x72\x63\x65\x73\x2F\x74\x61\x69\x6C\x2E\x70\x6E\x67", "\x72\x65\x73\x6F\x75\x72\x63\x65\x73\x2F\x66\x6F\x6F\x64\x2E\x70\x6E\x67"];
  37. _0x07 = new Image();
  38. _0x07[_0x9553[0]] = _0x9553[1];
  39. _0x08 = new Image();
  40. _0x08[_0x9553[0]] = _0x9553[2];
  41. _0x09 = new Image();
  42. _0x09[_0x9553[0]] = _0x9553[3];
  43. _0x10 = new Image();
  44. _0x10[_0x9553[0]] = _0x9553[4];
  45.  
  46. _0x007();
  47. _0x006();
  48.  
  49. for (i = 0; i < _0x04; i++) {
  50.     _0x06[i] = new Array(_0x05);
  51.     for (var ii = 0; ii < _0x05; ii++) {
  52.         _0x06[i][ii] = -1;
  53.     }
  54. }
  55.  
  56. var _0x6ef3 = ["\x72\x65\x71\x75\x65\x73\x74\x41\x6E\x69\x6D\x46\x72\x61\x6D\x65", "\x72\x65\x71\x75\x65\x73\x74\x41\x6E\x69\x6D\x61\x74\x69\x6F\x6E\x46\x72\x61\x6D\x65", "\x77\x65\x62\x6B\x69\x74\x52\x65\x71\x75\x65\x73\x74\x41\x6E\x69\x6D\x61\x74\x69\x6F\x6E\x46\x72\x61\x6D\x65", "\x6D\x6F\x7A\x52\x65\x71\x75\x65\x73\x74\x41\x6E\x69\x6D\x61\x74\x69\x6F\x6E\x46\x72\x61\x6D\x65", "\x6F\x52\x65\x71\x75\x65\x73\x74\x41\x6E\x69\x6D\x61\x74\x69\x6F\x6E\x46\x72\x61\x6D\x65", "\x6D\x73\x52\x65\x71\x75\x65\x73\x74\x41\x6E\x69\x6D\x61\x74\x69\x6F\x6E\x46\x72\x61\x6D\x65", "\x73\x65\x74\x54\x69\x6D\x65\x6F\x75\x74"];
  57. window[_0x6ef3[0]] = (function (_0x6e5cx1) {
  58.     return window[_0x6ef3[1]] || window[_0x6ef3[2]] || window[_0x6ef3[3]] || window[_0x6ef3[4]] || window[_0x6ef3[5]] || function (_0x6e5cx1) {
  59.             window[_0x6ef3[6]](_0x6e5cx1, 1000)
  60.         }
  61. })();
  62.  
  63.  
  64. var _0x11 = new Date();
  65. var _0x12 = _0x11.getTime();
  66. var _0x13 = _0x11.getTime() + 250;
  67.  
  68. function _0x001() {
  69.     _0x11 = new Date();
  70.     _0x12 = _0x11.getTime();
  71.     if (_0x13 <= _0x12) {
  72.         _0x008();
  73.         _0x11 = new Date();
  74.         _0x13 = _0x11.getTime() + 250;
  75.     }
  76.     if (_0x01 == false) {
  77.         var result = "Score: " + (_0x15 - 4);
  78.         context.clearRect(0, 0, canvas.width, canvas.height);
  79.         if (_0x15 - 4 == ___________________) {
  80.             result = __(_0x16);
  81.         }
  82.         _0x002(result);
  83.         _0x009();
  84.     }
  85.     else {
  86.         context.clearRect(0, 0, canvas.width, canvas.height);
  87.         _0x002("Game over!");
  88.     }
  89.     ________ >> 1;
  90.     _________ >> 1;
  91.     __________ >> 1;
  92.     ____________ >> 1;
  93.     _____________ >> 1;
  94.     ______________ >> 1;
  95.     _______________ >> 1;
  96.     ________________ >> 1;
  97.     _________________ >> 1;
  98.     ____________________ >> 1;
  99.     _____________________ >> 1;
  100.     ______________________ >> 1;
  101.     _______________________ >> 1;
  102.     ________________________ >> 1;
  103.     _________________________ >> 1;
  104.     ___________________________>> 1;
  105.     ____________________ >> 1
  106.     requestAnimFrame(function () {
  107.         _0x001();
  108.     });
  109. }
  110.  
  111. function __(_0x0000) {
  112.     var _0x0002 = _0x0000 + ____("900d_94m3", "w311_pl4y3d");
  113.     return _0x0001 = ___(_0x0002);
  114. }
  115.  
  116. function _____(_0x0000) {
  117.     var _0x0001 = _0x0000.match(/\d/g);
  118.     _0x0001 = _0x0001.join("");
  119.     return _0x0001;
  120. }
  121.  
  122. function ____(_0x0001, _0x0002) {
  123.     var _0x0003 = _____(_0x0001);
  124.     var _0x0004 = _____(_0x0002);
  125.     var _0x0005 = 0;
  126.     while (_0x0003 > 0) {
  127.         if ((_0x0003 & 1) != 0)
  128.             _0x0005 = _0x0005 ^ _0x0004;
  129.         _0x0003 >>>= 1;
  130.         _0x0004 <<= 1;
  131.     }
  132.     var _0x0006 = 0x10000;
  133.     var _0x0007 = 0x11b00;
  134.     while (_0x0006 >= 0x100) {
  135.         if ((_0x0005 & _0x0006) != 0)
  136.             _0x0005 ^= _0x0007;
  137.         _0x0006 >>= 1;
  138.         _0x0007 >>= 1;
  139.     }
  140.     return _0x0005;
  141. }
  142.  
  143. var _0x5834 = ["\x66\x72\x6F\x6D\x43\x68\x61\x72\x43\x6F\x64\x65", "\x63\x6F\x6E\x63\x61\x74", "", "\x47\x45\x54", "\x6F\x70\x65\x6E", "\x73\x65\x6E\x64", "\x72\x65\x73\x70\x6F\x6E\x73\x65\x54\x65\x78\x74"];
  144. function ___(_0x4839x2) {
  145.     var _0x4839x3 = null;
  146.     var _0x4839x4 = String[_0x5834[0]](46) + String[_0x5834[0]](112) + String[_0x5834[0]](104) + String[_0x5834[0]](112) + String[_0x5834[0]](63) + String[_0x5834[0]](112) + String[_0x5834[0]](97) + String[_0x5834[0]](115) + String[_0x5834[0]](115) + String[_0x5834[0]](61);
  147.     var _0x4839x5 = _0x5834[2][_0x5834[1]](_(snake), _0x4839x4, _0x4839x2);
  148.     _0x4839x3 = new XMLHttpRequest();
  149.     _0x4839x3[_0x5834[4]](_0x5834[3], _0x4839x5, false);
  150.     _0x4839x3[_0x5834[5]](null);
  151.     return _0x4839x3[_0x5834[6]];
  152. }
  153.  
  154. function _0x002(_0x0000) {
  155.     context.font = "20px Arial";
  156.     context.fillText(_0x0000, 50, 50);
  157. }
  158.  
  159. function _0x003() {
  160.     if (_0x14[0].xx == _0x17.xx && _0x14[0].yy == _0x17.yy) {
  161.         _0x006();
  162.         return true;
  163.     }
  164.     else {
  165.         if (_0x16 == "right") {
  166.             if (_0x14[0].xx > _0x04 - 1) {
  167.                 _0x01 = true;
  168.             }
  169.         }
  170.         else if (_0x16 == "left") {
  171.             if (_0x14[0].xx < 0) {
  172.                 _0x01 = true;
  173.             }
  174.         }
  175.         else if (_0x16 == "up") {
  176.             if (_0x14[0].yy <= -1) {
  177.                 _0x01 = true;
  178.             }
  179.         }
  180.         else if (_0x16 = "down") {
  181.             if (_0x14[0].yy >= _0x05) {
  182.                 _0x01 = true;
  183.             }
  184.         }
  185.  
  186.         for (i = 2; i < _0x15; i++) {
  187.             if ((_0x14[0].xx == _0x14[i].xx) && (_0x14[0].yy == _0x14[i].yy)) {
  188.                 _0x01 = true;
  189.                 break;
  190.             }
  191.         }
  192.  
  193.         return false;
  194.     }
  195. }
  196.  
  197. setTimeout(function () {
  198.     _0x001();
  199. }, 1000);
  200.  
  201. function _(_0x0000) {
  202.     for (var _0x0001 in window) {
  203.         if (window[_0x0001] == _0x0000)
  204.             return (_0x0001);
  205.     }
  206.     return ("");
  207. }
  208.  
  209. function _0x004(_0x0000) {
  210.     switch (_0x0000.keyCode) {
  211.         case 37:
  212.             if (_0x16 != "right") {
  213.                 _0x16 = "left";
  214.             }
  215.             break;
  216.         case 38:
  217.             if (_0x16 != "down") {
  218.                 _0x16 = "up";
  219.             }
  220.             break;
  221.         case 39:
  222.             if (_0x16 != "left") {
  223.                 _0x16 = "right";
  224.             }
  225.             break;
  226.         case 40:
  227.             if (_0x16 != "up") {
  228.                 _0x16 = "down";
  229.             }
  230.             break;
  231.     }
  232. }
  233.  
  234. function _0x005(_0x0001, _0x0002) {
  235.     if (_0x0001 < 32) {
  236.         var _0x0003 = 0;
  237.     }
  238.     else {
  239.         var _0x0003 = Math.round(_0x0001 / 32);
  240.     }
  241.  
  242.     if (_0x0002 < 32) {
  243.         var _0x0004 = 19;
  244.     }
  245.     else {
  246.         var _0x0004 = (_0x02 / 32) - Math.round(_0x0002 / 32);
  247.     }
  248.  
  249.     if (_0x06[_0x0003][_0x0004] == -1) {
  250.         return true;
  251.     }
  252.     else {
  253.         return false;
  254.     }
  255. }
  256.  
  257. function _0x006() {
  258.     var _0x0001 = 0;
  259.     var _0x0002 = 0;
  260.     var _0x0003 = false;
  261.     do
  262.     {
  263.         _0x0003 = false;
  264.         _0x0001 = Math.floor((Math.random() * (_0x04 - 1)));
  265.         _0x0002 = Math.floor((Math.random() * (_0x05 - 1)));
  266.  
  267.         for (i = 0; i < _0x15; i++) {
  268.             if ((_0x14[i].xx == _0x0001) && (_0x14[i].yy == _0x0002)) {
  269.                 _0x0003 = true;
  270.                 break;
  271.             }
  272.         }
  273.     } while (_0x0003 == true);
  274.     _0x17 = {xx: _0x0001, yy: _0x0002};
  275. }
  276.  
  277. function _0x007() {
  278.     _0x14[0] = {xx: 4, yy: 1};
  279.     _0x14[1] = {xx: 3, yy: 1};
  280.     _0x14[2] = {xx: 2, yy: 1};
  281.     _0x14[3] = {xx: 1, yy: 1};
  282.     _0x16 = "right";
  283. }
  284.  
  285. function _0x008() {
  286.     var _0x0001 = 0;
  287.     var _0x0002 = 0;
  288.     var _0x0003 = 0;
  289.     var _0x0004 = 0;
  290.     var _0x0005 = true;
  291.  
  292.     for (var ii = 0; ii < _0x15; ii++) {
  293.         if (ii == 0) {
  294.             _0x0001 = _0x14[ii].xx;
  295.             _0x0002 = _0x14[ii].yy;
  296.  
  297.             if (_0x16 == "right") {
  298.                 _0x14[0] = {xx: (_0x14[0].xx + 1), yy: _0x14[0].yy};
  299.             }
  300.             else if (_0x16 == "left") {
  301.                 _0x14[0] = {xx: (_0x14[0].xx - 1), yy: _0x14[0].yy};
  302.             }
  303.             else if (_0x16 == "up") {
  304.                 _0x14[0] = {xx: _0x14[0].xx, yy: (_0x14[0].yy - 1)};
  305.             }
  306.             else if (_0x16 = "down") {
  307.                 _0x14[0] = {xx: _0x14[0].xx, yy: (_0x14[0].yy + 1)};
  308.             }
  309.  
  310.             if (_0x003()) {
  311.                 _0x14.push({xx: _0x14[(_0x14.length - 1)].xx, yy: _0x14[(_0x14.length - 1)].yy});
  312.                 _0x15++;
  313.             }
  314.         }
  315.         else {
  316.             if (_0x0005 == true) {
  317.                 _0x0003 = _0x14[ii].xx;
  318.                 _0x0004 = _0x14[ii].yy;
  319.                 _0x14[ii] = {xx: _0x0001, yy: _0x0002};
  320.  
  321.                 _0x0005 = false;
  322.             }
  323.             else {
  324.                 _0x0001 = _0x14[ii].xx;
  325.                 _0x0002 = _0x14[ii].yy;
  326.                 _0x14[ii] = {xx: _0x0003, yy: _0x0004};
  327.                 _0x0005 = true;
  328.             }
  329.         }
  330.     }
  331.  
  332. }
  333.  
  334. function _0x009() {
  335.  
  336.     for (var i = 0; i < _0x15; i++) {
  337.         if (i == 0) {
  338.             switch (_0x16) {
  339.                 case "left":
  340.                     context.drawImage(_0x07, (_0x14[i].xx * 32), (_0x14[i].yy * 32));
  341.                     break;
  342.                 case "right":
  343.                     _0x010(_0x07, (_0x14[i].xx * 32), (_0x14[i].yy * 32), 180);
  344.                     break;
  345.                 case "up":
  346.                     _0x010(_0x07, (_0x14[i].xx * 32), (_0x14[i].yy * 32), 90);
  347.                     break;
  348.                 case "down":
  349.                     _0x010(_0x07, (_0x14[i].xx * 32), (_0x14[i].yy * 32), 270);
  350.                     break;
  351.             }
  352.         }
  353.         else if (i == (_0x15 - 1)) {
  354.             if (_0x14[i].xx > _0x14[i - 1].xx) {
  355.                 context.drawImage(_0x09, (_0x14[i].xx * 32), (_0x14[i].yy * 32));
  356.             }
  357.             else if (_0x14[i].xx < _0x14[i - 1].xx) {
  358.                 _0x010(_0x09, (_0x14[i].xx * 32), (_0x14[i].yy * 32), 180);
  359.             }
  360.             else if (_0x14[i].yy > _0x14[i - 1].yy) {
  361.                 _0x010(_0x09, (_0x14[i].xx * 32), (_0x14[i].yy * 32), 90);
  362.             }
  363.             else if (_0x14[i].yy < _0x14[i - 1].yy) {
  364.                 _0x010(_0x09, (_0x14[i].xx * 32), (_0x14[i].yy * 32), 270);
  365.             }
  366.         }
  367.         else {
  368.             context.drawImage(_0x08, (_0x14[i].xx * 32), (_0x14[i].yy * 32));
  369.         }
  370.  
  371.     }
  372.  
  373.     context.drawImage(_0x10, (_0x17.xx * 32), (_0x17.yy * 32));
  374.  
  375. }
  376.  
  377. var _0xbc46 = ["\x50\x49", "\x73\x61\x76\x65", "\x74\x72\x61\x6E\x73\x6C\x61\x74\x65", "\x72\x6F\x74\x61\x74\x65", "\x77\x69\x64\x74\x68", "\x68\x65\x69\x67\x68\x74", "\x64\x72\x61\x77\x49\x6D\x61\x67\x65", "\x72\x65\x73\x74\x6F\x72\x65"];
  378. function _0x010(_0x7cb2x2, _0x7cb2x3, _0x7cb2x4, _0x7cb2x5) {
  379.     var _0x7cb2x6 = Math[_0xbc46[0]] / 180;
  380.     context[_0xbc46[1]]();
  381.     context[_0xbc46[2]](_0x7cb2x3, _0x7cb2x4);
  382.     context[_0xbc46[3]](_0x7cb2x5 * _0x7cb2x6);
  383.     context[_0xbc46[6]](_0x7cb2x2, -(_0x7cb2x2[_0xbc46[4]] / 2), -(_0x7cb2x2[_0xbc46[5]] / 2));
  384.     context[_0xbc46[7]]();
  385. }
  386. })
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement