{"id":224525,"date":"2014-05-29T13:46:02","date_gmt":"2014-05-29T09:46:02","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=224525"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=224525","title":{"rendered":"<span class=\"post_title\">\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 Zero Player Game, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f libgdx<\/span>"},"content":{"rendered":"<div class=\"content html_format\">\n<h4>\u0418\u0434\u0435\u044f<\/h4>\n<p>  <\/p>\n<ol>\n<li> \u0418\u0433\u0440\u043e\u0432\u043e\u0435 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e \u2014 \u043a\u043b\u0435\u0442\u0447\u0430\u0442\u043e\u0435 \u043f\u043e\u043b\u0435 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u043d\u043e\u0435 \u0440\u0430\u043c\u043a\u043e\u0439<\/li>\n<li> \u0421\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u0442\u0438\u043f\u044b \u043a\u043b\u0435\u0442\u043e\u043a:\n<ul>\n<li> \u041f\u0443\u0441\u0442\u0430\u044f \u043a\u043b\u0435\u0442\u043a\u0430 \u2014 \u0431\u0435\u043b\u044b\u0439<\/li>\n<li> \u0421\u0442\u0435\u043d\u0430 \u2014 \u0447\u0451\u0440\u043d\u044b\u0439<\/li>\n<li> \u0417\u0432\u0435\u0440\u044c \u2014 \u043a\u0440\u0430\u0441\u043d\u044b\u0439<\/li>\n<li> \u0421\u043b\u0435\u0434 \u2014 \u043a\u043e\u0440\u0438\u0447\u043d\u0435\u0432\u044b\u0439<\/li>\n<li> \u0414\u043e\u043c \u2014 \u0437\u0435\u043b\u0451\u043d\u044b\u0439<\/li>\n<\/ul>\n<\/li>\n<li> \u041f\u0435\u0440\u0435\u043c\u0435\u0449\u0435\u043d\u0438\u0435 \u0437\u0432\u0435\u0440\u044f \u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u043d\u0435\u0438\u0441\u0447\u0435\u0437\u0430\u044e\u0449\u0438\u0439 \u0441\u043b\u0435\u0434<\/li>\n<li> \u041f\u0440\u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0435 \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043b\u0430\u0431\u0438\u0440\u0438\u043d\u0442<\/li>\n<li> \u0417\u0432\u0435\u0440\u044c \u0437\u043d\u0430\u0435\u0442 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u0441\u043e\u0441\u0435\u0434\u043d\u0438\u0445 \u043a\u043b\u0435\u0442\u043e\u043a \u0438 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u0438\u0438 \u044d\u0442\u043e\u0433\u043e \u0441\u0442\u0440\u043e\u0438\u0442 \u043a\u0430\u0440\u0442\u0443 \u043f\u0440\u0438 \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0435\u043d\u0438\u0438<\/li>\n<li> \u041f\u0440\u0438 \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0435\u043d\u0438\u0438 \u0437\u0432\u0435\u0440\u044c \u0440\u0430\u0441\u0445\u043e\u0434\u0443\u0435\u0442 \u0441\u0438\u043b\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u0432 \u0434\u043e\u043c\u0435(+5) \u0438\u043b\u0438 \u043d\u0430 \u043b\u044e\u0431\u043e\u0439 \u043a\u043b\u0435\u0442\u043a\u0435(+1)<\/li>\n<li> \u041f\u0440\u0438 \u0441\u0442\u043e\u043b\u043a\u043d\u043e\u0432\u0435\u043d\u0438\u0438 \u0437\u0432\u0435\u0440\u0438 \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u044f\u044e\u0442\u0441\u044f \u0432 \u0441\u0442\u0430\u0438(\u0434\u043e\u043c\u0430 \u043f\u0435\u0440\u0435\u043d\u043e\u0441\u044f\u0442\u0441\u044f \u0432 \u0441\u043e\u0441\u0435\u0434\u043d\u0438\u0435 \u0442\u043e\u0447\u043a\u0438), \u0435\u0441\u043b\u0438 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0437\u0432\u0435\u0440\u0435\u0439 \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e \u043e\u0442\u0434\u044b\u0445\u0430\u044e\u0442 \u0432 \u0434\u043e\u043c\u0435 \u0438\u0445 \u043a\u0430\u0440\u0442\u044b \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u044f\u044e\u0442\u0441\u044f<\/li>\n<li> (\u041d\u0435 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043e)\u0420\u0430\u0437\u043d\u044b\u0435 \u00ab\u043a\u043b\u0430\u043d\u044b\u00bb \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u044f\u044e\u0442\u0441\u044f \u0438\u043b\u0438 \u0432\u043e\u044e\u044e\u0442<\/li>\n<li> (\u041d\u0435 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043e)\u0413\u0435\u043d\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u0434\u043b\u044f \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0439 \u0437\u0432\u0435\u0440\u0435\u0439, \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u043e \u043f\u0435\u0440\u0435\u043c\u0435\u0448\u0438\u0432\u0430\u044e\u0449\u0438\u0435\u0441\u044f \u043f\u0440\u0438 \u0440\u0430\u0437\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u0438(+\u043c\u0443\u0442\u0430\u0446\u0438\u0438), \u0431\u043e\u043b\u0435\u0435 \u043f\u0435\u0440\u0441\u043f\u0435\u043a\u0442\u0438\u0432\u043d\u044b\u0439 \u0432\u0438\u0434 \u0432\u044b\u0436\u0438\u0432\u0435\u0442 \u0432 \u0432\u043e\u0439\u043d\u0430\u0445<\/li>\n<\/ol>\n<p>  <a name=\"habracut\"><\/a>  <\/p>\n<h5>\u041f\u043e\u0447\u0435\u043c\u0443 libgdx?<\/h5>\n<p>  \u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0443 \u044f \u0432\u0451\u043b \u0441 \u0440\u0430\u0437\u043d\u044b\u0445 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432, \u0434\u043e\u043c\u0430\u0448\u043d\u0438\u0439 \u043a\u043e\u043c\u043f \u043d\u0430 ubuntu \u0438 \u043f\u043b\u0430\u043d\u0448\u0435\u0442 \u043d\u0430 win8, \u0441\u0432\u044f\u0437\u043a\u0430 java + eclipse \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u043b\u0430 \u0434\u0435\u043b\u0430\u0442\u044c \u044d\u0442\u043e \u0431\u0435\u0437 \u043f\u0440\u043e\u0431\u043b\u0435\u043c. Libgdx \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d \u0434\u043b\u044f \u0443\u0434\u043e\u0431\u0441\u0442\u0432\u0430 \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u043a\u0430\u043c\u0435\u0440\u043e\u0439, \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0433\u0440\u0430\u0444\u0438\u043a\u0438 \u0432 \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0435\u043c, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0432\u0435\u0440\u0441\u0438\u0438 \u043f\u043e\u0434 \u0430\u043d\u0434\u0440\u043e\u0438\u0434.<\/p>\n<h4>\u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435<\/h4>\n<p>  \u0417\u0430\u0433\u043e\u0442\u043e\u0432\u043a\u0430 \u0438\u0433\u0440\u044b, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043e:  <\/p>\n<ul>\n<li> \u0418\u0433\u0440\u043e\u0432\u043e\u0435 \u043f\u043e\u043b\u0435<\/li>\n<li> \u0413\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u044f \u043b\u0430\u0431\u0438\u0440\u0438\u043d\u0442\u0430<\/li>\n<li> \u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0437\u0432\u0435\u0440\u044f \u043a\u043b\u0438\u043a\u043e\u043c \u043f\u043e \u043a\u0430\u0440\u0442\u0435<\/li>\n<li> \u041f\u0435\u0440\u0435\u043c\u0435\u0449\u0435\u043d\u0438\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0430, \u043e\u0431\u0445\u043e\u0434\u044f \u043f\u0440\u0435\u043f\u044f\u0442\u0441\u0442\u0432\u0438\u044f, \u043f\u043e \u043f\u043e\u043b\u044e \u0441 \u0446\u0435\u043b\u044c\u044e \u043f\u043e\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u043f\u043e\u043b\u043d\u0443\u044e \u043a\u0430\u0440\u0442\u0443 \u043c\u0435\u0441\u0442\u043d\u043e\u0441\u0442\u0438.<\/li>\n<\/ul>\n<p>  \u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442:<\/p>\n<p>  <iframe loading=\"lazy\" width=\"560\" height=\"349\" src=\"\/\/www.youtube.com\/embed\/RHwY1k8--bk?wmode=opaque\" frameborder=\"0\" allowfullscreen><\/iframe><\/p>\n<h4>\u041d\u0430\u0447\u0430\u043b\u043e<\/h4>\n<p>  \u041f\u043e\u0441\u043b\u0435 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0438 \u0438\u043c\u043f\u043e\u0440\u0442\u0430 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0432 eclipse \u0434\u043e\u0431\u0430\u0432\u0438\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u043f\u043e\u043b\u044f(\u0432 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u0432\u0435\u0440\u0441\u0438\u0438 libgdx \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0443\u0436\u0435 \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u044b)<\/p>\n<pre><code class=\"java\">SpriteBatch batch;\/\/\u041a\u043b\u0430\u0441\u0441 \u0434\u043b\u044f \u0440\u0438\u0441\u043e\u0432\u0430\u043d\u0438\u044f \u0441\u043f\u0440\u0430\u0439\u0442\u043e\u0432 \u043d\u0430 \u0438\u0433\u0440\u043e\u0432\u043e\u043c \u043f\u043e\u043b\u0435 OrthographicCamera camera;\/\/\u041f\u0435\u0440\u0435\u043c\u0435\u0449\u0435\u043d\u0438\u0435 \u043f\u043e \u0438\u0433\u0440\u043e\u0432\u043e\u043c\u0443 \u043f\u043e\u043b\u044e Texture texture;\/\/\u0422\u0435\u043a\u0441\u0442\u0443\u0440\u0430 \u043a\u043b\u0435\u0442\u043a\u0438(\u043d\u0430 \u0432\u0438\u0434\u0435\u043e \u044d\u0442\u043e png \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 - \u0431\u0435\u043b\u044b\u0439 \u043a\u0432\u0430\u0434\u0440\u0430\u0442 \u0441 \u0447\u0451\u0440\u043d\u043e\u0439 \u0440\u0430\u043c\u043a\u043e\u0439) <\/code><\/pre>\n<p>  \u0412 \u043c\u0435\u0442\u043e\u0434\u0435 create() \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u043c \u0438\u0445:<\/p>\n<pre><code class=\"java\">batch = new SpriteBatch(); batch.disableBlending(); camera = new OrthographicCamera(FIELD_SIZE, FIELD_SIZE); <\/code><\/pre>\n<p>  \u0414\u043e\u0431\u0430\u0432\u0438\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u044b:<\/p>\n<pre><code class=\"java\">public static final int FIELD_SIZE = 51;\/\/\u0420\u0430\u0437\u043c\u0435\u0440 \u043f\u043e\u043b\u044f(\u043f\u043e\u043b\u0435 \u043a\u0432\u0430\u0434\u0440\u0430\u0442\u043d\u043e\u0435) public static float UPDATE_TIME = 0.001f;\/\/\u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b \u043c\u0435\u0436\u0434\u0443 &quot;\u0448\u0430\u0433\u0430\u043c\u0438&quot; \u0441\u0443\u0449\u0435\u0441\u0442\u0432 <\/code><\/pre>\n<p>  \u0414\u0430\u043b\u0435\u0435 \u043f\u0440\u0438\u0433\u043e\u0434\u0438\u0442\u0441\u044f \u0430\u0431\u0441\u0442\u0440\u0430\u043a\u0442\u043d\u044b\u0439 \u043a\u043b\u0430\u0441\u0441 Cell, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u0443\u0434\u0435\u0442 \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c \u043e\u0431\u0449\u0438\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b \u043a\u043b\u0435\u0442\u043e\u043a.<\/p>\n<pre><code class=\"java\">public abstract class Cell {  \tpublic Color color; \t \tSprite sprite; \t \tpublic Cell(Texture texture, Color color){ \t\tthis.color = color; \t\tsprite = new Sprite(texture); \t\tsprite.setColor(color); \t\tsprite.setSize(1, 1); \t} \t \tpublic abstract void update(Cell[][] map, int x, int y, Texture texture); \t \tpublic void setColor(Color color){ \t\tthis.color = color; \t\tsprite.setColor(color); \t} \t \tpublic void draw(SpriteBatch batch,int x, int y){ \t\t \t\tsprite.setPosition(x-Main.FIELD_SIZE\/2-sprite.getWidth()\/2, y-Main.FIELD_SIZE\/2-sprite.getHeight()\/2); \t\tsprite.draw(batch); \t} } <\/code><\/pre>\n<p>  \u0421\u0440\u0430\u0437\u0443 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0434\u0432\u0443\u0445 \u0435\u0433\u043e \u043d\u0430\u0441\u043b\u0435\u0434\u043d\u0438\u043a\u043e\u0432 Wall \u0438 Empty.<\/p>\n<pre><code class=\"java\">public class Wall extends Cell {  \tpublic Wall(Texture texture) { \t\tsuper(texture, new Color(0f, 0f, 0f, 1)); \t}  \t@Override \tpublic void update(Cell[][] map, int x, int y, Texture texture) {  \t}  }  public class Empty extends Cell {  \tpublic Empty(Texture texture) { \t\tsuper(texture, new Color(1, 1, 1, 1)); \t}  \t@Override \tpublic void update(Cell[][] map, int x, int y, Texture texture) {  \t}  }  <\/code><\/pre>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043b\u0430\u0431\u0438\u0440\u0438\u043d\u0442. \u043f\u043e\u044f\u0441\u043d\u044f\u0442\u044c \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u043d\u0435 \u0431\u0443\u0434\u0443, \u043e\u043d \u043d\u0435\u043f\u043b\u043e\u0445\u043e \u0438\u0437\u043b\u043e\u0436\u0435\u043d <a href=\"http:\/\/algolist.manual.ru\/games\/maze.php\">\u0442\u0443\u0442<\/a>. \u042d\u0442\u043e\u0442 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u044f \u0432\u044b\u0434\u0435\u043b\u0438\u043b \u0432 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u043a\u043b\u0430\u0441\u0441 MazeGenerator \u0441 \u0435\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u043c \u043c\u0435\u0442\u043e\u0434\u043e\u043c getMaze(int size), \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0434\u0432\u0443\u043c\u0435\u0440\u043d\u044b\u0439 \u043c\u0430\u0441\u0441\u0438\u0432 \u043d\u0443\u043b\u0435\u0439 \u0438 \u0435\u0434\u0438\u043d\u0438\u0446, \u0433\u0434\u0435 0 \u2014 \u043f\u0443\u0441\u0442\u0430\u044f \u043a\u043b\u0435\u0442\u043a\u0430, 1 \u2014 \u0441\u0442\u0435\u043d\u0430.<\/p>\n<p>  \u0418\u0433\u0440\u043e\u0432\u043e\u0435 \u043f\u043e\u043b\u0435 \u0431\u0443\u0434\u0435\u0442 \u0445\u0440\u0430\u043d\u0438\u0442\u044c\u0441\u044f \u0432 \u043f\u0440\u043e\u0441\u0442\u043e\u043c \u0434\u0432\u0443\u043c\u0435\u0440\u043d\u043e\u043c \u043c\u0430\u0441\u0441\u0438\u0432\u0435:<\/p>\n<pre><code class=\"java\">Cell[][] map; <\/code><\/pre>\n<p>  \u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043f\u043e\u043b\u044f \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0442\u0430\u043a:<\/p>\n<pre><code class=\"java\">map = new Cell[FIELD_SIZE][FIELD_SIZE];  \t\ttexture = new Texture(Gdx.files.internal(&quot;tile.png&quot;));\/\/\u043d\u0435 \u0437\u0430\u0431\u044b\u0432\u0430\u0435\u043c \u043f\u043e\u0434\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435  \t\tchar[][] bmap = (new MazeGenerator()).getMaze(FIELD_SIZE - 1); \t\tfor (int i = 0; i &lt; FIELD_SIZE; i++) \t\t\tfor (int j = 0; j &lt; FIELD_SIZE; j++) { \t\t\t\tif (bmap[i][j] == 0) \t\t\t\t\tmap[i][j] = new Empty(texture); \t\t\t\tif (bmap[i][j] == 1) \t\t\t\t\tmap[i][j] = new Wall(texture); \t\t\t} <\/code><\/pre>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c \u043c\u044b \u0438\u043c\u0435\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u0439 \u043b\u0430\u0431\u0438\u0440\u0438\u043d\u0442 \u043f\u0440\u0438 \u043a\u0430\u0436\u0434\u043e\u043c \u0437\u0430\u043f\u0443\u0441\u043a\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b. \u041c\u043e\u0436\u043d\u043e \u043f\u043e\u0438\u0433\u0440\u0430\u0442\u044c\u0441\u044f \u0441 \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u0430\u043c\u0438 \u0438 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u0434\u043b\u044f \u0441\u0435\u0431\u044f \u043b\u0443\u0447\u0448\u0443\u044e \u043a\u043e\u043c\u0431\u0438\u043d\u0430\u0446\u0438\u044e.<\/p>\n<p>  <img decoding=\"async\" src=\"\/\/habrastorage.org\/files\/0e8\/763\/64a\/0e876364af78425fb101dfd3ed05a140.png\"\/><\/p>\n<p>  \u0414\u0430 \u043d\u0430 \u044d\u0442\u043e\u043c \u0441\u043a\u0440\u0438\u043d\u0435 tile.png \u044d\u0442\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u0431\u0435\u043b\u044b\u0439 \u043a\u0432\u0430\u0434\u0440\u0430\u0442.<\/p>\n<h4>\u0417\u0432\u0435\u0440\u044c<\/h4>\n<p>  \u041d\u0430\u0441\u0442\u0430\u043b\u043e \u0432\u0440\u0435\u043c\u044f \u043d\u0430\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u043c\u0438\u0440 \u0436\u0438\u0437\u043d\u044c\u044e.<\/p>\n<p>  \u0421\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u043f\u043e\u0442\u043e\u043c\u043a\u0430 Cell:<\/p>\n<pre><code class=\"java\">public class Unit extends Cell {  \tCell[][] my_map = new Cell[3][3];\/\/\u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u0430\u044f \u043a\u0430\u0440\u0442\u0430, \u0438\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b \u0442\u043e\u043b\u044c\u043a\u043e \u0441\u043e\u0441\u0435\u0434\u043d\u0438\u0435 \u043a\u043b\u0435\u0442\u043a\u0438 \tfloat update_time = Main.UPDATE_TIME;\/\/\u0441\u0447\u0451\u0442\u0447\u0438\u043a \u0448\u0430\u0433\u0430 \tint mapX = 1, mapY = 1;\/\/\u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u0437\u0432\u0435\u0440\u044f \u043d\u0430 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0439 \u043a\u0430\u0440\u0442\u0435 \tVector&lt;Action&gt; queue = new Vector&lt;Action&gt;();\/\/\u0441\u043f\u0438\u0441\u043e\u043a \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439 \u0434\u043b\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f  \tenum Action { \t\tleft, right, up, down\/\/\u0441\u043f\u0438\u0441\u043e\u043a \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439 \t}         public Unit(Texture texture, Cell[][] map, int x, int y) { \t\tsuper(texture, new Color(1f, 0, 0, 1)); \t\tfor (int i = x - 1; i &lt;= x + 1; i++) \t\t\tfor (int j = y - 1; j &lt;= y + 1; j++) \t\t\t\tmy_map[i - x + 1][j - y + 1] = map[i][Main.FIELD_SIZE - j - 1];  \t\tmy_map[1][1] = this; \t\thomeX = 1; \t\thomeY = 1; \t}         private int goRight(Cell[][] map, int x, int y, Texture texture) {...}\/\/map - \u043f\u043e\u043b\u043d\u0430\u044f, \u0438\u0441\u0442\u0438\u043d\u043d\u0430\u044f \u043a\u0430\u0440\u0442\u0430 \u043c\u0438\u0440\u0430, x,y - \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0437\u0432\u0435\u0440\u044f \u043d\u0430 \u043d\u0435\u0439 \tprivate int goLeft(Cell[][] map, int x, int y, Texture texture) {...} \tprivate int goUp(Cell[][] map, int x, int y, Texture texture) {...} \tprivate int goDown(Cell[][] map, int x, int y, Texture texture) {...} <\/code><\/pre>\n<p>  \u041d\u0435 \u0445\u043e\u0447\u0443 \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0442\u044c \u043f\u043e\u0441\u0442 \u043a\u043e\u0434\u043e\u043c, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0432\u0435\u0441\u044c \u043c\u0435\u0442\u043e\u0434 update \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u0442\u044c \u043d\u0435 \u0431\u0443\u0434\u0443.<\/p>\n<p>  \u0410\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u0440\u0430\u0431\u043e\u0442\u044b \u043f\u0440\u043e\u0441\u0442: \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c \u043e\u0447\u0435\u0440\u0435\u0434\u044c \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439, \u0435\u0441\u043b\u0438 \u043e\u043d\u0430 \u043d\u0435 \u043f\u0443\u0441\u0442\u0430, \u0442\u043e \u0443\u043c\u0435\u043d\u044c\u0448\u0430\u0435\u043c \u0441\u0447\u0451\u0442\u0447\u0438\u043a \u0442\u0430\u043a\u0442\u0430, \u0435\u0441\u043b\u0438 \u043e\u043d \u043f\u0443\u0441\u0442, \u0437\u0430\u043d\u043e\u0432\u043e \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0432\u0430\u0435\u043c \u0435\u0433\u043e \u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u043c \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435 \u0438 \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u0435\u043c \u043e\u043a\u0440\u0435\u0441\u0442\u043d\u043e\u0441\u0442\u0438 \u043d\u0430 \u043a\u0430\u0440\u0442\u0435. \u0415\u0441\u043b\u0438 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439 \u043d\u0435\u0442 \u0442\u043e \u0441\u0442\u0440\u043e\u0438\u043c \u043d\u043e\u0432\u044b\u0439 \u043c\u0430\u0440\u0448\u0440\u0443\u0442, \u043d\u043e \u043e\u0431 \u044d\u0442\u043e\u043c \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0434\u0430\u043b\u044c\u0448\u0435, \u0430 \u0441\u0435\u0439\u0447\u0430\u0441 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0448\u0430\u0433 \u043f\u0435\u0440\u0441\u043e\u043d\u0430\u0436\u0430.<\/p>\n<p>  \u0414\u043b\u044f \u0443\u0434\u043e\u0431\u0441\u0442\u0432\u0430 \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u043c\u0435\u0442\u043e\u0434 \u0434\u043b\u044f \u0448\u0430\u0433\u0430 \u0432 \u043a\u0430\u0436\u0434\u0443\u044e \u0441\u0442\u043e\u0440\u043e\u043d\u0443:<\/p>\n<pre><code class=\"java\">private int goRight(Cell[][] map, int x, int y, Texture texture) {...}\/\/map - \u043f\u043e\u043b\u043d\u0430\u044f, \u0438\u0441\u0442\u0438\u043d\u043d\u0430\u044f \u043a\u0430\u0440\u0442\u0430 \u043c\u0438\u0440\u0430 private int goLeft(Cell[][] map, int x, int y, Texture texture) {...}\/\/x,y - \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0437\u0432\u0435\u0440\u044f \u043d\u0430 \u043d\u0435\u0439 private int goUp(Cell[][] map, int x, int y, Texture texture) {...} private int goDown(Cell[][] map, int x, int y, Texture texture) {...} <\/code><\/pre>\n<p>  \u00ab\u0428\u0430\u0433\u00bb \u0431\u0443\u0434\u0435\u0442 \u0441\u043e\u0441\u0442\u043e\u044f\u0442\u044c \u0438\u0437 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439.  <\/p>\n<ul>\n<li> \u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043d\u0435 \u043d\u0430\u0434\u043e \u043b\u0438 \u0440\u0430\u0441\u0448\u0438\u0440\u0438\u0442\u044c \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u0443\u044e \u043a\u0430\u0440\u0442\u0443<\/li>\n<li> \u0420\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435 \u043a\u0430\u0440\u0442\u044b(\u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043d\u043e\u0432\u043e\u0433\u043e \u0443\u0432\u0435\u043b\u0438\u0447\u0435\u043d\u043d\u043e\u0433\u043e \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u0438 \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0432 \u043d\u0435\u0433\u043e \u0441\u0442\u0430\u0440\u043e\u0439 \u043a\u0430\u0440\u0442\u044b)<\/li>\n<li> \u041f\u0435\u0440\u0435\u043c\u0435\u0449\u0435\u043d\u0438\u0435 \u043d \u043d\u043e\u0432\u0443\u044e \u043a\u043b\u0435\u0442\u043a\u0443<\/li>\n<li> \u0417\u0430\u043f\u0438\u0441\u044c \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 \u0432 mapX, mapY<\/li>\n<\/ul>\n<h5>\u041e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0430<\/h5>\n<p>  \u041d\u0430 \u043c\u043e\u0439 \u0432\u0437\u0433\u043b\u044f\u0434 \u0441\u0430\u043c\u043e\u0435 \u043f\u0440\u043e\u0441\u0442\u043e\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u2014 \u0432\u043e\u043b\u043d\u043e\u0432\u043e\u0439 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0442\u0440\u043e\u0438\u0442 \u043c\u0430\u0440\u0448\u0440\u0443\u0442 \u0432 \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u0443\u044e \u043f\u0443\u0441\u0442\u0443\u044e \u043a\u043b\u0435\u0442\u043a\u0443<br \/>  \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u044f \u0434\u043e\u0431\u0430\u0432\u0438\u043b \u043d\u043e\u0432\u044b\u0439 \u043a\u043b\u0430\u0441\u0441 WavePath \u0441\u043e \u0441\u0442\u0430\u0442\u0438\u0447\u043d\u044b\u043c \u043c\u0435\u0442\u043e\u0434\u043e\u043c:<\/p>\n<pre><code class=\"java\">public static Vector&lt;Action&gt; getPath(Cell[][] my_map, int x, int y, int nx,int ny){...}<\/code><\/pre>\n<p>  \u042d\u0442\u043e\u0442 \u043c\u0435\u0442\u043e\u0434 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0448\u0430\u0433\u043e\u0432 \u0434\u043b\u044f \u0434\u043e\u0441\u0442\u0438\u0436\u0435\u043d\u0438\u044f \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u043e \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u043e\u0439 \u0442\u043e\u0447\u043a\u0438.<\/p>\n<h4>\u0424\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0435 \u0448\u0442\u0440\u0438\u0445\u0438<\/h4>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c \u043e\u0441\u0442\u0430\u043b\u043e\u0441\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0440\u0438\u0441\u043e\u0432\u0442\u044c \u0432\u0441\u0451 \u044d\u0442\u043e \u043d\u0430 \u044d\u043a\u0440\u0430\u043d \u0438, \u043f\u0435\u0440\u0435\u0431\u0438\u0440\u0430\u044f \u043c\u0430\u0441\u0441\u0438\u0432 \u043a\u0430\u0440\u0442\u044b, \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u0442\u044c \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u043a\u043b\u0435\u0442\u043e\u043a<\/p>\n<pre><code class=\"java\">@Override \tpublic void render() { \t\tthis.update();\/\/\u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u043a\u0430\u0440\u0442\u044b  \t\tGdx.gl.glClearColor(0, 0, 0, 1); \t\tGdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);  \t\tbatch.setProjectionMatrix(camera.combined);  \t\tbatch.begin(); \t\tfor (int i = 0; i &lt; FIELD_SIZE; i++) \t\t\tfor (int j = 0; j &lt; FIELD_SIZE; j++) \t\t\t\tif(!(map[i][j] instanceof Wall))\/\/\u043d\u0435 \u0440\u0438\u0441\u0443\u0435\u043c \u0447\u0451\u0440\u043d\u044b\u0435 \u043a\u0432\u0430\u0434\u0440\u0430\u0442\u044b \u043d\u0430 \u0447\u0451\u0440\u043d\u043e\u043c \u0444\u043e\u043d\u0435 \t\t\t\tmap[i][j].draw(batch, i, j); \t\tbatch.end(); \t}  \tpublic void update() {  \t\tInput input = Gdx.input;  \t\tfor (int i = 0; i &lt; FIELD_SIZE; i++) \t\t\tfor (int j = 0; j &lt; FIELD_SIZE; j++) \t\t\t\tmap[i][j].update(map, i, j, texture);\/\/\u043e\u0431\u043d\u043e\u0432\u043b\u044f\u0435\u043c  \t\tif(input.isKeyPressed(Input.Keys.W))\/\/\u0441\u0434\u0432\u0438\u0433 \u043a\u0430\u043c\u0435\u0440\u044b, \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435, \u0432\u0440\u0430\u0449\u0435\u043d\u0438\u0435, \u0443\u0441\u043a\u043e\u0440\u0435\u043d\u0438\u0435 \t\t\tcamera.zoom-=Gdx.graphics.getDeltaTime(); \t\tif(input.isKeyPressed(Input.Keys.S)) \t\t\tcamera.zoom+=Gdx.graphics.getDeltaTime();  \t\tif(input.isKeyPressed(Input.Keys.Q)) \t\t\tcamera.rotate(Gdx.graphics.getDeltaTime()*90); \t\tif(input.isKeyPressed(Input.Keys.E)) \t\t\tcamera.rotate(-Gdx.graphics.getDeltaTime()*90); \t\t \t\tif(input.isKeyPressed(Input.Keys.CONTROL_LEFT)) \t\t\tUPDATE_TIME+=Gdx.graphics.getDeltaTime(); \t\tif(input.isKeyPressed(Input.Keys.SHIFT_LEFT)) \t\t\tUPDATE_TIME-=Gdx.graphics.getDeltaTime(); \t\t \t\tif(input.isKeyPressed(Input.Keys.LEFT)) \t\t\tcamera.translate(new Vector2(-Gdx.graphics.getDeltaTime()*50,0)); \t\tif(input.isKeyPressed(Input.Keys.RIGHT)) \t\t\tcamera.translate(new Vector2(Gdx.graphics.getDeltaTime()*50,0)); \t\tif(input.isKeyPressed(Input.Keys.UP)) \t\t\tcamera.translate(new Vector2(0,Gdx.graphics.getDeltaTime()*50)); \t\tif(input.isKeyPressed(Input.Keys.DOWN)) \t\t\tcamera.translate(new Vector2(0,-Gdx.graphics.getDeltaTime()*50)); \t\t \t\tif(input.isKeyPressed(Input.Keys.SPACE)){\/\/\u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u043a\u0430\u043c\u0435\u0440\u044b \t\t\tUPDATE_TIME = 1f; \t\t\tcamera = new OrthographicCamera(FIELD_SIZE, FIELD_SIZE); \t\t} \t\t \t\tcamera.update(); \t\t \t\tif (input.isTouched()) {\/\/\u0441\u0430\u0434\u0438\u043c \u0437\u0432\u0435\u0440\u044f \u043d\u0430 \u043f\u043e\u043b\u0435 \t\t\tfloat stepX = Gdx.graphics.getWidth() \/ FIELD_SIZE; \t\t\tfloat stepY = Gdx.graphics.getHeight() \/ FIELD_SIZE; \t\t\tfloat x = input.getX(); \t\t\tfloat y = input.getY(); \t\t\tfor (int i = 0; i &lt; FIELD_SIZE; i++) \t\t\t\tfor (int j = 0; j &lt; FIELD_SIZE; j++) { \t\t\t\t\tif (x &gt;= stepX * i && x &lt;= stepX * (i + 1) \t\t\t\t\t\t\t&& y &gt;= stepY * j && y &lt;= stepY * (j + 1)) \t\t\t\t\t\tif (map[i][FIELD_SIZE - j - 1] instanceof Empty) \t\t\t\t\t\t\tmap[i][FIELD_SIZE - j - 1] = new Unit(texture, map, \t\t\t\t\t\t\t\t\ti, j); \t\t\t\t} \t\t}  \t} <\/code><\/pre>\n<h4>\u0417\u0430\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435<\/h4>\n<p>  \u0417\u0430\u0440\u0430\u043d\u0435\u0435 \u043f\u0440\u043e\u0448\u0443 \u043f\u0440\u043e\u0449\u0435\u043d\u0438\u044f \u0437\u0430 \u043e\u0448\u0438\u0431\u043a\u0438, \u0438 \u043d\u0435 \u043f\u043e\u043b\u043d\u043e\u0435 \u0438\u0437\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u0430. \u0418\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u0438 \u043d\u0430 <a href=\"https:\/\/github.com\/opot\/Cellular_Machine\">github<\/a>.<\/p>\n<p>  \u0415\u0441\u043b\u0438 \u043a\u043e\u0433\u043e-\u0442\u043e \u0437\u0430\u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043e\u0432\u0430\u043b\u043e, \u043d\u0430\u043f\u0438\u0448\u0443 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0435\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\/224525\/\"> http:\/\/habrahabr.ru\/post\/224525\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div class=\"content html_format\">\n<h4>\u0418\u0434\u0435\u044f<\/h4>\n<p>  <\/p>\n<ol>\n<li> \u0418\u0433\u0440\u043e\u0432\u043e\u0435 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e \u2014 \u043a\u043b\u0435\u0442\u0447\u0430\u0442\u043e\u0435 \u043f\u043e\u043b\u0435 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u043d\u043e\u0435 \u0440\u0430\u043c\u043a\u043e\u0439<\/li>\n<li> \u0421\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u0442\u0438\u043f\u044b \u043a\u043b\u0435\u0442\u043e\u043a:\n<ul>\n<li> \u041f\u0443\u0441\u0442\u0430\u044f \u043a\u043b\u0435\u0442\u043a\u0430 \u2014 \u0431\u0435\u043b\u044b\u0439<\/li>\n<li> \u0421\u0442\u0435\u043d\u0430 \u2014 \u0447\u0451\u0440\u043d\u044b\u0439<\/li>\n<li> \u0417\u0432\u0435\u0440\u044c \u2014 \u043a\u0440\u0430\u0441\u043d\u044b\u0439<\/li>\n<li> \u0421\u043b\u0435\u0434 \u2014 \u043a\u043e\u0440\u0438\u0447\u043d\u0435\u0432\u044b\u0439<\/li>\n<li> \u0414\u043e\u043c \u2014 \u0437\u0435\u043b\u0451\u043d\u044b\u0439<\/li>\n<\/ul>\n<\/li>\n<li> \u041f\u0435\u0440\u0435\u043c\u0435\u0449\u0435\u043d\u0438\u0435 \u0437\u0432\u0435\u0440\u044f \u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u043d\u0435\u0438\u0441\u0447\u0435\u0437\u0430\u044e\u0449\u0438\u0439 \u0441\u043b\u0435\u0434<\/li>\n<li> \u041f\u0440\u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0435 \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043b\u0430\u0431\u0438\u0440\u0438\u043d\u0442<\/li>\n<li> \u0417\u0432\u0435\u0440\u044c \u0437\u043d\u0430\u0435\u0442 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u0441\u043e\u0441\u0435\u0434\u043d\u0438\u0445 \u043a\u043b\u0435\u0442\u043e\u043a \u0438 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u0438\u0438 \u044d\u0442\u043e\u0433\u043e \u0441\u0442\u0440\u043e\u0438\u0442 \u043a\u0430\u0440\u0442\u0443 \u043f\u0440\u0438 \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0435\u043d\u0438\u0438<\/li>\n<li> \u041f\u0440\u0438 \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0435\u043d\u0438\u0438 \u0437\u0432\u0435\u0440\u044c \u0440\u0430\u0441\u0445\u043e\u0434\u0443\u0435\u0442 \u0441\u0438\u043b\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u0432 \u0434\u043e\u043c\u0435(+5) \u0438\u043b\u0438 \u043d\u0430 \u043b\u044e\u0431\u043e\u0439 \u043a\u043b\u0435\u0442\u043a\u0435(+1)<\/li>\n<li> \u041f\u0440\u0438 \u0441\u0442\u043e\u043b\u043a\u043d\u043e\u0432\u0435\u043d\u0438\u0438 \u0437\u0432\u0435\u0440\u0438 \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u044f\u044e\u0442\u0441\u044f \u0432 \u0441\u0442\u0430\u0438(\u0434\u043e\u043c\u0430 \u043f\u0435\u0440\u0435\u043d\u043e\u0441\u044f\u0442\u0441\u044f \u0432 \u0441\u043e\u0441\u0435\u0434\u043d\u0438\u0435 \u0442\u043e\u0447\u043a\u0438), \u0435\u0441\u043b\u0438 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0437\u0432\u0435\u0440\u0435\u0439 \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e \u043e\u0442\u0434\u044b\u0445\u0430\u044e\u0442 \u0432 \u0434\u043e\u043c\u0435 \u0438\u0445 \u043a\u0430\u0440\u0442\u044b \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u044f\u044e\u0442\u0441\u044f<\/li>\n<li> (\u041d\u0435 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043e)\u0420\u0430\u0437\u043d\u044b\u0435 \u00ab\u043a\u043b\u0430\u043d\u044b\u00bb \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u044f\u044e\u0442\u0441\u044f \u0438\u043b\u0438 \u0432\u043e\u044e\u044e\u0442<\/li>\n<li> (\u041d\u0435 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043e)\u0413\u0435\u043d\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u0434\u043b\u044f \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0439 \u0437\u0432\u0435\u0440\u0435\u0439, \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u043e \u043f\u0435\u0440\u0435\u043c\u0435\u0448\u0438\u0432\u0430\u044e\u0449\u0438\u0435\u0441\u044f \u043f\u0440\u0438 \u0440\u0430\u0437\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u0438(+\u043c\u0443\u0442\u0430\u0446\u0438\u0438), \u0431\u043e\u043b\u0435\u0435 \u043f\u0435\u0440\u0441\u043f\u0435\u043a\u0442\u0438\u0432\u043d\u044b\u0439 \u0432\u0438\u0434 \u0432\u044b\u0436\u0438\u0432\u0435\u0442 \u0432 \u0432\u043e\u0439\u043d\u0430\u0445<\/li>\n<\/ol>\n<p>  <\/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-224525","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/224525","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=224525"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/224525\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=224525"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=224525"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=224525"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}