{"id":202014,"date":"2013-11-13T21:11:02","date_gmt":"2013-11-13T17:11:02","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=202014"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=202014","title":{"rendered":"<span class=\"post_title\">\u0417\u043c\u0435\u0439\u043a\u0430 \u043d\u0430 Canvas<\/span>"},"content":{"rendered":"<div class=\"content html_format\"> \t\t\t\u041f\u0440\u0438\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e \u0443\u0432\u0430\u0436\u0430\u0435\u043c\u043e\u0435 \u0445\u0430\u0431\u0440\u0430-\u0441\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u043e. \u041f\u043e\u0441\u043b\u0435 \u043f\u0440\u043e\u0447\u0442\u0435\u043d\u0438\u044f \u043f\u043e\u0441\u0442\u0430 <a href=\"http:\/\/habrahabr.ru\/post\/184666\/\">\u00ab\u0421\u043e\u0437\u0434\u0430\u0451\u043c \u0438\u0433\u0440\u0443, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f canvas \u0438 \u0441\u043f\u0440\u0430\u0439\u0442\u044b\u00bb<\/a> \u0432 \u0434\u0435\u043d\u044c \u0435\u0433\u043e \u0432\u044b\u0445\u043e\u0434\u0430, \u0440\u0435\u0448\u0438\u043b \u0443\u0433\u043b\u0443\u0431\u0438\u0442\u044c \u0441\u0432\u043e\u0438 \u043f\u043e\u0437\u043d\u0430\u043d\u0438\u044f \u0432 Canvas. \u0422\u0430\u043a, \u043a\u0430\u043a \u043f\u043e\u043a\u0430 \u0432 \u0440\u0430\u0431\u043e\u0442\u0435 \u043d\u0435 \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u043b\u043e\u0441\u044c \u0441\u0442\u0430\u043b\u043a\u0438\u0432\u0430\u0442\u044c\u0441\u044f \u0441 \u044d\u0442\u0438\u043c \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u043c, \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u043f\u0440\u043e\u0431\u0435\u0436\u0430\u0442\u044c\u0441\u044f \u043d\u0430 \u0441\u043a\u043e\u0440\u0443\u044e \u0440\u0443\u043a\u0443 \u043f\u043e API. <br \/>  \u041a\u043e\u043d\u0435\u0447\u043d\u043e, \u0440\u0438\u0441\u043e\u0432\u0430\u043d\u0438\u0435 \u043b\u0438\u043d\u0438\u0439, \u043f\u0440\u044f\u043c\u043e\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u043e\u0432, \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u043e\u0432 \u0438 \u043f\u043e\u043b\u0443\u043a\u0440\u0443\u0433\u043e\u0432 \u0432\u0435\u0441\u044c\u043c\u0430 \u0437\u0430\u043d\u0438\u043c\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u0437\u0430\u043d\u044f\u0442\u0438\u0435. \u041d\u043e \u0434\u043b\u044f \u043f\u0440\u0438\u043e\u0431\u0440\u0435\u0442\u0435\u043d\u0438\u044f \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043e\u043f\u044b\u0442\u0430 \u0431\u044b\u043b\u0430 \u043f\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0430 \u0437\u0430\u0434\u0430\u0447\u0430 \u2013 \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0447\u0442\u043e-\u0442\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0435 \u0438 \u043f\u0440\u043e\u0441\u0442\u043e\u0435.<\/p>\n<p>  \u0412\u043e\u0442 \u0442\u0430\u043a \u0440\u043e\u0434\u0438\u043b\u0430\u0441\u044c \u0438\u0434\u0435\u044f \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u0443\u044e \u0438\u0433\u0440\u0443, \u0432\u0441\u0435\u043c \u0437\u043d\u0430\u043a\u043e\u043c\u0443\u044e \u0437\u043c\u0435\u0439\u043a\u0443. <br \/>  <a name=\"habracut\"><\/a><br \/>  \u041a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e, \u0440\u0430\u0431\u043e\u0442\u0430 \u0438 \u043e\u0442\u0434\u044b\u0445 \u0437\u0430\u043d\u0438\u043c\u0430\u044e\u0442 \u0441\u0442\u043e\u043b\u044c\u043a\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438, \u0447\u0442\u043e \u0438\u0433\u0440\u0430 \u0431\u044b\u043b\u0430 \u0437\u0430\u043a\u043e\u043d\u0447\u0435\u043d\u0430 \u043b\u0438\u0448\u044c \u0441\u0435\u0439\u0447\u0430\u0441.<br \/>  \u041f\u0443\u0441\u0442\u044c \u044d\u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u043a\u0430\u043a \u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0430\u0446\u0438\u044f \u0431\u0435\u0442\u0430-\u0432\u0435\u0440\u0441\u0438\u0438 \u0438\u0433\u0440\u044b. \u041c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c, \u043a\u043e\u043c\u0443-\u043d\u0438\u0431\u0443\u0434\u044c \u043f\u0440\u0438\u0433\u043e\u0434\u0438\u0442\u0441\u044f \u043c\u043e\u0439 \u0442\u0440\u0443\u0434. \u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u044f \u043f\u043e\u043b\u0443\u0447\u0443 \u0438\u043d\u0432\u0430\u0439\u0442, \u0430 \u0437\u0430\u043e\u0434\u043d\u043e \u0441 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043e\u043c \u043f\u043e\u0441\u043b\u0443\u0448\u0430\u044e, \u043a\u0440\u0438\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0438\u043b\u0438 \u043f\u043e\u0445\u0432\u0430\u043b\u044c\u043d\u044b\u0435 \u043c\u043d\u0435\u043d\u0438\u044f \u043a\u043e\u043b\u043b\u0435\u0433.<\/p>\n<p>  \u041f\u043e\u0435\u0445\u0430\u043b\u0438!<br \/>  \u041a\u043e\u0434 \u043d\u0430\u043f\u0438\u0441\u0430\u043d \u0441 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435\u043c \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 jQuery, \u0438\u0431\u043e \u0442\u0430\u043a \u0443\u0434\u043e\u0431\u043d\u0435\u0435. \u0412\u0441\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043e\u0431\u044a\u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0443\u0436\u0435 \u043f\u043e\u0441\u043b\u0435 \u0441\u043e\u0431\u044b\u0442\u0438\u044f \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0441\u0442\u0440\u0430\u043d\u0438\u0447\u043a\u0438. \u041f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u044f\u0435\u043c \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u0438 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u043c \u0437\u0430\u0434\u0430\u0451\u043c \u0434\u0435\u0444\u043e\u043b\u0442\u043d\u044b\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438, \u0442\u0430\u043a\u0436\u0435 \u0437\u0430\u0434\u0430\u0451\u043c \u0440\u0430\u0437\u043c\u0435\u0440\u044b \u0445\u043e\u043b\u0441\u0442\u0430 \u0438 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u043c \u00ab\u0442\u0435\u043b\u043e\u00bb \u0437\u043c\u0435\u0439\u043a\u0438. \u041a\u043e\u0442\u043e\u0440\u043e\u0435 \u0431\u0443\u0434\u0435\u0442 \u043c\u043d\u043e\u0433\u043e\u043c\u0435\u0440\u043d\u044b\u043c \u043c\u0430\u0441\u0441\u0438\u0432\u043e\u043c. \u0418\u0434\u0435\u044f \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u0442\u0435\u043b\u043e \u0437\u043c\u0435\u0439\u043a\u0438 \u2013 \u043d\u0430\u0431\u043e\u0440 \u0441\u0435\u043a\u0442\u043e\u0440\u043e\u0432 \u0441 \u043f\u043b\u043e\u0449\u0430\u0434\u044c\u044e 9px \u043d\u0430 9px, \u0438 \u043d\u0430\u0447\u0430\u043b\u043e \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0441\u0435\u043a\u0442\u043e\u0440\u0430 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0447\u0438\u0441\u043b\u043e \u043a\u0440\u0430\u0442\u043d\u043e\u0435 10. 1px \u00ab\u0441\u043f\u0440\u0430\u0432\u0430\u00bb \u043e\u0442 \u0441\u0435\u043a\u0442\u043e\u0440\u0430 \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u0437\u0430\u0440\u0438\u0441\u043e\u0432\u044b\u0432\u0430\u0442\u044c\u0441\u044f, \u0434\u043b\u044f \u0432\u0438\u0437\u0443\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0440\u0430\u0437\u0434\u0435\u043b\u0435\u043d\u0438\u044f.<\/p>\n<pre><code class=\"javascript\">\/\/ \u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u0438\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445, \u0437\u0430\u0434\u0430\u043d\u0438\u0435 \u0438\u043c \u0434\u0435\u0444\u043e\u043b\u0442\u043d\u044b\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 var canvas, context, first_x, first_y, rabbit_pos = new Array(), rabbit_on_field = false, start = true, state = false, g_over = false, direction = 'right';  \/\/ \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u0441\u043b\u043e\u044f \u0438 \u0435\u0433\u043e \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u0432 canvas = $('#mycanvas').get(0); canvas.width = 310; canvas.height = 310; context = canvas.getContext('2d');  \/\/ \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u0446\u0432\u0435\u0442\u0430 \u0437\u043c\u0435\u0439\u043a\u0438 context.fillStyle = &quot;#CE3429&quot;;          \/\/ \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u0434\u0435\u0444\u043e\u043b\u0442\u043d\u044b\u0445 \u0441\u0435\u043a\u0442\u043e\u0440\u043e\u0432 \u0437\u043c\u0435\u0439\u043a\u0438 var snake_sectors = [[10, 50], [20, 50], [30, 50], [40, 50]]; <\/code><\/pre>\n<p>  \u0424\u0443\u043d\u043a\u0446\u0438\u044f \u0432\u044b\u0432\u043e\u0434\u0430 \u0440\u0430\u043c\u043e\u043a \u0438\u0433\u0440\u043e\u0432\u043e\u0433\u043e \u043f\u043e\u043b\u044f, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u0432\u044b\u0437\u043e\u0432\u0435\u043c \u0441\u0440\u0430\u0437\u0443 \u043f\u043e\u0441\u043b\u0435 \u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u0438\u044f \u0434\u0435\u0444\u043e\u043b\u0442\u043d\u044b\u0445 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a.<\/p>\n<pre><code class=\"javascript\">\/\/ \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0438\u0433\u0440\u043e\u0432\u043e\u0433\u043e \u043f\u043e\u043b\u044f function field(context){     context.strokeStyle = &quot;#546DEA&quot;;     context.lineWidth = 1;     context.strokeRect(7, 7, 295, 295); } <\/code><\/pre>\n<p>  \u0424\u0443\u043d\u043a\u0446\u0438\u044f \u0432\u044b\u0432\u043e\u0434\u0430 \u0437\u043c\u0435\u0439\u043a\u0438, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0432\u044b\u0437\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u0434\u0440\u0443\u0433\u0438\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438.<\/p>\n<pre><code class=\"javascript\">\/\/ \u0432\u044b\u0432\u043e\u0434 \u0437\u043c\u0435\u0439\u043a\u0438 function snake(){     if(state){         \/\/ \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0435 &quot;\u0445\u0432\u043e\u0441\u0442\u0430&quot; \u043f\u0440\u0438 \u0434\u0432\u0438\u0436\u0435\u043d\u0438\u0438         \/\/ \u043f\u0440\u0438 \u043f\u0435\u0440\u0432\u043e\u043c \u043f\u0440\u043e\u0445\u043e\u0434\u0435 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u0435\u0441\u0442\u044c undefined         context.clearRect(first_x, first_y, 9, 9);                  \/\/ \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 &quot;\u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u044f&quot; \u0437\u043c\u0435\u0439\u043a\u0438: \u043d\u0430\u0447\u0430\u043b\u043e \u0438\u0433\u0440\u044b, \u043f\u0430\u0443\u0437\u0430\/\u0441\u0442\u0430\u0440\u0442         if(start){             \/\/ \u0437\u044b\u0440\u0438\u0441\u043e\u0432\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0442\u0435\u043b\u043e \u0437\u043c\u0435\u0439\u043a\u0438 \u0432 \u0446\u0438\u043a\u043b\u0435, \u0438 \u043e\u0431\u044a\u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043e \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u0438\u0433\u0440\u044b             \/\/ \u0434\u043b\u044f \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0441\u0435\u043a\u0442\u043e\u0440\u043e\u0432, \u0431\u0443\u0434\u0435\u043c \u0437\u0430\u0440\u0438\u0441\u043e\u0432\u044b\u0432\u0430\u0442\u044c 9px \u0438\u0437 10             for(var i in snake_sectors){                 context.fillRect(snake_sectors[i][0], snake_sectors[i][1], 9, 9);             }             start = false;         }         else{             \/\/ \u0437\u0430\u0440\u0438\u0441\u043e\u0432\u044b\u0432\u0430\u0442\u044c \u043d\u043e\u0432\u044b\u0439 \u0441\u0435\u043a\u0442\u043e\u0440 \u0437\u043c\u0435\u0439\u043a\u0438 - &quot;\u0433\u043e\u043b\u043e\u0432\u0443&quot;             context.fillRect(snake_sectors.slice(-1)[0][0], snake_sectors.slice(-1)[0][1], 9, 9);         }                  \/\/ \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u0438\u044f \u043a\u0440\u043e\u043b\u0438\u043a\u0430 \u043d\u0430 \u043f\u043e\u043b\u0435 \u0438 \u0435\u0433\u043e \u0432\u044b\u0432\u043e\u0434         if(!rabbit_on_field){             rabbit();         }                  \/\/ \u043f\u0440\u0438\u0441\u0432\u0430\u0438\u0432\u0430\u043d\u0438\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u044f &quot;\u0433\u043e\u043b\u043e\u0432\u044b&quot; \u0438 &quot;\u0445\u0432\u043e\u0441\u0442\u0430&quot;          var last_x = snake_sectors.slice(-1)[0][0];         var last_y = snake_sectors.slice(-1)[0][1];         first_x = snake_sectors[0][0];         first_y = snake_sectors[0][1];                  \/\/ \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u0437\u043c\u0435\u0439\u043a\u0438 \u043f\u0440\u0438 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f\u0445 \u0434\u0432\u0438\u0436\u0435\u043d\u0438\u044f         if(direction == 'right'){             var next_x = last_x + 10;             if(next_x &gt; 290){                 \/\/ \u0432\u0440\u0435\u0437\u0430\u043d\u0438\u0435 \u0432 \u043f\u0440\u0430\u0432\u043e\u0435 \u043f\u043e\u043b\u0435, \u043a\u043e\u043d\u0435\u0446 \u0438\u0433\u0440\u044b                 window.setTimeout(game_over, 700);                 return false;             }             snake_sectors.push([next_x, last_y]);         }         if(direction == 'down'){             var next_y = last_y + 10;             if(next_y &gt; 290){                 \/\/ \u0432\u0440\u0435\u0437\u0430\u043d\u0438\u0435 \u0432 \u043d\u0438\u0436\u043d\u0435\u0435 \u043f\u043e\u043b\u0435, \u043a\u043e\u043d\u0435\u0446 \u0438\u0433\u0440\u044b                 window.setTimeout(game_over, 700);                 return false;             }             snake_sectors.push([last_x, next_y]); \/\/ \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043d\u043e\u0432\u043e\u0433\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u043c\u0430\u0441\u0441\u0438\u0432\u0430 (&quot;\u0433\u043e\u043b\u043e\u0432\u0430&quot; \u0437\u043c\u0435\u0439\u043a\u0438)         }         if(direction == 'up'){             var next_y = last_y - 10;             if(next_y &lt; 10) {                 \/\/ \u0432\u0440\u0435\u0437\u0430\u043d\u0438\u0435 \u0432 \u0432\u0435\u0440\u0445\u043d\u0435\u0435 \u043f\u043e\u043b\u0435, \u043a\u043e\u043d\u0435\u0446 \u0438\u0433\u0440\u044b                 window.setTimeout(game_over, 700);                 return false;             }             snake_sectors.push([last_x, next_y]);         }         if(direction == 'left'){             var next_x = last_x - 10;             if(next_x &lt; 10) {                 \/\/ \u0432\u0440\u0435\u0437\u0430\u043d\u0438\u0435 \u0432 \u043b\u0435\u0432\u043e\u0435 \u043f\u043e\u043b\u0435, \u043a\u043e\u043d\u0435\u0446 \u0438\u0433\u0440\u044b                 window.setTimeout(game_over, 700);                 return false;             }             snake_sectors.push([next_x, last_y]);         }                  \/\/ \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043d\u0430 \u0441\u043e\u0432\u043f\u0430\u0434\u0435\u043d\u0438\u0435 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0433\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u0441 \u0434\u0440\u0443\u0433\u0438\u043c\u0438 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430\u043c\u0438         \/\/ \u0442.\u0435. &quot;\u0432\u0440\u0435\u0437\u0430\u043d\u0438\u0435&quot; \u0437\u043c\u0435\u0439\u043a\u0438 \u0432 \u0441\u0435\u0431\u044f         for(var i = 0; i &lt; snake_sectors.length - 1; i++){             if(snake_sectors.slice(-1)[0][0] == snake_sectors[i][0] && snake_sectors.slice(-1)[0][1] == snake_sectors[i][1]){                 \/\/ \u043a\u043e\u043d\u0435\u0446 \u0438\u0433\u0440\u044b                 window.setTimeout(game_over, 700);                 return false;             }         }                  \/\/ \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043d\u0430 \u0441\u044a\u0435\u0434\u0430\u043d\u0438\u0435 \u043a\u0440\u043e\u043b\u0438\u043a\u0430         \/\/ \u0438 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0435\u0439 \u0441\u0443\u0434\u044c\u0431\u044b &quot;\u0445\u0432\u043e\u0441\u0442\u0430&quot;         if(!is_catching()) snake_sectors.splice(0, 1);         else rabbit();                  \/\/ \u0442\u0430\u0439\u043c\u0435\u0440 \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u0438, \u043e\u043d \u0436\u0435 - \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u0437\u043c\u0435\u0439\u043a\u0438         setTimeout(snake, 200); \/\/ 200 ms     } } <\/code><\/pre>\n<p>  \u041f\u043e \u043f\u043e\u0440\u044f\u0434\u043a\u0443. \u041f\u0440\u0438 state == true (true\/false \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u0438\u0433\u0440\u044b \u0441\u0442\u0430\u0440\u0442\/\u043f\u0430\u0443\u0437\u0430), \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u0440\u044f\u0434 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439, \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u043e \u0432 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u044f\u0445.<br \/>  \u041d\u0438\u0436\u0435 \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u044b \u0432\u0441\u0435 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432\u044b\u0437\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u0432 snake().<br \/>  \u041a\u043e\u0440\u043e\u0442\u043a\u043e \u043f\u043e \u0441\u0443\u0442\u0438: \u0432\u044b\u0432\u043e\u0434 \u043a\u0440\u043e\u043b\u0438\u043a\u0430 (\u0441 \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0435\u0439 \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0435\u0433\u043e \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442 \u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u043e\u0439 \u043d\u0430 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u0438\u0435 \u0442\u0430\u043a\u0438\u0445 \u0432 \u00ab\u0442\u0435\u043b\u0435\u00bb \u0437\u043c\u0435\u0439\u043a\u0438);   <\/p>\n<pre><code class=\"javascript\">\/\/ \u0432\u044b\u0432\u043e\u0434 \u043a\u0440\u043e\u043b\u0438\u043a\u0430 \u043d\u0430 \u0438\u0433\u0440\u043e\u0432\u043e\u0435 \u043f\u043e\u043b\u0435 function rabbit(){     \/\/ \u0437\u0430\u0434\u0430\u043d\u0438\u0435 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442 \u043a\u0440\u043e\u043b\u0438\u043a\u0443     rabbit_pos[0] = math_rand();     rabbit_pos[1] = math_rand();          \/\/ \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043d\u0430 \u0441\u043e\u0432\u043f\u0430\u0434\u0435\u043d\u0438\u0435 \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u044b\u0445 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442 \u0441 &quot;\u0442\u0435\u043b\u043e\u043c&quot; \u0437\u043c\u0435\u0439\u043a\u0438      for(var i in snake_sectors){         if(rabbit_pos[0] == snake_sectors[i][0]){             rabbit_pos[0] = math_rand();         }         if(rabbit_pos[1] == snake_sectors[i][1]){             rabbit_pos[1] = math_rand();         }     }          \/\/ \u0437\u0430\u0440\u0438\u0441\u043e\u0432\u0430\u0442\u044c \u0441\u0435\u043a\u0442\u043e\u0440, \u0438 \u043e\u0431\u044a\u044f\u0432\u0438\u0442\u044c \u043e \u043d\u0430\u043b\u0438\u0447\u0438\u0438 \u0436\u0438\u0432\u043d\u043e\u0441\u0442\u0438 \u043d\u0430 \u043f\u043e\u043b\u0435     context.fillRect(rabbit_pos[0], rabbit_pos[1], 9, 9);     rabbit_on_field = true; } <\/code><\/pre>\n<p>  \u0444\u0443\u043d\u043a\u0446\u0438\u044f-\u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440 \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0432 \u0437\u0430\u0434\u0430\u043d\u043d\u043e\u043c \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u0435; <\/p>\n<pre><code class=\"javascript\">\/\/ \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u044f \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u0445 \u0447\u0438\u0441\u0435\u043b \u0432 \u0437\u0430\u0434\u0430\u043d\u043d\u043e\u043c \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u0435 \/\/ \u0434\u043b\u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442 \u043a\u0440\u043e\u043b\u0438\u043a\u0430 function math_rand(){     return Math.ceil((Math.random() * 2.9) * 10) * 10; } <\/code><\/pre>\n<p>  \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043d\u0430 \u00ab\u0441\u044a\u0435\u0434\u0435\u043d\u0438\u0435\u00bb \u043a\u0440\u043e\u043b\u0438\u043a\u0430 (\u0441\u043e\u0432\u043f\u0430\u0434\u0435\u043d\u0438\u0435 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442 \u00ab\u0433\u043e\u043b\u043e\u0432\u044b\u00bb \u0441 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u0430\u043c\u0438 \u043a\u0440\u043e\u043b\u0438\u043a\u0430); <\/p>\n<pre><code class=\"javascript\">\/\/ \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043d\u0430 &quot;\u0441\u044a\u0435\u0434\u0430\u043d\u0438\u0435&quot; \u043a\u0440\u043e\u043b\u0438\u043a\u0430 \/\/ \u0442.\u0435. \u0441\u043e\u0432\u043f\u0430\u0434\u0435\u043d\u0438\u0435 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442 &quot;\u0433\u043e\u043b\u043e\u0432\u044b&quot; \u0437\u043c\u0435\u0439\u043a\u0438 \u0441 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u0430\u043c\u0438 \u043a\u0440\u043e\u043b\u0438\u043a\u0430 function is_catching(){     if(rabbit_pos[0] == snake_sectors.slice(-1)[0][0] && rabbit_pos[1] == snake_sectors.slice(-1)[0][1])         return true;          else          return false; } <\/code><\/pre>\n<p>  \u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u0438\u0435 \u043e \u043a\u043e\u043d\u0446\u0435 \u0438\u0433\u0440\u044b \u0438 \u0432\u043e\u0437\u0432\u0440\u0430\u0442 \u043a \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u043c \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e (\u0434\u043b\u044f \u043d\u043e\u0432\u043e\u0433\u043e \u0441\u0442\u0430\u0440\u0442\u0430);<\/p>\n<pre><code class=\"javascript\">\/\/ &quot;\u043a\u043e\u043d\u0435\u0446 \u0438\u0433\u0440\u044b&quot;, \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u043c\u0430\u044f \u043f\u0440\u0438 \u043d\u0430\u0441\u0442\u0443\u043f\u043b\u0435\u043d\u0438\u0438 \u0441\u043e\u0431\u044b\u0442\u0438\u0439 - \/\/ \u0432\u0440\u0435\u0437\u0430\u043d\u0438\u044f \u0437\u043c\u0435\u0439\u043a\u0438 \u0432 \u0441\u0435\u0431\u044f \u0438\u043b\u0438 \u043a\u0440\u0430\u044f \u0438\u0433\u0440\u043e\u0432\u043e\u0433\u043e \u043f\u043e\u043b\u044f function game_over(){     \/\/ \u043e\u0431\u044a\u044f\u0432\u043b\u044f\u0435\u043c \u043a\u043e\u043d\u0435\u0446 \u0438\u0433\u0440\u044b, \u044d\u0442\u0430 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f \u043d\u0443\u0436\u043d\u0430 \u0434\u043b\u044f \u0442\u043e\u0433\u043e,     \/\/ \u0447\u0442\u043e\u0431 \u0437\u0430\u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043e\u0442\u043a\u043b\u0438\u043a \u043d\u0430 \u043d\u0430\u0436\u0430\u0442\u0438\u0435 \u043f\u0440\u043e\u0431\u0435\u043b\u0430 \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u0437\u0430\u0441\u0442\u0430\u0432\u043a\u0438 &quot;Game Over&quot;     g_over = true;          \/\/ \u0447\u0438\u0441\u0442\u0438\u043c \u043f\u043e\u043b\u0435 \u043e\u0442 \u0442\u0440\u0435\u0448\u0430     context.clearRect(8, 8, 293, 293);          \/\/ \u0440\u0430\u0434\u0443\u0435\u043c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u043e \u043a\u043e\u043d\u0446\u0435 \u0438\u0433\u0440\u044b     context.font='35px Verdana';     context.strokeStyle=&quot;#DB733B&quot;;     context.strokeText('Game Over!',47,160);          \/\/ \u0441\u043e\u0437\u0434\u0430\u0451\u043c \u043d\u0435\u043a\u0443\u044e \u0440\u0430\u0437\u043d\u043e\u0432\u0438\u0434\u043d\u043e\u0441\u0442\u044c \u0430\u043d\u0438\u043c\u0430\u0446\u0438\u0438 - \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u0430 \u043d\u0430\u0434\u043f\u0438\u0441\u0438 &quot;Game Over!&quot;     setTimeout(function(){context.clearRect(8, 8, 293, 293); g_over = false}, 1500);          \/\/ \u0437\u0430\u0434\u0430\u043d\u0438\u0435 \u0434\u0435\u0444\u043e\u043b\u0442\u043d\u044b\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 - \u0441\u043d\u043e\u0432\u0430 \u043d\u0430\u0447\u0430\u043b\u043e \u0438\u0433\u0440\u044b     snake_sectors = [[10, 50], [20, 50], [30, 50], [40, 50]];     state = false;     direction = 'right';     start = true;     rabbit_on_field = false; } <\/code><\/pre>\n<p>   \u043e\u0442\u043b\u0430\u0432\u043b\u0438\u0432\u0430\u043d\u0438\u0435 \u0441\u043e\u0431\u044b\u0442\u0438\u0439 \u043d\u0430\u0436\u0430\u0442\u0438\u044f \u043d\u0430 \u00ab\u0438\u0433\u0440\u043e\u0432\u044b\u0435\u00bb \u043a\u043b\u0430\u0432\u0438\u0448\u0438 \u0438 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u043f\u043e\u0441\u043b\u0435\u0434\u0441\u0442\u0432\u0438\u044f;<\/p>\n<pre><code class=\"javascript\">\/\/ \u043e\u0442\u043b\u0430\u0432\u043b\u0438\u0432\u0430\u043d\u0438\u0435 \u0441\u043e\u0431\u044b\u0442\u0438\u0439 \u043d\u0430\u0436\u0430\u0442\u0438\u044f \u043d\u0430 &quot;\u0438\u0433\u0440\u043e\u0432\u044b\u0435&quot; \u043a\u043b\u0430\u0432\u0438\u0448\u0438 document.onkeydown = function(event){ \tvar keyCode; \tif(event == null){ \t\tkeyCode = window.event.keyCode;  \t} \telse{ \t   keyCode = event.keyCode;  \t}  \tswitch(keyCode){         \/\/ space\/\u043f\u0440\u043e\u0431\u0435\u043b         case 32:         \/\/ \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435 \u043f\u0440\u0438 \u043d\u0430\u0436\u0430\u0442\u0438\u0438 \u043f\u0440\u043e\u0431\u0435\u043b\u0430         if(!g_over){             \/\/ \u0447\u0435\u0440\u0435\u0434\u0443\u0435\u043c \u043f\u0430\u0443\u0437\u0443 \u0441\u043e \u0441\u0442\u0430\u0440\u0442\u043e\u043c(continue)             state = (!state) ? true : false;             \/\/ \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u043c \u0437\u043c\u0435\u0439\u043a\u0443             snake();         }                     break;         \/\/ left\/\u0441\u0442\u0440\u0435\u043b\u043a\u0430 \u0432\u043b\u0435\u0432\u043e         case 37:         \/\/ \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435 \u043f\u0440\u0438 \u043d\u0430\u0436\u0430\u0442\u0438\u0438 &quot;\u0432\u043b\u0435\u0432\u043e&quot;         if(direction == 'right') return;         direction = 'left';         break;                  \/\/ up\/\u0441\u0442\u0440\u0435\u043b\u043a\u0430 \u0432\u0432\u0435\u0440\u0445         case 38:         \/\/ \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435 \u043f\u0440\u0438 \u043d\u0430\u0436\u0430\u0442\u0438\u0438 &quot;\u0432\u0432\u0435\u0440\u0445&quot;         if(direction == 'down') return;         direction = 'up';         break;                  \/\/ right\/\u0441\u0442\u0440\u0435\u043b\u043a\u0430 \u0432\u043f\u0440\u0430\u0432\u043e         case 39:         \/\/ \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435 \u043f\u0440\u0438 \u043d\u0430\u0436\u0430\u0442\u0438\u0438 &quot;\u0432\u043f\u0440\u0430\u0432\u043e&quot;         if(direction == 'left') return;         direction = 'right';         break;                  \/\/ down\/\u0441\u0442\u0440\u0435\u043b\u043a\u0430 \u0432\u043d\u0438\u0437         case 40:         \/\/ \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435 \u043f\u0440\u0438 \u043d\u0430\u0436\u0430\u0442\u0438\u0438 &quot;\u0432\u043d\u0438\u0437&quot;         if(direction == 'up') return;         direction = 'down';         break;                           default:         break; \t}  } <\/code><\/pre>\n<p>  \u041f\u043e\u0438\u0433\u0440\u0430\u0442\u044c \u043c\u043e\u0436\u043d\u043e <a href=\"https:\/\/googledrive.com\/host\/0BykbIjQR1JZQZVVscjljQVpPeXM\/snake.html\">\u0437\u0434\u0435\u0441\u044c<\/a>.<\/p>\n<p>  \u0411\u0443\u0434\u0443 \u0440\u0430\u0434 \u0443\u0441\u043b\u044b\u0448\u0430\u0442\u044c \u0437\u0434\u043e\u0440\u043e\u0432\u0443\u044e \u043a\u0440\u0438\u0442\u0438\u043a\u0443 \u0432 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0445. \u0411\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044e \u0437\u0430 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435! \t\t\t<\/p>\n<div class=\"clear\"><\/div>\n<\/p><\/div>\n<p> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"http:\/\/habrahabr.ru\/post\/202014\/\"> http:\/\/habrahabr.ru\/post\/202014\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div class=\"content html_format\"> \t\t\t\u041f\u0440\u0438\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e \u0443\u0432\u0430\u0436\u0430\u0435\u043c\u043e\u0435 \u0445\u0430\u0431\u0440\u0430-\u0441\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u043e. \u041f\u043e\u0441\u043b\u0435 \u043f\u0440\u043e\u0447\u0442\u0435\u043d\u0438\u044f \u043f\u043e\u0441\u0442\u0430 <a href=\"http:\/\/habrahabr.ru\/post\/184666\/\">\u00ab\u0421\u043e\u0437\u0434\u0430\u0451\u043c \u0438\u0433\u0440\u0443, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f canvas \u0438 \u0441\u043f\u0440\u0430\u0439\u0442\u044b\u00bb<\/a> \u0432 \u0434\u0435\u043d\u044c \u0435\u0433\u043e \u0432\u044b\u0445\u043e\u0434\u0430, \u0440\u0435\u0448\u0438\u043b \u0443\u0433\u043b\u0443\u0431\u0438\u0442\u044c \u0441\u0432\u043e\u0438 \u043f\u043e\u0437\u043d\u0430\u043d\u0438\u044f \u0432 Canvas. \u0422\u0430\u043a, \u043a\u0430\u043a \u043f\u043e\u043a\u0430 \u0432 \u0440\u0430\u0431\u043e\u0442\u0435 \u043d\u0435 \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u043b\u043e\u0441\u044c \u0441\u0442\u0430\u043b\u043a\u0438\u0432\u0430\u0442\u044c\u0441\u044f \u0441 \u044d\u0442\u0438\u043c \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u043c, \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u043f\u0440\u043e\u0431\u0435\u0436\u0430\u0442\u044c\u0441\u044f \u043d\u0430 \u0441\u043a\u043e\u0440\u0443\u044e \u0440\u0443\u043a\u0443 \u043f\u043e API. <br \/>  \u041a\u043e\u043d\u0435\u0447\u043d\u043e, \u0440\u0438\u0441\u043e\u0432\u0430\u043d\u0438\u0435 \u043b\u0438\u043d\u0438\u0439, \u043f\u0440\u044f\u043c\u043e\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u043e\u0432, \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u043e\u0432 \u0438 \u043f\u043e\u043b\u0443\u043a\u0440\u0443\u0433\u043e\u0432 \u0432\u0435\u0441\u044c\u043c\u0430 \u0437\u0430\u043d\u0438\u043c\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u0437\u0430\u043d\u044f\u0442\u0438\u0435. \u041d\u043e \u0434\u043b\u044f \u043f\u0440\u0438\u043e\u0431\u0440\u0435\u0442\u0435\u043d\u0438\u044f \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043e\u043f\u044b\u0442\u0430 \u0431\u044b\u043b\u0430 \u043f\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0430 \u0437\u0430\u0434\u0430\u0447\u0430 \u2013 \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0447\u0442\u043e-\u0442\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0435 \u0438 \u043f\u0440\u043e\u0441\u0442\u043e\u0435.<\/p>\n<p>  \u0412\u043e\u0442 \u0442\u0430\u043a \u0440\u043e\u0434\u0438\u043b\u0430\u0441\u044c \u0438\u0434\u0435\u044f \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u0443\u044e \u0438\u0433\u0440\u0443, \u0432\u0441\u0435\u043c \u0437\u043d\u0430\u043a\u043e\u043c\u0443\u044e \u0437\u043c\u0435\u0439\u043a\u0443.   <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-202014","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/202014","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=202014"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/202014\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=202014"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=202014"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=202014"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}