{"id":226235,"date":"2014-06-19T09:36:03","date_gmt":"2014-06-19T05:36:03","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=226235"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=226235","title":{"rendered":"<span class=\"post_title\">\u0410\u043a\u0441\u0438\u043e\u043c\u0430 \u2014 \u043f\u043e\u0432\u044b\u0448\u0430\u0435\u043c \u0433\u0440\u0430\u0434\u0443\u0441!<\/span>"},"content":{"rendered":"<div class=\"content html_format\">     \t<img decoding=\"async\" align=\"left\" src=\"http:\/\/habrastorage.org\/getpro\/habr\/post_images\/98d\/bc3\/51e\/98dbc351e979ce63c45242c7ddb798fd.jpg\"\/><i><b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\u0421\u0442\u0430\u0440\u044b\u0439 \u0441\u0435\u0440\u044b\u0439 \u043e\u0441\u043b\u0438\u043a \u0418\u0430-\u0418\u0430 \u0441\u0442\u043e\u044f\u043b \u043e\u0434\u0438\u043d-\u043e\u0434\u0438\u043d\u0435\u0448\u0435\u043d\u0435\u043a \u0432 \u0437\u0430\u0440\u043e\u0441\u0448\u0435\u043c \u0447\u0435\u0440\u0442\u043e\u043f\u043e\u043b\u043e\u0445\u043e\u043c \u0443\u0433\u043e\u043b\u043a\u0435 \u041b\u0435\u0441\u0430, \u0448\u0438\u0440\u043e\u043a\u043e \u0440\u0430\u0441\u0441\u0442\u0430\u0432\u0438\u0432 \u043f\u0435\u0440\u0435\u0434\u043d\u0438\u0435 \u043d\u043e\u0433\u0438 \u0438 \u0441\u0432\u0435\u0441\u0438\u0432 \u0433\u043e\u043b\u043e\u0432\u0443 \u043d\u0430\u0431\u043e\u043a, \u0438 \u0434\u0443\u043c\u0430\u043b \u043e \u0421\u0435\u0440\u044c\u0435\u0437\u043d\u044b\u0445 \u0412\u0435\u0449\u0430\u0445.<\/p>\n<p>  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\u0410. \u041c\u0438\u043b\u043d \u00ab\u0412\u0438\u043d\u043d\u0438-\u041f\u0443\u0445 \u0438 \u0432\u0441\u0435-\u0432\u0441\u0435-\u0432\u0441\u0435\u00bb<\/p>\n<p>  \u2014 \u0412\u0438\u0434\u0438\u0442\u0435 \u043e\u0441\u043b\u0438\u043a\u0430? \u2014 \u0441\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u044e \u044f \u043c\u0438\u043b\u0438\u0446\u0438\u043e\u043d\u0435\u0440\u0430. \u2014 \u0412\u043e\u043d \u0442\u0430\u043c \u043c\u0430\u043b\u0435\u043d\u044c\u043a\u0438\u0439 \u0441\u0435\u0440\u044b\u0439 \u043e\u0441\u043b\u0438\u043a\u2026 \u0410\u0440\u0442\u0438\u043a\u0443\u043b 2908. \u0426\u0435\u043d\u0430 \u0442\u0440\u0438\u0434\u0446\u0430\u0442\u044c \u0434\u0432\u0435 \u043a\u043e\u043f\u0435\u0439\u043a\u0438. \u0423 \u043d\u0435\u0433\u043e \u0432\u0435\u043b\u0438\u043a\u043e\u0435 \u0431\u0443\u0434\u0443\u0449\u0435\u0435.<br \/>  \u2014 \u0423 \u043e\u0441\u043b\u0438\u043a\u043e\u0432 \u044d\u0442\u043e \u0431\u044b\u0432\u0430\u0435\u0442, \u2014 \u0441\u043e\u0433\u043b\u0430\u0448\u0430\u0435\u0442\u0441\u044f \u043c\u0438\u043b\u0438\u0446\u0438\u043e\u043d\u0435\u0440. \u2014 \u0423 \u043d\u0438\u0445 \u0438\u043d\u043e\u0433\u0434\u0430 \u0431\u044b\u0432\u0430\u0435\u0442 \u043e\u0447\u0435\u043d\u044c \u0431\u043e\u043b\u044c\u0448\u043e\u0435 \u0431\u0443\u0434\u0443\u0449\u0435\u0435.<\/p>\n<p>  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\u0413\u0435\u043d\u0440\u0438\u0445 \u0410\u043b\u044c\u0442\u043e\u0432 \u00ab\u041e\u0441\u043b\u0438\u043a \u0438 \u0430\u043a\u0441\u0438\u043e\u043c\u0430\u00bb<br \/>  <\/b><\/i><\/p>\n<p>  \u0427\u0442\u043e \u0441\u0430\u043c\u043e\u0435 \u0441\u043b\u043e\u0436\u043d\u043e\u0435 \u0432 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u043d\u0430\u0441\u0442\u043e\u043b\u044c\u043d\u044b\u0445 \u0438\u0433\u0440? \u041e\u0447\u0435\u0432\u0438\u0434\u043d\u043e, \u043d\u0435 \u0430\u043d\u0438\u043c\u0430\u0446\u0438\u044f \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0435\u043d\u0438\u044f \u0444\u0438\u0433\u0443\u0440 \u043f\u043e \u0434\u043e\u0441\u043a\u0435. \u0421\u043b\u043e\u0436\u043d\u043e \u043f\u0440\u0438\u0434\u0443\u043c\u0430\u0442\u044c \u0440\u0430\u0437\u0443\u043c\u043d\u044b\u0435 \u0438 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0435 \u0438\u0433\u0440\u043e\u0432\u044b\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u0430. \u0411\u044b\u0432\u0430\u0435\u0442 \u043e\u0447\u0435\u043d\u044c \u0441\u043b\u043e\u0436\u043d\u043e \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0442\u044c \u0438\u0433\u0440\u043e\u0432\u043e\u0439 \u0431\u0430\u043b\u0430\u043d\u0441. \u0415\u0441\u043b\u0438 \u043c\u044b \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u043c\u0441\u044f \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u043d\u043e\u0439 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u043e\u0439, \u0437\u0430\u0447\u0430\u0441\u0442\u0443\u044e, \u0431\u0435\u0437\u0443\u043c\u043d\u043e \u0441\u043b\u043e\u0436\u043d\u043e \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 AI (\u0434\u043b\u044f \u0442\u0430\u043a\u0438\u0445 \u0438\u0433\u0440 \u043a\u0430\u043a \u0413\u043e \u0438\u043b\u0438 \u0421\u0451\u0433\u0438 \u044d\u0442\u0430 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u043d\u0435 \u0440\u0435\u0448\u0435\u043d\u0430 \u0434\u043e \u0441\u0438\u0445 \u043f\u043e\u0440). \u0418 \u0434\u0430\u0436\u0435 \u0435\u0441\u043b\u0438 \u043d\u0430\u043c \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0438\u0439 AI, \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u043f\u0440\u043e\u0434\u0435\u043b\u0430\u0442\u044c \u043e\u0447\u0435\u043d\u044c \u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u043e\u0431\u044a\u0435\u043c \u0440\u0430\u0431\u043e\u0442, \u0447\u0442\u043e\u0431\u044b \u043e\u0446\u0435\u043d\u0438\u0442\u044c \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u043e \u0435\u0433\u043e \u0440\u0430\u0431\u043e\u0442\u044b \u0438 \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u0438\u0437 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0445 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u0432 \u043d\u0430\u0438\u043b\u0443\u0447\u0448\u0438\u0439.<\/p>\n<p>  \u042f \u0445\u043e\u0447\u0443 \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u0442\u044c \u043e\u0431 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0435, \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u043c \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0443\u043f\u0440\u043e\u0441\u0442\u0438\u0442\u044c \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0432\u0441\u0435\u0445 \u044d\u0442\u0438\u0445 \u0432\u043e\u043f\u0440\u043e\u0441\u043e\u0432. <a href=\"http:\/\/www.zillions-of-games.com\/cgi-bin\/zilligames\/submissions.cgi?do=show;id=1452\">Axiom Development Kit<\/a> \u0437\u0430\u0434\u0443\u043c\u044b\u0432\u0430\u043b\u0430\u0441\u044c \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430\u043c\u0438 \u043a\u0430\u043a \u0441\u043f\u043e\u0441\u043e\u0431 \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u044f <a href=\"http:\/\/www.zillions-of-games.com\/\">Zillions of Games<\/a>. \u0412 \u0447\u0430\u0441\u0442\u043d\u043e\u0441\u0442\u0438, \u043e\u043d\u0430 \u043e\u0440\u0438\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0430 \u043d\u0430 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e \u0438\u0433\u0440, \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0445 \u0441 \u0437\u0430\u0445\u0432\u0430\u0442\u043e\u043c \u0442\u0435\u0440\u0440\u0438\u0442\u043e\u0440\u0438\u0438 (\u0442\u0430\u043a\u0438\u0445 \u043a\u0430\u043a \u0413\u043e), \u0441 \u043a\u043e\u0442\u043e\u0440\u044b\u043c\u0438 AI ZoG \u0441\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043e\u0447\u0435\u043d\u044c \u043f\u043b\u043e\u0445\u043e. \u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u0410\u043a\u0441\u0438\u043e\u043c\u0430 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0440\u0430\u0441\u0448\u0438\u0440\u044f\u0435\u0442 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 ZoG-\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432, \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044f \u043c\u0430\u0441\u0441\u0443 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0435\u0439, \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043d\u0435 \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u0435\u043c\u044b\u0445 \u0432 \u0440\u0430\u043c\u043a\u0430\u0445 \u0442\u0440\u0430\u0434\u0438\u0446\u0438\u043e\u043d\u043d\u043e\u0433\u043e ZRF (\u044f\u0437\u044b\u043a\u0430 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u043f\u0440\u0430\u0432\u0438\u043b). \u041f\u0440\u0438 \u0432\u0441\u0451\u043c \u044d\u0442\u043e\u043c, \u0410\u043a\u0441\u0438\u043e\u043c\u0430 \u043c\u043e\u0436\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441\u043e\u0432\u0435\u0440\u0448\u0435\u043d\u043d\u043e \u0441\u0430\u043c\u043e\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u043e, \u0434\u0430\u0436\u0435 \u0435\u0441\u043b\u0438 ZoG \u043d\u0430 \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440 \u043d\u0438\u043a\u043e\u0433\u0434\u0430 \u043d\u0435 \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u043b\u0441\u044f \u0438 \u043d\u0435 \u043f\u043e\u043a\u0443\u043f\u0430\u043b\u0441\u044f. \u041d\u043e, \u043e\u0431\u043e \u0432\u0441\u0451\u043c \u043f\u043e \u043f\u043e\u0440\u044f\u0434\u043a\u0443\u2026<br \/>  <a name=\"habracut\"><\/a>  <\/p>\n<h4>\u041f\u043e \u043e\u0431\u0440\u0430\u0437\u0443 \u0438 \u043f\u043e\u0434\u043e\u0431\u0438\u044e<\/h4>\n<p>  \u042f \u0443\u0436\u0435 <a href=\"http:\/\/habrahabr.ru\/post\/221779\/\">\u043f\u0438\u0441\u0430\u043b<\/a> \u043e \u0442\u043e\u043c, \u0447\u0442\u043e \u0443 ZoG \u0438\u043c\u0435\u0435\u0442\u0441\u044f \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043a\u043e\u0432. \u041a \u0441\u0447\u0430\u0441\u0442\u044c\u044e, \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u0438\u043b\u0438 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0438\u0439 \u0441\u043f\u0440\u0430\u0432\u0438\u0442\u044c\u0441\u044f \u0441 \u0447\u0430\u0441\u0442\u044c\u044e \u0438\u0437 \u043d\u0438\u0445. \u041c\u043e\u0434\u0443\u043b\u044c \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f (engine) \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0441\u043e\u0431\u043e\u0439 \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0438 \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u043c\u0443\u044e \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443 (DLL), \u0431\u0435\u0440\u0443\u0449\u0443\u044e \u043f\u043e\u0434 \u0441\u0432\u043e\u0451 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0432\u0441\u0435 \u0430\u0441\u043f\u0435\u043a\u0442\u044b \u0438\u0433\u0440\u044b, \u043a\u0440\u043e\u043c\u0435 \u0435\u0451 \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438. \u0412\u043e\u0442 <a href=\"http:\/\/www.zillions-of-games.com\/progsample.html\">\u0437\u0434\u0435\u0441\u044c<\/a> \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043f\u0440\u0438\u043c\u0435\u0440 \u0442\u0430\u043a\u043e\u0433\u043e \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f.<\/p>\n<p>  \u0421\u0430\u043c\u043e\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0433\u043e \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f \u043c\u043e\u0436\u0435\u0442 \u043e\u043a\u0430\u0437\u0430\u0442\u044c\u0441\u044f \u0432\u0435\u0441\u044c\u043c\u0430 \u0442\u0440\u0443\u0434\u043e\u0451\u043c\u043a\u043e\u0439. \u041f\u0440\u0438\u0434\u0451\u0442\u0441\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0442\u044c AI (\u0441\u043a\u043e\u0440\u0435\u0435 \u0432\u0441\u0435\u0433\u043e \u043d\u0430 C++), \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443, \u043f\u0440\u0438 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0438 engine, \u0448\u0442\u0430\u0442\u043d\u044b\u0439 AI ZoG \u043e\u0442\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f. Axiom \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0441\u043e\u0431\u043e\u0439 <b>\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u0443\u0435\u043c\u044b\u0439<\/b> engine, \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u044e\u0449\u0438\u0439 \u0442\u0430\u043a\u0438\u0435 \u0441\u043b\u043e\u0436\u043d\u044b\u0435 \u0434\u043b\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430 \u0432\u0435\u0449\u0438, \u043a\u0430\u043a \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u044b AI \u0438 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0449\u0438\u0439 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0441\u043e\u0441\u0440\u0435\u0434\u043e\u0442\u043e\u0447\u0438\u0442\u044c\u0441\u044f \u043d\u0430 \u0438\u0433\u0440\u043e\u0432\u043e\u0439 \u043b\u043e\u0433\u0438\u043a\u0435. <\/p>\n<p>  \u0414\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0439 ZRF-\u0444\u0430\u0439\u043b:<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 engine<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"lisp\">(version &quot;2.0&quot;)  (game    (title &quot;Ur&quot;)     (engine &quot;..\/Axiom\/Ur\/axiom.dll&quot;)     (option &quot;animate captures&quot; false)    (option &quot;animate drops&quot; false)    (option &quot;show moves list&quot; false)    (option &quot;pass turn&quot; forced)    (option &quot;highlight goals&quot; false)    (option &quot;prevent flipping&quot; true)    (option &quot;recycle captures&quot; true)     (drop-sound &quot;Audio\/Dice_cup.wav&quot;)    (move-sound &quot;Audio\/Clack.wav&quot;)    (capture-sound &quot;&quot;)     (players Black White ?Dice)     (turn-order White ?Dice ?Dice ?Dice ?Dice Black ?Dice ?Dice ?Dice ?Dice)     (board        (image &quot;Images\\Ur\\board.bmp&quot;)       (grid          (start-rectangle -503 -13 -442 79)          (dimensions              (&quot;a\/b\/c\/d\/e\/f\/g\/h\/i\/j\/k\/l\/m\/n\/o\/p\/q&quot; (67 0)) ; files              (&quot;5\/4\/3\/2\/1&quot; (0 66)) ; ranks          )           )    )     (board-setup           (?Dice (wdice q4) (bdice q3 q2) (lock q1) )           (Black (init i5 j5 k5 l5 m5 n5 o5) )           (White (init i1 j1 k1 l1 m1 n1 o1) )    )     (piece \t  (name lock)           (image ?Dice &quot;Images\\Ur\\invisible.bmp&quot;                  Black &quot;Images\\Ur\\invisible.bmp&quot;                  White &quot;Images\\Ur\\invisible.bmp&quot;)    )    (piece \t  (name  init)           (image Black &quot;Images\\Ur\\binit.bmp&quot;                  White &quot;Images\\Ur\\winit.bmp&quot;)    )    (piece \t  (name  prom)           (image Black &quot;Images\\Ur\\bprom.bmp&quot;                  White &quot;Images\\Ur\\wprom.bmp&quot;)    )    (piece \t  (name wdice)           (image ?Dice &quot;Images\\Ur\\wdice.bmp&quot;)    )    (piece \t  (name bdice)           (image ?Dice &quot;Images\\Ur\\bdice.bmp&quot;)    )     ; The following dummy piece is required in order to placate the Zillions engine.    ; It appears as though Zillions must find at least one &quot;moves&quot; keyword somewhere    ; in the zrf in order for it to be happy and thus allow &quot;moves&quot; to work correctly.    (piece (name Dummy) (dummy) (moves (from))) ) <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  \u0417\u0434\u0435\u0441\u044c \u043e\u0441\u0442\u0430\u043b\u043e\u0441\u044c \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0438\u0433\u0440\u043e\u043a\u043e\u0432, \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0445\u043e\u0434\u043e\u0432, \u0444\u0438\u0433\u0443\u0440, \u043d\u043e \u043d\u0435\u0442 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u043f\u0440\u0430\u0432\u0438\u043b, \u043f\u043e \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u0445\u043e\u0434\u044f\u0442 \u0444\u0438\u0433\u0443\u0440\u044b. \u0422\u0430\u043a\u0436\u0435 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u044e\u0442 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0439 \u043d\u0430 \u0434\u043e\u0441\u043a\u0435, \u0438\u0433\u0440\u043e\u0432\u044b\u0445 \u0437\u043e\u043d, \u0443\u0441\u043b\u043e\u0432\u0438\u0439 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u044f \u0438\u0433\u0440\u044b \u0438 \u0432\u0441\u0435\u0433\u043e \u043f\u0440\u043e\u0447\u0435\u0433\u043e, \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u043e\u0433\u043e \u0441 \u0438\u0433\u0440\u043e\u0432\u044b\u043c\u0438 \u043f\u0440\u0430\u0432\u0438\u043b\u0430\u043c\u0438. \u0412\u0441\u0451 \u044d\u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c\u0441\u044f \u0432 \u0441\u043a\u0440\u0438\u043f\u0442\u0430\u0445 \u0410\u043a\u0441\u0438\u043e\u043c\u044b. \u0413\u0440\u0443\u0441\u0442\u043d\u044b\u043c \u043c\u043e\u043c\u0435\u043d\u0442\u043e\u043c \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0442\u043e, \u0447\u0442\u043e \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f ZoG \u0441 engine \u043d\u0435 \u043f\u0440\u0435\u0434\u0443\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0435\u0442 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0435\u0439\u0441\u044f \u0432 ZRF-\u0444\u0430\u0439\u043b\u0435. \u042d\u0442\u043e \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442, \u0447\u0442\u043e \u0432\u0441\u0435 \u044d\u0442\u0438 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u043f\u0440\u0438\u0434\u0451\u0442\u0441\u044f \u043f\u0440\u043e\u0434\u0443\u0431\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432 \u0441\u043a\u0440\u0438\u043f\u0442\u0430\u0445 Axiom.<\/p>\n<p>  \u041a \u0441\u0447\u0430\u0441\u0442\u044c\u044e, \u0432 \u0441\u043e\u0441\u0442\u0430\u0432\u0435 Axiom Development Kit \u043f\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0443\u0442\u0438\u043b\u0438\u0442\u0430, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0430\u044f \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u044d\u0442\u043e\u0442 \u043f\u0440\u043e\u0446\u0435\u0441\u0441. ZRF Converter \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u043a\u0430\u043f\u0440\u0438\u0437\u0435\u043d \u0432 \u0440\u0430\u0431\u043e\u0442\u0435. \u0415\u0441\u043b\u0438 \u0435\u043c\u0443 \u0447\u0442\u043e-\u0442\u043e \u043d\u0435 \u043f\u043e\u043d\u0440\u0430\u0432\u0438\u043b\u043e\u0441\u044c \u0432 ZRF-\u0444\u0430\u0439\u043b\u0435 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0434\u043e\u0441\u043a\u0438 \u0432\u044b\u043d\u0435\u0441\u0435\u043d\u043d\u043e\u0435 \u0432 \u043c\u0430\u043a\u0440\u043e\u0441), \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0430\u0446\u0438\u0438 \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0441 \u0437\u0430\u0433\u0430\u0434\u043e\u0447\u043d\u043e\u0439 \u0434\u0438\u0430\u0433\u043d\u043e\u0441\u0442\u0438\u043a\u043e\u0439, \u0437\u0430\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0449\u0435\u0439 \u043f\u043e\u043b\u043e\u043c\u0430\u0442\u044c \u0433\u043e\u043b\u043e\u0432\u0443. \u0415\u0441\u043b\u0438 \u0432\u0441\u0451 \u043f\u0440\u043e\u0448\u043b\u043e \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u043e, \u043d\u0430 \u0432\u044b\u0445\u043e\u0434\u0435 \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435:<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">Ur.4th<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code>{board \t{position}\ta5 \t{position}\tb5 \t{position}\tc5 \t{position}\td5 \t{position}\te5 \t{position}\tf5 \t{position}\tg5 \t{position}\th5 \t{position}\ti5 \t{position}\tj5 \t{position}\tk5 \t{position}\tl5 \t{position}\tm5 \t{position}\tn5 \t{position}\to5 \t{position}\tp5 \t{position}\tq5 \t{position}\ta4 \t{position}\tb4 \t{position}\tc4 \t{position}\td4 \t{position}\te4 \t{position}\tf4 \t{position}\tg4 \t{position}\th4 \t{position}\ti4 \t{position}\tj4 \t{position}\tk4 \t{position}\tl4 \t{position}\tm4 \t{position}\tn4 \t{position}\to4 \t{position}\tp4 \t{position}\tq4 \t{position}\ta3 \t{position}\tb3 \t{position}\tc3 \t{position}\td3 \t{position}\te3 \t{position}\tf3 \t{position}\tg3 \t{position}\th3 \t{position}\ti3 \t{position}\tj3 \t{position}\tk3 \t{position}\tl3 \t{position}\tm3 \t{position}\tn3 \t{position}\to3 \t{position}\tp3 \t{position}\tq3 \t{position}\ta2 \t{position}\tb2 \t{position}\tc2 \t{position}\td2 \t{position}\te2 \t{position}\tf2 \t{position}\tg2 \t{position}\th2 \t{position}\ti2 \t{position}\tj2 \t{position}\tk2 \t{position}\tl2 \t{position}\tm2 \t{position}\tn2 \t{position}\to2 \t{position}\tp2 \t{position}\tq2 \t{position}\ta1 \t{position}\tb1 \t{position}\tc1 \t{position}\td1 \t{position}\te1 \t{position}\tf1 \t{position}\tg1 \t{position}\th1 \t{position}\ti1 \t{position}\tj1 \t{position}\tk1 \t{position}\tl1 \t{position}\tm1 \t{position}\tn1 \t{position}\to1 \t{position}\tp1 \t{position}\tq1 board}  {players \t{player}\tBlack \t{player}\tWhite \t{player}\t?Dice\t{random} players}  {pieces \t{piece}\t\tlock \t{piece}\t\tinit \t{piece}\t\tprom \t{piece}\t\twdice \t{piece}\t\tbdice \t{piece}\t\tDummy pieces}  {turn-order \t{repeat} \t{turn}\tWhite \t{turn}\t?Dice \t{turn}\t?Dice \t{turn}\t?Dice \t{turn}\t?Dice \t{turn}\tBlack \t{turn}\t?Dice \t{turn}\t?Dice \t{turn}\t?Dice \t{turn}\t?Dice turn-order}  {board-setup \t{setup}\t?Dice wdice q4 \t{setup}\t?Dice bdice q3 \t{setup}\t?Dice bdice q2 \t{setup}\t?Dice lock q1  \t{setup}\tBlack init i5 \t{setup}\tBlack init j5 \t{setup}\tBlack init k5 \t{setup}\tBlack init l5 \t{setup}\tBlack init m5 \t{setup}\tBlack init n5 \t{setup}\tBlack init o5  \t{setup}\tWhite init i1 \t{setup}\tWhite init j1 \t{setup}\tWhite init k1 \t{setup}\tWhite init l1 \t{setup}\tWhite init m1 \t{setup}\tWhite init n1 \t{setup}\tWhite init o1 board-setup} <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  \u0417\u0434\u0435\u0441\u044c \u043d\u0430\u0441 \u043f\u043e\u0434\u0436\u0438\u0434\u0430\u044e\u0442 \u043f\u0435\u0440\u0432\u044b\u0435 \u0441\u044e\u0440\u043f\u0440\u0438\u0437\u044b. Axiom \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c \u0434\u043e\u0441\u043a\u0443 \u0431\u043e\u043b\u0435\u0435 \u043a\u043e\u043c\u043f\u0430\u043a\u0442\u043d\u043e, \u043d\u043e \u0441 \u0441\u0435\u0440\u044c\u0451\u0437\u043d\u044b\u043c\u0438 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f\u043c\u0438. \u041a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f <b>grid<\/b> \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u044f\u043c\u043e\u0443\u0433\u043e\u043b\u044c\u043d\u044b\u0435 \u0434\u043e\u0441\u043a\u0438 \u0441\u043e \u00ab\u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u043c\u00bb \u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u044f\u0447\u0435\u0435\u043a (\u043a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u0432 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0438 \u0434\u043e\u0441\u043a\u0438 \u043c\u043e\u0436\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u0438\u043d <b>grid<\/b>). \u0412 \u0441\u043b\u0443\u0447\u0430\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u0434\u043e\u0441\u043e\u043a \u0431\u043e\u043b\u0435\u0435 \u0441\u043b\u043e\u0436\u043d\u043e\u0439 \u0444\u043e\u0440\u043c\u044b (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u0442\u0440\u0451\u0445\u043c\u0435\u0440\u043d\u044b\u0445), \u043f\u0440\u0438\u0434\u0451\u0442\u0441\u044f \u044f\u0432\u043d\u043e \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c \u043a\u0430\u0436\u0434\u0443\u044e \u043f\u043e\u0437\u0438\u0446\u0438\u044e \u0442\u0430\u043a, \u043a\u0430\u043a \u044d\u0442\u043e \u0441\u0434\u0435\u043b\u0430\u043b ZRF Converter. \u041f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443, \u0432 \u043d\u0430\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435, \u0432\u0441\u0435 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f \u0441\u043e\u0431\u043b\u044e\u0434\u0430\u044e\u0442\u0441\u044f (\u043c\u043d\u0435 \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u043f\u0435\u0440\u0435\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u0442\u044c \u0441\u0442\u043e\u043b\u0431\u0446\u044b \u0438 \u0441\u0442\u0440\u043e\u043a\u0438 \u0434\u043e\u0441\u043a\u0438, \u043f\u043e \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044e \u0441 ZRF-\u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0435\u0439), \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u0431\u043e\u043b\u0435\u0435 \u043a\u043e\u043c\u043f\u0430\u043a\u0442\u043d\u0443\u044e \u0437\u0430\u043f\u0438\u0441\u044c:<\/p>\n<pre><code>{board \t5 17 \t\t{grid} board} <\/code><\/pre>\n<p>  \u0414\u0430\u043b\u0435\u0435, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f, \u043f\u043e \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u0441\u043c\u043e\u0433\u0443\u0442 \u0434\u0432\u0438\u0433\u0430\u0442\u044c\u0441\u044f \u0444\u0438\u0433\u0443\u0440\u044b. \u0412 \u0442\u0430\u043a\u0438\u0445 \u0438\u0433\u0440\u0430\u0445 \u043a\u0430\u043a \u0428\u0430\u0445\u043c\u0430\u0442\u044b \u0438\u043b\u0438 \u0428\u0430\u0448\u043a\u0438, \u043c\u044b \u043c\u043e\u0433\u043b\u0438 \u0431\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043a\u043e\u043c\u043f\u0430\u043a\u0442\u043d\u0443\u044e \u0437\u0430\u043f\u0438\u0441\u044c, \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u044e\u0449\u0443\u044e \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0432 \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u0445 \u043f\u0440\u0438\u0440\u0430\u0449\u0435\u043d\u0438\u044f \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442:<\/p>\n<pre><code>{directions    -1  0 {direction}  North     1  0 {direction}  South     0  1 {direction}  East     0 -1 {direction}  West    -1  1 {direction}  Northeast     1  1 {direction}  Southeast    -1 -1 {direction}  Northwest     1 -1 {direction}  Southwest  directions} <\/code><\/pre>\n<p>  \u0423\u0432\u044b, \u0432 \u043d\u0430\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435, \u044d\u0442\u043e\u0442 \u0441\u043f\u043e\u0441\u043e\u0431 \u043d\u0435 \u043f\u043e\u0434\u0445\u043e\u0434\u0438\u0442. \u041f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0442\u0440\u0430\u0435\u043a\u0442\u043e\u0440\u0438\u044f \u0434\u0432\u0438\u0436\u0435\u043d\u0438\u044f \u0444\u0438\u0448\u0435\u043a \u043f\u043e \u0434\u043e\u0441\u043a\u0435, \u0432 \u0438\u0433\u0440\u0435 \u0423\u0440, \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u043f\u0440\u0438\u0447\u0443\u0434\u043b\u0438\u0432\u0430, \u043f\u0440\u0438\u0434\u0451\u0442\u0441\u044f \u044f\u0432\u043d\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0442\u044c \u0441\u0432\u044f\u0437\u0438 \u043c\u0435\u0436\u0434\u0443 \u043f\u043e\u0437\u0438\u0446\u0438\u044f\u043c\u0438:<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code>{directions \t( Anext ) \t{link}\t\tAnext i1 l2 \t{link}\t\tAnext j1 l2 \t{link}\t\tAnext k1 l2 \t{link}\t\tAnext l1 l2 \t{link}\t\tAnext m1 l2 \t{link}\t\tAnext n1 l2 \t{link}\t\tAnext o1 l2 \t{link}\t\tAnext l2 k2 \t{link}\t\tAnext k2 j2 \t{link}\t\tAnext j2 i2 \t{link}\t\tAnext i2 i3 \t{link}\t\tAnext i3 j3 \t{link}\t\tAnext j3 k3 \t{link}\t\tAnext k3 l3 \t{link}\t\tAnext l3 m3 \t{link}\t\tAnext m3 n3 \t{link}\t\tAnext n3 o3 \t{link}\t\tAnext o3 o2 \t{link}\t\tAnext o2 p2 \t{link}\t\tAnext p2 p3 \t{link}\t\tAnext p3 p4 \t{link}\t\tAnext p4 o4 \t{link}\t\tAnext o4 o3  \t( Bnext ) \t{link}\t\tBnext i5 l4 \t{link}\t\tBnext j5 l4 \t{link}\t\tBnext k5 l4 \t{link}\t\tBnext l5 l4 \t{link}\t\tBnext m5 l4 \t{link}\t\tBnext n5 l4 \t{link}\t\tBnext o5 l4 \t{link}\t\tBnext l4 k4 \t{link}\t\tBnext k4 j4 \t{link}\t\tBnext j4 i4 \t{link}\t\tBnext i4 i3 \t{link}\t\tBnext i3 j3 \t{link}\t\tBnext j3 k3 \t{link}\t\tBnext k3 l3 \t{link}\t\tBnext l3 m3 \t{link}\t\tBnext m3 n3 \t{link}\t\tBnext n3 o3 \t{link}\t\tBnext o3 o4 \t{link}\t\tBnext o4 p4 \t{link}\t\tBnext p4 p3 \t{link}\t\tBnext p3 p2 \t{link}\t\tBnext p2 o2 \t{link}\t\tBnext o2 o3  \t( Cnext ) \t{link}\t\tCnext p3 p4 \t{link}\t\tCnext p4 o4 \t{link}\t\tCnext o4 o3 \t{link}\t\tCnext o3 n3 \t{link}\t\tCnext n3 m3 \t{link}\t\tCnext m3 l3 \t{link}\t\tCnext l3 k3 \t{link}\t\tCnext k3 j3 \t{link}\t\tCnext j3 i3 \t{link}\t\tCnext i3 h3  \t( Dnext ) \t{link}\t\tDnext p3 p2 \t{link}\t\tDnext p2 o2 \t{link}\t\tDnext o2 o3 \t{link}\t\tDnext o3 n3 \t{link}\t\tDnext n3 m3 \t{link}\t\tDnext m3 l3 \t{link}\t\tDnext l3 k3 \t{link}\t\tDnext k3 j3 \t{link}\t\tDnext j3 i3 \t{link}\t\tDnext i3 h3 directions} <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  \u0427\u0451\u0440\u043d\u044b\u0435 \u0438 \u0431\u0435\u043b\u044b\u0435 \u0444\u0438\u0448\u043a\u0438 \u0434\u0432\u0438\u0436\u0443\u0442\u0441\u044f \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u043c\u0438 \u043f\u0443\u0442\u044f\u043c\u0438, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 <b>Anext<\/b> \u0434\u043b\u044f \u0431\u0435\u043b\u044b\u0445 \u0438 <b>Bnext<\/b> \u0434\u043b\u044f \u0447\u0451\u0440\u043d\u044b\u0445 \u0444\u0438\u0433\u0443\u0440. \u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u0434\u043b\u044f \u0444\u0438\u0448\u0435\u043a, \u043f\u0440\u043e\u0448\u0435\u0434\u0448\u0438\u0445 \u0447\u0435\u0440\u0435\u0437 \u043f\u043e\u043b\u0435 \u043f\u0440\u0435\u0432\u0440\u0430\u0449\u0435\u043d\u0438\u044f, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0434\u043e\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f <b>Cnext<\/b> \u0438 <b>Dnext<\/b>. \u0415\u0441\u043b\u0438 \u044d\u0442\u043e\u0433\u043e \u043d\u0435 \u0441\u0434\u0435\u043b\u0430\u0442\u044c, \u043d\u0430 \u043f\u043e\u043b\u0435 <b>o3<\/b> \u043e\u0431\u0440\u0430\u0437\u0443\u0435\u0442\u0441\u044f \u0440\u0430\u0437\u0432\u0438\u043b\u043a\u0430 \u0438 \u0432\u0441\u0435 \u0444\u0438\u0448\u043a\u0438 \u0431\u0443\u0434\u0443\u0442 \u043a\u0440\u0443\u0442\u0438\u0442\u044c\u0441\u044f \u043f\u043e \u043a\u0440\u0443\u0433\u0443 \u0432 \u043c\u0430\u043b\u043e\u043c \u0431\u043b\u043e\u043a\u0435, \u0432\u044b\u0431\u0438\u0440\u0430\u044f \u043f\u0435\u0440\u0432\u044b\u0439 \u0438\u0437 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0445 \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u043e\u0432.<\/p>\n<pre><code>{symmetries  \tBlack\t\t{symmetry} Anext Bnext \tBlack\t\t{symmetry} Cnext Dnext symmetries} <\/code><\/pre>\n<p>  \u042d\u0442\u0430 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u00ab\u0441\u0438\u043c\u043c\u0435\u0442\u0440\u0438\u044e\u00bb. \u0425\u043e\u0440\u043e\u0448\u0435\u0439 \u0438\u043b\u043b\u044e\u0441\u0442\u0440\u0430\u0446\u0438\u0435\u0439 \u043c\u043e\u0436\u0435\u0442 \u0441\u043b\u0443\u0436\u0438\u0442\u044c \u0434\u0432\u0438\u0436\u0435\u043d\u0438\u0435 \u043f\u0435\u0448\u0435\u043a \u0432 \u0428\u0430\u0445\u043c\u0430\u0442\u0430\u0445. \u041f\u0435\u0448\u043a\u0438 \u0432\u0441\u0435\u0433\u0434\u0430 \u0434\u0432\u0438\u0433\u0430\u044e\u0442\u0441\u044f \u00ab\u0432\u043f\u0435\u0440\u0451\u0434\u00bb, \u043d\u043e \u0434\u043b\u044f \u0431\u0435\u043b\u044b\u0445 \u044d\u0442\u043e \u0434\u0432\u0438\u0436\u0435\u043d\u0438\u0435 \u0432\u0432\u0435\u0440\u0445 \u043f\u043e \u0434\u043e\u0441\u043a\u0435, \u0430 \u0434\u043b\u044f \u0447\u0451\u0440\u043d\u044b\u0445 \u2014 \u0432 \u043f\u0440\u043e\u0442\u0438\u0432\u043e\u043f\u043e\u043b\u043e\u0436\u043d\u043e\u043c \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0438. \u0421\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0442 \u0438 \u0431\u043e\u043b\u0435\u0435 \u0441\u043b\u043e\u0436\u043d\u044b\u0435 \u0444\u043e\u0440\u043c\u044b \u0441\u0438\u043c\u043c\u0435\u0442\u0440\u0438\u0438. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u0432 \u0447\u0435\u0442\u044b\u0440\u0451\u0445\u0441\u0442\u043e\u0440\u043e\u043d\u043d\u0438\u0445 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0430\u0445 \u0428\u0430\u0445\u043c\u0430\u0442, \u0434\u0432\u0438\u0436\u0435\u043d\u0438\u0435 \u00ab\u0432\u043f\u0435\u0440\u0451\u0434\u00bb, \u0432 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u0446\u0432\u0435\u0442\u0430, \u043c\u043e\u0436\u0435\u0442 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442\u044c \u0432 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0438 \u043b\u044e\u0431\u043e\u0439 \u0438\u0437 \u0447\u0435\u0442\u044b\u0440\u0451\u0445 \u00ab\u0441\u0442\u043e\u0440\u043e\u043d \u0441\u0432\u0435\u0442\u0430\u00bb. \u041e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0432 \u00ab\u0441\u0438\u043c\u043c\u0435\u0442\u0440\u0438\u044e\u00bb, \u043c\u044b c\u043c\u043e\u0436\u0435\u043c \u0432\u0441\u0435\u0433\u0434\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043e\u0434\u043d\u043e \u0438 \u0442\u043e\u0436\u0435 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 <b>Anext<\/b>), \u043d\u0435 \u043e\u0431\u0440\u0430\u0449\u0430\u044f \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u044f \u043d\u0430 \u0446\u0432\u0435\u0442 \u0444\u0438\u0433\u0443\u0440\u044b. \u0414\u043b\u044f \u0447\u0451\u0440\u043d\u044b\u0445, \u043e\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u043e \u0432 \u0441\u0438\u043c\u043c\u0435\u0442\u0440\u0438\u0447\u043d\u043e\u0435 (<b>Bnext<\/b>).<\/p>\n<h4>\u0424\u043e\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f<\/h4>\n<p>  \u041c\u043e\u0451 \u0437\u043d\u0430\u043a\u043e\u043c\u0441\u0442\u0432\u043e \u0441 <a href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%A4%D0%BE%D1%80%D1%82_(%D1%8F%D0%B7%D1%8B%D0%BA_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F)\">\u0424\u043e\u0440\u0442\u043e\u043c<\/a> \u0431\u044b\u043b\u043e \u0440\u0430\u043d\u043d\u0438\u043c, \u043d\u043e \u043e\u0447\u0435\u043d\u044c \u0434\u043e\u043b\u0433\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u043e\u0441\u0442\u0430\u0432\u0430\u043b\u043e\u0441\u044c \u0432\u0435\u0441\u044c\u043c\u0430 \u0448\u0430\u043f\u043e\u0447\u043d\u044b\u043c. \u0412\u043f\u0435\u0440\u0432\u044b\u0435 \u044f \u0443\u0432\u0438\u0434\u0435\u043b \u0424\u043e\u0440\u0442 \u0432\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0430 \u0411\u041a-\u0448\u0435\u043a \u0438 \u041c\u0438\u043a\u0440\u043e\u0448. \u0423 \u043c\u043e\u0435\u0433\u043e \u0434\u0440\u0443\u0433\u0430 \u0431\u044b\u043b <a href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%92%D0%B5%D0%BA%D1%82%D0%BE%D1%80-06%D0%A6\">\u0412\u0435\u043a\u0442\u043e\u0440 06\u0426<\/a>, \u043e\u0442\u0442\u0430\u0449\u0438\u0442\u044c \u043e\u0442 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043d\u0430\u0441 \u0443\u0434\u0430\u0432\u0430\u043b\u043e\u0441\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0437\u0430 \u0443\u0448\u0438, \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u043d\u044b\u043c\u0438 \u0443\u0441\u0438\u043b\u0438\u044f\u043c\u0438 \u0432\u0441\u0435\u0445 \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u0435\u0439. \u041a \u0412\u0435\u043a\u0442\u043e\u0440\u0443, \u043f\u0435\u0440\u0438\u043e\u0434\u0438\u0447\u0435\u0441\u043a\u0438, \u0434\u043e\u043a\u0443\u043f\u0430\u043b\u0438\u0441\u044c \u043a\u0430\u0441\u0441\u0435\u0442\u044b \u0441 \u0438\u0433\u0440\u0430\u043c\u0438, \u0430 \u043d\u0430 \u043d\u0438\u0445, \u0432\u0440\u0435\u043c\u044f \u043e\u0442 \u0432\u0440\u0435\u043c\u0435\u043d\u0438, \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0438\u0432\u0430\u043b\u0430\u0441\u044c \u00ab\u043d\u0435\u0443\u0447\u0442\u0435\u043d\u043a\u0430\u00bb. \u0421\u0440\u0435\u0434\u0438 \u0442\u0430\u043a\u043e\u0439 \u043d\u0435\u0443\u0447\u0442\u0435\u043d\u043a\u0438, \u043c\u044b \u0438 \u043d\u0430\u0448\u043b\u0438 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e \u0424\u043e\u0440\u0442\u0430. \u0412\u0432\u043e\u043b\u044e \u043d\u0430\u0438\u0433\u0440\u0430\u0432\u0448\u0438\u0441\u044c \u0441\u043e \u0441\u0442\u0435\u043a\u043e\u043c, \u043c\u044b \u0441 \u0434\u0440\u0443\u0433\u043e\u043c \u0441\u043a\u0430\u0437\u0430\u043b\u0438 \u00ab\u0430\u0433\u0430\u00bb, \u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043b\u0438 \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u0438\u0435 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0441\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f \u0432 \u043d\u043e\u043b\u044c (\u0435\u0441\u0442\u044c \u0432 \u0424\u043e\u0440\u0442\u0435 \u0442\u0430\u043a\u0430\u044f \u0437\u0430\u0431\u0430\u0432\u043d\u0430\u044f \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c). \u0424\u043e\u0440\u0442 \u0435\u0441\u0442\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u043d\u0435 \u0441\u043c\u043e\u0433 \u044d\u0442\u043e\u0433\u043e \u043f\u0435\u0440\u0435\u043d\u0435\u0441\u0442\u0438 \u0438 \u043c\u044b \u043f\u0440\u043e \u043d\u0435\u0433\u043e, \u043d\u0430 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0432\u0440\u0435\u043c\u044f, \u0437\u0430\u0431\u044b\u043b\u0438.<\/p>\n<p>  \u0412\u043f\u043e\u0441\u043b\u0435\u0434\u0441\u0442\u0432\u0438\u0438, \u0443\u0436\u0435 \u0432 \u0438\u043d\u0441\u0442\u0438\u0442\u0443\u0442\u0435, \u0424\u043e\u0440\u0442 \u043d\u0435\u043e\u0434\u043d\u043e\u043a\u0440\u0430\u0442\u043d\u043e \u0432\u0441\u043f\u043b\u044b\u0432\u0430\u043b \u043d\u0430 \u043f\u043e\u0432\u0435\u0440\u0445\u043d\u043e\u0441\u0442\u044c \u043c\u043e\u0435\u0433\u043e \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u044f, \u043d\u043e \u0437\u0430\u043d\u044f\u0442\u044c\u0441\u044f \u0438\u043c \u0441\u0435\u0440\u044c\u0435\u0437\u043d\u043e \u043d\u0438\u043a\u0430\u043a \u043d\u0435 \u0443\u0434\u0430\u0432\u0430\u043b\u043e\u0441\u044c. \u0412 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435, \u043c\u043d\u0435 \u0442\u0430\u043a \u0438 \u043d\u0435 \u0434\u043e\u0432\u0435\u043b\u043e\u0441\u044c \u0441\u0442\u043e\u043b\u043a\u043d\u0443\u0442\u044c\u0441\u044f \u043d\u0438 \u0441 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u043e\u0432 \u043d\u0438 \u0441 \u043a\u0430\u043a\u0438\u043c \u043b\u0438\u0431\u043e \u0434\u0440\u0443\u0433\u0438\u043c \u043f\u043e\u043b\u0435\u0437\u043d\u044b\u043c \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435\u043c \u0424\u043e\u0440\u0442\u0430. \u0418 \u0432\u043e\u0442 \u0442\u0435\u043f\u0435\u0440\u044c, \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430\u043c Axiom, \u0443 \u043c\u0435\u043d\u044f \u0442\u0430\u043a\u0430\u044f \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043f\u043e\u044f\u0432\u0438\u043b\u0430\u0441\u044c! \u0414\u0435\u043b\u043e \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u0441\u043b\u043e\u0432\u043e Forth \u0444\u0438\u0433\u0443\u0440\u0438\u0440\u0443\u0435\u0442 \u0432 \u0438\u0445 ForthScript \u043d\u0435 \u043f\u0440\u043e\u0441\u0442\u043e \u0442\u0430\u043a. \u041d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435, \u0438 \u0441\u0430\u043c\u0430 Axiom-\u0430 \u0438 \u0447\u0430\u0441\u0442\u044c ForthScript-\u0430 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u044b \u043d\u0430 \u0424\u043e\u0440\u0442\u0435, \u0430 \u0432 <b>axiom.dll<\/b> \u0438\u043c\u0435\u0435\u0442\u0441\u044f \u0438\u043d\u0442\u0435\u0440\u043f\u0440\u0435\u0442\u0430\u0442\u043e\u0440, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0438\u0439 \u0438\u0445 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c. \u041f\u0440\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438, \u0432 <b>axiom.4th<\/b> \u0438 <b>CORE.4TH<\/b> \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0434\u0435\u0442\u0430\u043b\u0438 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438, \u0430 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0438 \u0447\u0442\u043e-\u0442\u043e \u043f\u043e\u0434\u043f\u0440\u0430\u0432\u0438\u0442\u044c.<\/p>\n<p>  \u0418\u0442\u0430\u043a, \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432\u0441\u044e \u0438\u0433\u0440\u043e\u0432\u0443\u044e \u043b\u043e\u0433\u0438\u043a\u0443 \u043f\u0440\u0438\u0434\u0451\u0442\u0441\u044f \u043d\u0430 \u0424\u043e\u0440\u0442\u0435. \u041d\u043e \u0441 \u0447\u0435\u0433\u043e \u043d\u0430\u0447\u0430\u0442\u044c \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0443? \u0414\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430, \u0431\u044b\u043b\u043e \u0431\u044b \u043d\u0435\u043f\u043b\u043e\u0445\u043e \u0434\u043e\u0431\u0438\u0442\u044c\u0441\u044f \u043f\u0440\u043e\u0441\u0442\u043e\u0433\u043e \u0434\u0432\u0438\u0436\u0435\u043d\u0438\u044f \u0444\u0438\u0433\u0443\u0440 \u043f\u043e \u0434\u043e\u0441\u043a\u0435. \u041a\u0430\u0436\u0434\u0430\u044f \u0444\u0438\u0433\u0443\u0440\u0430 \u0434\u043e\u043b\u0436\u043d\u0430 \u0438\u043c\u0435\u0442\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0434\u0432\u0438\u0433\u0430\u0442\u044c\u0441\u044f \u043d\u0430 1, 2, 3 \u0438\u043b\u0438 4 \u043a\u043b\u0435\u0442\u043a\u0438 \u043f\u043e \u0441\u0432\u043e\u0435\u0439 \u0442\u0440\u0430\u0435\u043a\u0442\u043e\u0440\u0438\u0438 \u0434\u0432\u0438\u0436\u0435\u043d\u0438\u044f (\u043f\u043e\u043a\u0430 \u043d\u0435 \u0431\u0443\u0434\u0435\u043c \u043e\u0442\u0432\u043b\u0435\u043a\u0430\u0442\u044c\u0441\u044f \u043d\u0430 \u0432\u044b\u0431\u0440\u0430\u0441\u044b\u0432\u0430\u043d\u0438\u0435 \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u0445 \u043e\u0447\u043a\u043e\u0432 \u043d\u0430 \u00ab\u043a\u043e\u0441\u0442\u044f\u0445\u00bb):<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0414\u0432\u0438\u0436\u0435\u043d\u0438\u0435 \u0444\u0438\u0433\u0443\u0440<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code>: common-move ( 'dir n -- ) \tSWAP \tBEGIN \t\tDUP EXECUTE verify SWAP \t\t1-  DUP \t\t0=  IF \t\t\tDROP \t\t\tTRUE \t\tELSE \t\t\tSWAP \t\t\tFALSE \t\tENDIF \tUNTIL \tempty? IF \t\tfrom \t\there \t\tmove \t\tadd-move \tENDIF ;  : i-move-1 ( -- ) ['] Anext 1 common-move ; : i-move-2 ( -- ) ['] Anext 2 common-move ; : i-move-3 ( -- ) ['] Anext 3 common-move ; : i-move-4 ( -- ) ['] Anext 4 common-move ; : p-move-1 ( -- ) ['] Cnext 1 common-move ; : p-move-2 ( -- ) ['] Cnext 2 common-move ; : p-move-3 ( -- ) ['] Cnext 3 common-move ; : p-move-4 ( -- ) ['] Cnext 4 common-move ;  {moves i-moves \t{move} i-move-1 \t{move} i-move-2 \t{move} i-move-3 \t{move} i-move-4 moves}  {moves p-moves \t{move} p-move-1 \t{move} p-move-2 \t{move} p-move-3 \t{move} p-move-4 moves}  {pieces \t{piece}\t\tinit\t{moves} i-moves \t{piece}\t\tprom\t{moves} p-moves pieces} <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  \u0417\u0430\u043f\u0443\u0441\u0442\u0438\u0432 ZRF-\u043a\u0443 \u043d\u0430 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435, \u043c\u043e\u0436\u043d\u043e \u0443\u0431\u0435\u0434\u0438\u0442\u044c\u0441\u044f, \u0447\u0442\u043e \u0442\u0435\u043f\u0435\u0440\u044c \u0444\u0438\u0433\u0443\u0440\u044b \u043c\u043e\u0436\u043d\u043e \u0434\u0432\u0438\u0433\u0430\u0442\u044c. \u041a\u0430\u043a \u0432\u0441\u0451 \u044d\u0442\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442? \u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u0430 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e <b>common-move<\/b>. \u041a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0439 (\u0432 \u0441\u0442\u0438\u043b\u0435 \u0424\u043e\u0440\u0442\u0430), \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0439 \u0441\u0440\u0430\u0437\u0443 \u043f\u043e\u0441\u043b\u0435 \u0438\u043c\u0435\u043d\u0438, \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442, \u0447\u0442\u043e \u043e\u043d\u0430 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u043d\u0430 \u0441\u0442\u0435\u043a\u0435 \u0434\u0432\u0430 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 \u2014 \u0441\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0443\u044e \u043a\u043e\u043c\u0430\u043d\u0434\u0443 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0430 \u043f\u043e \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044e \u0438 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0448\u0430\u0433\u043e\u0432 \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0435\u043d\u0438\u044f. \u0421\u0430\u043c\u0430 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0438\u0437 \u0434\u0432\u0443\u0445 \u0447\u0430\u0441\u0442\u0435\u0439. \u0421\u043d\u0430\u0447\u0430\u043b\u0430, \u0432 \u0446\u0438\u043a\u043b\u0435, \u0437\u0430\u0434\u0430\u043d\u043d\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0440\u0430\u0437, \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u043f\u0435\u0440\u0435\u0445\u043e\u0434 \u043f\u043e \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044e, \u0437\u0430\u0442\u0435\u043c, \u043f\u043e\u0441\u043b\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u0446\u0435\u043b\u0435\u0432\u043e\u0435 \u043f\u043e\u043b\u0435 \u043f\u0443\u0441\u0442\u043e, \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u043a\u043e\u043c\u0430\u043d\u0434 Axiom, \u0444\u043e\u0440\u043c\u0438\u0440\u0443\u044e\u0449\u0438\u0445 \u0445\u043e\u0434 (\u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0435\u043d\u0438\u0435 \u0444\u0438\u0448\u043a\u0438). \u0421\u0430\u043c\u043e\u0435 \u0433\u043b\u0430\u0432\u043d\u043e\u0435, \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u0432\u0441\u0435\u0439 \u044d\u0442\u043e\u0439 \u044d\u043a\u0432\u0438\u043b\u0438\u0431\u0440\u0438\u0441\u0442\u0438\u043a\u0438 \u2014 \u043d\u0435 \u0440\u0430\u0437\u0440\u0443\u0448\u0438\u0442\u044c \u0441\u0442\u0435\u043a!<\/p>\n<p>  \u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043a\u0430\u0436\u0434\u043e\u0439 \u0438\u0437 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u043c\u044b\u0445 \u043a\u043e\u043c\u0430\u043d\u0434 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0432 \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u0430\u0445 \u043f\u043e ForthScript \u0438 Axiom, \u043f\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c\u044b\u0445 \u0432 \u043a\u043e\u043c\u043f\u043b\u0435\u043a\u0442\u0435 \u0441 Axiom Development Kit, \u044f \u0436\u0435 \u0445\u043e\u0447\u0443 \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u044c \u0432\u0430\u0448\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043d\u0430 \u043f\u0430\u0440\u0443 \u0432\u0430\u0436\u043d\u044b\u0445 \u043e\u0442\u043b\u0438\u0447\u0438\u0439 \u044d\u0442\u043e\u0433\u043e \u043a\u043e\u0434\u0430 \u043e\u0442 \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0431\u044b \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f ZRF:<\/p>\n<ul>\n<li>\u0412 Axiom \u043a\u043e\u043c\u0430\u043d\u0434\u0430 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0430 \u043f\u043e \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044e (\u0432 \u0441\u043a\u0440\u0438\u043f\u0442\u0435 \u0432\u044b\u0448\u0435 \u043e\u043d\u0430 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 <b>EXECUTE<\/b>) \u0444\u043e\u0440\u043c\u0438\u0440\u0443\u0435\u0442 \u0431\u0443\u043b\u0435\u0432\u0441\u043a\u0438\u0439 \u043a\u043e\u0434, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u0443\u0441\u043f\u0435\u0448\u043d\u043e\u0441\u0442\u044c \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0430 (\u0435\u0441\u043b\u0438 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0432 \u0437\u0430\u0434\u0430\u043d\u043d\u043e\u0439 \u043a\u043b\u0435\u0442\u043a\u0435 \u043d\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e, \u043f\u0435\u0440\u0435\u0445\u043e\u0434 \u043d\u0435 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u0438 \u043d\u0430 \u0441\u0442\u0435\u043a \u043a\u043b\u0430\u0434\u0451\u0442\u0441\u044f <b>FALSE<\/b>)<\/li>\n<li>\u041a\u043e\u043c\u0430\u043d\u0434\u0430 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u044f \u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0445\u043e\u0434\u0430 <b>add-move<\/b> \u043e\u0442\u0434\u0435\u043b\u0435\u043d\u0430 \u043e\u0442 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0435\u043d\u0438\u044f \u0444\u0438\u0433\u0443\u0440\u044b <b>move<\/b> (\u044f \u0443\u0436\u0435 \u043f\u0438\u0441\u0430\u043b, \u0432 \u043e\u0434\u043d\u043e\u0439 \u0438\u0437 \u0441\u0432\u043e\u0438\u0445 <a href=\"http:\/\/habrahabr.ru\/post\/221779\/\">\u0441\u0442\u0430\u0442\u0435\u0439<\/a>, \u043f\u043e\u0447\u0435\u043c\u0443 \u044d\u0442\u043e \u0442\u0430\u043a \u0432\u0430\u0436\u043d\u043e)!<\/li>\n<\/ul>\n<p>  \u041f\u043e\u0438\u0433\u0440\u0430\u0432\u0448\u0438\u0441\u044c \u0441 \u044d\u0442\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0435\u0439 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0432\u0440\u0435\u043c\u044f, \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u043c\u0435\u0442\u0438\u0442\u044c, \u0447\u0442\u043e \u0444\u0438\u0448\u043a\u0438, \u0434\u043e\u0439\u0434\u044f \u0434\u043e \u043c\u0430\u043b\u043e\u0433\u043e \u0431\u043b\u043e\u043a\u0430, \u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0442 \u0445\u043e\u0434\u0438\u0442\u044c \u043f\u043e \u043a\u0440\u0443\u0433\u0443. \u0414\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u0444\u0438\u0448\u043a\u0430 \u043c\u043e\u0433\u043b\u0430 \u0432\u044b\u0440\u0432\u0430\u0442\u044c\u0441\u044f \u0438\u0437 \u044d\u0442\u043e\u0433\u043e \u00ab\u043a\u0440\u0443\u0433\u0430 \u0441\u0430\u043d\u0441\u0430\u0440\u044b\u00bb, \u0435\u0451 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u0435\u0440\u0435\u0432\u0435\u0440\u043d\u0443\u0442\u044c (\u0434\u043b\u044f \u043f\u0435\u0440\u0435\u0432\u0451\u0440\u043d\u0443\u0442\u044b\u0445 \u0444\u0438\u0448\u0435\u043a \u0437\u0430\u0434\u0430\u043d\u044b \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f <b>Cnext<\/b> \u0438 <b>Dnext<\/b>, \u0432\u0435\u0434\u0443\u0449\u0438\u0435 \u043a \u0444\u0438\u043d\u0438\u0448\u0443). \u041d\u0430\u043f\u043e\u043c\u043d\u044e, \u0447\u0442\u043e \u043f\u0435\u0440\u0435\u0432\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u043d\u0438\u0435 \u0444\u0438\u0448\u0435\u043a, \u0432 \u0438\u0433\u0440\u0435 \u0423\u0440, \u0445\u0438\u0442\u0440\u043e\u0435. \u0424\u0438\u0448\u043a\u0430 \u043f\u0435\u0440\u0435\u0432\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043d\u0435 \u0432\u0441\u0442\u0430\u0432 \u043d\u0430 \u043f\u043e\u043b\u0435 \u043f\u0440\u0435\u0432\u0440\u0430\u0449\u0435\u043d\u0438\u044f, \u0430 \u043f\u0440\u043e\u0445\u043e\u0434\u044f \u0447\u0435\u0440\u0435\u0437 \u043d\u0435\u0433\u043e. \u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0442\u0435\u043f\u0435\u0440\u044c \u0444\u0438\u0448\u043a\u0438 \u0441\u043c\u043e\u0433\u0443\u0442 \u043f\u0440\u043e\u0445\u043e\u0434\u0438\u0442\u044c \u0432\u0435\u0441\u044c \u043f\u0443\u0442\u044c \u0434\u043e \u043a\u043e\u043d\u0446\u0430, \u043d\u0435 \u0437\u0430\u0431\u0443\u0434\u0435\u043c \u043e\u0431 \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0438 \u0441 \u0434\u043e\u0441\u043a\u0438 \u0444\u0438\u0448\u0435\u043a, \u0434\u043e\u0448\u0435\u0434\u0448\u0438\u0445 \u0434\u043e \u0444\u0438\u043d\u0438\u0448\u0430:<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041f\u0435\u0440\u0435\u0432\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u043d\u0438\u0435 \u0444\u0438\u0448\u0435\u043a<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code>VARIABLE\tisPromouted  : common-move ( 'dir n -- ) \tFALSE isPromouted ! \tSWAP \tBEGIN \t\tcurrent-player White \t\t= IF \t\t\there p2 \t\tELSE \t\t\there p4 \t\tENDIF \t\t= IF TRUE isPromouted ! ENDIF \t\tDUP EXECUTE verify SWAP \t\t1-  DUP \t\t0=  IF \t\t\tDROP \t\t\tTRUE \t\tELSE \t\t\tSWAP \t\t\tFALSE \t\tENDIF \tUNTIL \tempty? IF \t\tfrom \t\there \t\tmove \t\there h3 = IF \t\t\tcapture \t\tENDIF \t\tisPromouted @ IF \t\t\tcurrent-piece-type 1+ change-type \t\tENDIF \t\tadd-move \tENDIF ; <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  \u0417\u0434\u0435\u0441\u044c \u0441\u0442\u043e\u0438\u0442 \u0441\u043a\u0430\u0437\u0430\u0442\u044c \u043f\u0430\u0440\u0443 \u0441\u043b\u043e\u0432 \u043e \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0432 \u0424\u043e\u0440\u0442\u0435. \u041c\u044b \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u043c \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e <b>isPromouted<\/b>, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u043a\u043b\u044e\u0447\u0435\u0432\u043e\u0435 \u0441\u043b\u043e\u0432\u043e <b>VARIABLE<\/b>. \u041f\u043e\u0441\u043b\u0435 \u0442\u043e\u0433\u043e \u043a\u0430\u043a \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0430, \u043b\u044e\u0431\u043e\u0435 \u0435\u0451 \u0443\u043f\u043e\u043c\u0438\u043d\u0430\u043d\u0438\u0435 \u0432 \u043a\u043e\u0434\u0435 \u043a\u043b\u0430\u0434\u0451\u0442 \u043d\u0430 \u0441\u0442\u0435\u043a <b>\u0430\u0434\u0440\u0435\u0441<\/b> \u044d\u0442\u043e\u0439 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439. \u0414\u043b\u044f \u0438\u0437\u0432\u043b\u0435\u0447\u0435\u043d\u0438\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f, \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u043d\u043e\u0433\u043e \u043f\u043e \u0437\u0430\u0434\u0430\u043d\u043d\u043e\u043c\u0443 \u0430\u0434\u0440\u0435\u0441\u0443, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043a\u043e\u043c\u0430\u043d\u0434\u0430 <b>@<\/b>, \u043a\u043e\u043c\u0430\u043d\u0434\u0430 <b>!<\/b> \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439.<\/p>\n<p>  \u041d\u0435\u043a\u043e\u0442\u043e\u0440\u0443\u044e \u0441\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u044c, \u0432 Axiom, \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0442 \u043c\u0430\u043d\u0438\u043f\u0443\u043b\u044f\u0446\u0438\u0438 \u0441 \u0442\u0438\u043f\u0430\u043c\u0438 \u0444\u0438\u0433\u0443\u0440. \u0414\u0435\u043b\u043e \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0444\u0438\u0433\u0443\u0440 \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u044b <b>\u043f\u043e\u0441\u043b\u0435<\/b> \u043a\u043e\u0434\u0430, \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0449\u0435\u0433\u043e \u0438\u0445 \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0435\u043d\u0438\u0435\u043c (\u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u043e\u043d\u0438 \u0435\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442). \u041f\u043e \u044d\u0442\u043e\u0439 \u043f\u0440\u0438\u0447\u0438\u043d\u0435, \u043c\u044b \u043d\u0435 \u043c\u043e\u0436\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0438\u043c\u0435\u043d\u0430 \u0442\u0438\u043f\u043e\u0432 \u0444\u0438\u0433\u0443\u0440 \u0432 \u043a\u043e\u0434\u0435 (\u0442\u0430\u043a \u043a\u0430\u043a \u0432 \u044d\u0442\u043e\u043c \u043c\u0435\u0441\u0442\u0435 \u043e\u043d\u0438 \u0435\u0449\u0451 \u043d\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u044b). \u041a\u0430\u043a \u043f\u0440\u0430\u0432\u0438\u043b\u043e, \u0438\u0437 \u044d\u0442\u043e\u0439 \u043d\u0435\u043f\u0440\u0438\u044f\u0442\u043d\u043e\u0439 \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u0438 \u043c\u043e\u0436\u043d\u043e \u0432\u044b\u043a\u0440\u0443\u0442\u0438\u0442\u044c\u0441\u044f. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0432 \u043d\u0430\u0448\u0435\u043c \u043a\u043e\u0434\u0435, \u0434\u043b\u044f \u043f\u0435\u0440\u0435\u0432\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u043d\u0438\u044f \u0444\u0438\u0448\u043a\u0438, \u043c\u044b \u043f\u0440\u043e\u0441\u0442\u043e \u0438\u043d\u043a\u0440\u0435\u043c\u0435\u043d\u0442\u0438\u0440\u0443\u0435\u043c \u0442\u0438\u043f \u0444\u0438\u0433\u0443\u0440\u044b, \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u044e\u0449\u0435\u0439 \u0445\u043e\u0434.<\/p>\n<p>  \u0412\u0430\u0436\u043d\u043e\u0439 \u0447\u0430\u0441\u0442\u044c\u044e \u0438\u0433\u0440\u043e\u0432\u043e\u0433\u043e \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u0430 \u0445\u043e\u0434\u0430 \u0438\u0433\u0440\u043e\u043a\u0430\u043c\u0438. \u0418\u0433\u0440\u043e\u043a \u043e\u0431\u044f\u0437\u0430\u043d \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0445\u043e\u0434, \u0435\u0441\u043b\u0438 \u0435\u0441\u0442\u044c \u0442\u0430\u043a\u0430\u044f \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0438 \u043f\u0440\u043e\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0445\u043e\u0434, \u0432 \u043f\u0440\u043e\u0442\u0438\u0432\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435. \u0415\u0441\u043b\u0438 \u043d\u0435 \u043f\u043e\u0437\u0430\u0431\u043e\u0442\u0438\u0442\u044c\u0441\u044f \u043e\u0431 \u044d\u0442\u043e\u043c \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e, \u0438\u0433\u0440\u0430 \u0431\u0443\u0434\u0435\u0442 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0430 \u0432\u043d\u0438\u0447\u044c\u044e \u043f\u0440\u0438 \u043f\u0435\u0440\u0432\u043e\u0439 \u0436\u0435 \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0445\u043e\u0434\u0430 \u043b\u044e\u0431\u044b\u043c \u0438\u0437 \u0438\u0433\u0440\u043e\u043a\u043e\u0432. \u0422\u0430\u043a\u0436\u0435, \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u043e\u043c \u0445\u043e\u0434\u0430 \u043f\u0440\u043e\u0442\u0438\u0432\u043d\u0438\u043a\u0430, \u043b\u043e\u0433\u0438\u0447\u043d\u043e \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u044b\u0439 \u0445\u043e\u0434 \u0438\u0433\u0440\u043e\u043a\u0430 \u043f\u043e\u0441\u043b\u0435 \u0445\u043e\u0434\u0430 \u043d\u0430 \u00ab\u0440\u043e\u0437\u0435\u0442\u043a\u0443\u00bb. \u0421\u0434\u0435\u043b\u0430\u0435\u043c \u044d\u0442\u043e:<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041f\u0440\u043e\u043f\u0443\u0441\u043a \u0445\u043e\u0434\u0430<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code>: is-rosette? ( -- ? ) \there i2 = \there i4 = OR \there l3 = OR \there o2 = OR \there o4 = OR ;  : common-move ( 'dir n -- ) \tq5 enemy-at? NOT IF \t\tFALSE isPromouted ! \t\tSWAP \t\tBEGIN \t\t\tcurrent-player White \t\t\t= IF \t\t\t\there p2 \t\t\tELSE \t\t\t\there p4 \t\t\tENDIF \t\t\t= IF TRUE isPromouted ! ENDIF \t\t\tDUP EXECUTE verify SWAP \t\t\t1-  DUP \t\t\t0=  IF \t\t\t\tDROP \t\t\t\tTRUE \t\t\tELSE \t\t\t\tSWAP \t\t\t\tFALSE \t\t\tENDIF \t\tUNTIL \t\tempty? IF \t\t\tfrom \t\t\there \t\t\tmove \t\t\there h3 = IF \t\t\t\tcapture \t\t\tENDIF \t\t\tisPromouted @ IF \t\t\t\tcurrent-piece-type 1+ change-type \t\t\tENDIF \t\t\tis-rosette? IF \t\t\t\tq1 piece-type-at q5 create-piece-type-at \t\t\tELSE   \t\t\t\tq5 capture-at \t\t\tENDIF \t\t\tadd-move \t\tENDIF \tENDIF ;  : pass-move ( -- ) \tq5 capture-at \tPass \tadd-move ;  {moves i-moves \t{move} i-move-1  {move-type} normal-type \t{move} i-move-2  {move-type} normal-type \t{move} i-move-3  {move-type} normal-type \t{move} i-move-4  {move-type} normal-type \t{move} pass-move {move-type} pass-type moves}  {moves p-moves \t{move} p-move-1  {move-type} normal-type \t{move} p-move-2  {move-type} normal-type \t{move} p-move-3  {move-type} normal-type \t{move} p-move-4  {move-type} normal-type \t{move} pass-move {move-type} pass-type moves}  {move-priorities \t{move-priority} normal-type \t{move-priority} pass-type move-priorities} <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  \u041f\u0435\u0440\u0432\u044b\u043c \u0432 \u0433\u043b\u0430\u0437\u0430 \u0431\u0440\u043e\u0441\u0430\u0435\u0442\u0441\u044f \u0437\u0430\u043a\u043e\u0432\u044b\u0440\u0438\u0441\u0442\u043e\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 <b>is-rosette?<\/b>. \u041a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e, \u0432 Axiom, \u0432 \u043e\u0442\u043b\u0438\u0447\u0438\u0438 \u043e\u0442 ZRF, \u043d\u0435\u0442 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0438\u0433\u0440\u043e\u0432\u044b\u0445 \u0437\u043e\u043d. \u0412\u0441\u0435 \u043f\u043e\u043b\u044f \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0442\u044c \u0438\u043d\u0434\u0438\u0432\u0438\u0434\u0443\u0430\u043b\u044c\u043d\u043e. <\/p>\n<p>  \u0420\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u0430 \u0445\u043e\u0434\u0430 \u0442\u0430\u043a\u0436\u0435 \u043e\u0442\u043b\u0438\u0447\u0430\u0435\u0442\u0441\u044f \u043e\u0442 \u043f\u043e\u0434\u0445\u043e\u0434\u0430, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u043e\u0433\u043e \u0432 ZRF. \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u043e\u043f\u0446\u0438\u0438 &quot;<b>pass turn<\/b>&quot; \u0438\u0433\u043d\u043e\u0440\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0410\u043a\u0441\u0438\u043e\u043c\u043e\u0439. \u0412\u043c\u0435\u0441\u0442\u043e \u044d\u0442\u043e\u0433\u043e, \u043f\u0440\u043e\u043f\u0443\u0441\u043a \u0445\u043e\u0434\u0430 \u0434\u043e\u043b\u0436\u0435\u043d \u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u044f\u0432\u043d\u043e, \u043a\u043e\u043c\u0430\u043d\u0434\u043e\u0439 <b>Pass<\/b>. \u042d\u0442\u043e \u043e\u0434\u0438\u043d \u0438\u0437 \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u0432 \u0431\u043e\u043b\u0435\u0435 \u043f\u043e\u043b\u043d\u043e\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0435\u0439 \u043d\u043e\u0442\u0430\u0446\u0438\u0438 \u0437\u0430\u043f\u0438\u0441\u0438 \u0445\u043e\u0434\u043e\u0432 ZSG (\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u043e\u0439 \u0434\u043b\u044f \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u0445\u043e\u0434\u0430 \u0438\u0437 engine \u0432 ZoG). \u0414\u0440\u0443\u0433\u0438\u043c \u0442\u0430\u043a\u0438\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u043c \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u043a\u043e\u043c\u0430\u043d\u0434 \u0441\u0431\u0440\u043e\u0441\u0430 (<b>drops<\/b>) \u043f\u0440\u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0438 \u0447\u0430\u0441\u0442\u0438\u0447\u043d\u044b\u0445 \u0445\u043e\u0434\u043e\u0432 (<b>partial moves<\/b>), \u043d\u0435 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u0430\u044f \u0432 ZRF.<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041f\u0440\u0438\u043c\u0435\u0447\u0430\u043d\u0438\u0435<\/b><\/p>\n<div class=\"spoiler_text\">\u041f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u0435 ZSG-\u043d\u043e\u0442\u0430\u0446\u0438\u0438 \u043e\u0447\u0435\u043d\u044c \u0432\u0430\u0436\u043d\u043e \u043f\u0440\u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0445 \u043c\u043e\u0434\u0443\u043b\u0435\u0439 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f (<b>engines<\/b>). \u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0432 ZoG \u043a\u0430\u043a\u043e\u0433\u043e \u043b\u0438\u0431\u043e \u0445\u043e\u0434\u0430 \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442\u0441\u044f \u0442\u0435\u043c, \u043c\u043e\u0436\u043d\u043e \u043b\u0438 \u0437\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0435\u0433\u043e \u0432 ZSG-\u043d\u043e\u0442\u0430\u0446\u0438\u0438. ZoG \u043d\u0435 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0438\u0440\u0443\u0435\u0442 \u044d\u0442\u043e\u0442 \u0444\u043e\u0440\u043c\u0430\u0442, \u043d\u043e \u0432 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 \u043d\u0430 Axiom \u0438\u043c\u0435\u0435\u0442\u0441\u044f \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u044e\u0449\u0438\u0439 \u0435\u0433\u043e \u0440\u0430\u0437\u0434\u0435\u043b (Appendix B). \u0417\u043d\u0430\u043a\u043e\u043c\u0441\u0442\u0432\u043e \u0441 \u044d\u0442\u0438\u043c \u0440\u0430\u0437\u0434\u0435\u043b\u043e\u043c \u043c\u043e\u0436\u0435\u0442 \u0438\u0437\u0431\u0430\u0432\u0438\u0442\u044c \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430 \u043e\u0442 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u043e\u0432 \u0441 \u0446\u0435\u043b\u044c\u044e \u0432\u044b\u044f\u0441\u043d\u0435\u043d\u0438\u044f \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0435\u0439 ZSG-\u043d\u043e\u0442\u0430\u0446\u0438\u0438.  <\/div>\n<\/div>\n<p>  \u0414\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u043f\u0440\u043e\u043f\u0443\u0441\u043a \u0445\u043e\u0434\u0430 \u0440\u0430\u0431\u043e\u0442\u0430\u043b \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u0438 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0438 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u043a\u0430\u043a\u043e\u0433\u043e \u043b\u0438\u0431\u043e \u0434\u0440\u0443\u0433\u043e\u0433\u043e \u0445\u043e\u0434\u0430, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442\u044b. \u0425\u043e\u0434, \u0438\u043c\u0435\u044e\u0449\u0438\u0439 \u0431\u043e\u043b\u0435\u0435 \u043d\u0438\u0437\u043a\u0438\u0439 \u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442, \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u0438 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0438 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0445\u043e\u0434\u0430 \u0441 \u0431\u043e\u043b\u0435\u0435 \u0432\u044b\u0441\u043e\u043a\u0438\u043c \u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442\u043e\u043c. \u041a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e, \u043f\u0440\u043e\u043f\u0443\u0441\u043a \u0445\u043e\u0434\u0430 \u0432 \u0441\u0442\u0438\u043b\u0435 Axiom \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e \u043d\u0435 \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u044d\u043a\u0432\u0438\u0432\u0430\u043b\u0435\u043d\u0442\u0435\u043d \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u044e ZoG, \u043f\u0440\u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0435 \u043e\u043f\u0446\u0438\u0438 &quot;<b>pass turn<\/b>&quot; \u0432 <b>force<\/b>. \u0412 ZRF-\u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043f\u0440\u043e\u043f\u0443\u0441\u043a \u0445\u043e\u0434\u0430 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438, \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 Axiom, \u043f\u0440\u0438\u0434\u0451\u0442\u0441\u044f \u043d\u0430\u0436\u0430\u0442\u044c \u043d\u0430 \u043a\u043d\u043e\u043f\u043a\u0443:<\/p>\n<p>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/getpro\/habr\/post_images\/6ab\/c5e\/9b4\/6abc5e9b43e80614773c226c99399bae.png\"\/><\/p>\n<p>  \u0414\u043e\u043b\u0436\u0435\u043d \u0441\u043a\u0430\u0437\u0430\u0442\u044c, \u044d\u0442\u043e \u0437\u0434\u043e\u0440\u043e\u0432\u043e \u0441\u0431\u0438\u0432\u0430\u0435\u0442 \u0441 \u0442\u043e\u043b\u043a\u0443.<\/p>\n<p>  \u0414\u043b\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u0430 \u0445\u043e\u0434\u0430 \u043f\u043e\u0441\u043b\u0435 \u0445\u043e\u0434\u0430 \u043d\u0430 \u00ab\u0440\u043e\u0437\u0435\u0442\u043a\u0443\u00bb, \u0432 \u043f\u043e\u0437\u0438\u0446\u0438\u044e <b>q5<\/b>, \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u0443\u044e \u0432 \u0438\u0433\u0440\u0435, \u043f\u043e\u043c\u0435\u0449\u0430\u0435\u0442\u0441\u044f \u043d\u0435\u0432\u0438\u0434\u0438\u043c\u0430\u044f \u0444\u0438\u0433\u0443\u0440\u0430 <b>lock<\/b>. \u0412 \u0441\u0430\u043c\u043e\u043c \u043d\u0430\u0447\u0430\u043b\u0435 <b>common-move<\/b>, \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043d\u0430 \u043d\u0430\u043b\u0438\u0447\u0438\u0435 \u0432 \u044d\u0442\u043e\u043c \u043f\u043e\u043b\u0435 \u0432\u0440\u0430\u0436\u0435\u0441\u043a\u043e\u0439 \u0444\u0438\u0433\u0443\u0440\u044b. \u0415\u0441\u043b\u0438 \u043f\u043e\u043b\u0435 \u0437\u0430\u043d\u044f\u0442\u043e \u0432\u0440\u0430\u0433\u043e\u043c \u2014 \u0445\u043e\u0434 \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u0435\u043d.<\/p>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c, \u043f\u0440\u0438\u0448\u043b\u043e \u0432\u0440\u0435\u043c\u044f \u043d\u0430\u0443\u0447\u0438\u0442\u044c\u0441\u044f \u0431\u0440\u043e\u0441\u0430\u0442\u044c \u00ab\u043a\u043e\u0441\u0442\u0438\u00bb:<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0411\u0440\u043e\u0441\u043e\u043a \u043a\u043e\u0441\u0442\u0435\u0439<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code>{players \t{player}\tWhite \t{player}\tBlack \t{player}\t?Dice\t{random} players}  {turn-order \t{turn}\tWhite \t{turn}\t?Dice {of-type} clear-type \t{turn}\t?Dice \t{turn}\t?Dice \t{turn}\t?Dice \t{turn}\tBlack \t{turn}\t?Dice {of-type} clear-type \t{turn}\t?Dice \t{turn}\t?Dice \t{turn}\t?Dice turn-order}  : drop-dices ( -- ) \tq2 here = q3 here = OR q4 here = OR empty? AND IF \t\tdrop \t\tadd-move \tENDIF ;  : count-dices ( -- n ) \tq2 piece-at piece-value \tq3 piece-at piece-value + \tq4 piece-at piece-value + \tDUP 0= IF \t\tDROP \t\t4 \tENDIF ;  : clear-dices ( -- ) \tq1 here = verify \tq2 not-empty-at? q3 not-empty-at? q4 not-empty-at? \tAND AND IF \t\tdrop \t\tq2 capture-at \t\tq3 capture-at \t\tq4 capture-at \t\tadd-move \tENDIF ;  : i-move ( -- ) ['] Anext count-dices common-move ; : p-move ( -- ) ['] Cnext count-dices common-move ;  {moves p-moves \t{move} p-move {move-type} normal-type \t{move} pass-move {move-type} pass-type moves}  {moves drops \t{move} drop-dices {move-type} normal-type \t{move} pass-move {move-type} pass-type moves}  {moves clears \t{move} clear-dices {move-type} clear-type moves}  {pieces \t{piece}\t\tlock\t{moves} clears \t{piece}\t\tinit\t{moves} i-moves \t{piece}\t\tprom\t{moves} p-moves \t{piece}\t\twdice\t{drops} drops 1 {value} \t{piece}\t\tbdice\t{drops} drops 0 {value} pieces} <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  \u0411\u0440\u043e\u0441\u043e\u043a \u00ab\u043a\u043e\u0441\u0442\u0435\u0439\u00bb (<b>drop-dices<\/b>) \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430\u0440\u043d\u043e. \u041f\u0440\u043e\u0441\u0442\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c, \u0447\u0442\u043e \u0446\u0435\u043b\u0435\u0432\u043e\u0435 \u043f\u043e\u043b\u0435 \u043f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u043e \u0434\u043b\u044f \u0431\u0440\u043e\u0441\u043a\u0430 \u043a\u043e\u0441\u0442\u0435\u0439, \u0441\u0442\u0430\u0432\u0438\u043c \u0444\u0438\u0433\u0443\u0440\u0443 \u043a\u043e\u043c\u0430\u043d\u0434\u043e\u0439 <b>drop<\/b> \u0438 \u0437\u0430\u0432\u0435\u0440\u0448\u0430\u0435\u043c \u0445\u043e\u0434 \u043a\u043e\u043c\u0430\u043d\u0434\u043e\u0439 <b>add-move<\/b>. \u041d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0441\u043b\u043e\u0436\u043d\u0435\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u043e\u0447\u0438\u0441\u0442\u043a\u0430 (<b>clear-dices<\/b>). \u0412 ZoG \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0441\u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0445\u043e\u0434, \u0437\u0430\u043a\u043b\u044e\u0447\u0430\u044e\u0449\u0438\u0439\u0441\u044f \u043b\u0438\u0448\u044c \u0432 \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0438 \u0444\u0438\u0433\u0443\u0440\u044b \u0441 \u0434\u043e\u0441\u043a\u0438. \u0425\u043e\u0434 \u043e\u0447\u0438\u0441\u0442\u043a\u0438 \u043c\u044b \u0441\u0432\u044f\u0437\u044b\u0432\u0430\u0435\u043c \u0441\u043e \u0441\u0431\u0440\u043e\u0441\u043e\u043c \u043d\u0435\u0432\u0438\u0434\u0438\u043c\u043e\u0439 \u0444\u0438\u0433\u0443\u0440\u044b \u043d\u0430 \u043d\u0435\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u043e\u0435 \u0432 \u0438\u0433\u0440\u0435 \u043f\u043e\u043b\u0435 <b>q1<\/b>. \u0423\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u0441 \u0434\u043e\u0441\u043a\u0438 \u00ab\u043a\u043e\u0441\u0442\u0435\u0439\u00bb \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043f\u043e\u0431\u043e\u0447\u043d\u044b\u043c \u044d\u0444\u0444\u0435\u043a\u0442\u043e\u043c \u044d\u0442\u043e\u0433\u043e \u0445\u043e\u0434\u0430. \u041e\u0441\u0442\u0430\u043b\u043e\u0441\u044c \u043f\u043e\u0434\u0441\u0447\u0438\u0442\u0430\u0442\u044c \u0432\u044b\u043f\u0430\u0432\u0448\u0438\u0435 \u043e\u0447\u043a\u0438 (<b>count-dices<\/b>) \u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u0442\u044c \u044d\u0442\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0432 <b>common-move<\/b>.<\/p>\n<p>  \u0414\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u0443\u0441\u043b\u043e\u0432\u0438\u0435 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u044f \u0438\u0433\u0440\u044b, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0441\u0447\u0438\u0442\u0430\u0442\u044c \u0444\u0438\u0448\u043a\u0438, \u0443\u0448\u0435\u0434\u0448\u0438\u0435 \u0441 \u0434\u043e\u0441\u043a\u0438. \u0421\u0430\u043c\u0430 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u0410\u043a\u0441\u0438\u043e\u043c\u043e\u0439 \u043f\u0443\u0442\u0451\u043c \u0432\u044b\u0437\u043e\u0432\u0430 \u043f\u0435\u0440\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u0433\u043e \u0441\u043b\u043e\u0432\u0430 <b>OnIsGameOver<\/b>. \u0414\u043b\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043f\u0435\u0440\u0432\u043e\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0445 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439, \u043f\u0440\u0438 \u0441\u0442\u0430\u0440\u0442\u0435 \u0438\u0433\u0440\u044b (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440\u0430 \u043f\u0441\u0435\u0432\u0434\u043e\u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u0445 \u0447\u0438\u0441\u0435\u043b), \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u0435\u0440\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c <b>OnNewGame<\/b>:<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0423\u0441\u043b\u043e\u0432\u0438\u0435 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u044f<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code>{board \t5 17 \t\t{grid} \t{variable}\tWhitePieces \t{variable}\tBlackPieces board}  : WhitePieces++ WhitePieces ++ ; : BlackPieces++ BlackPieces ++ ;  : common-move ( 'dir n -- ) \tq5 enemy-at? NOT IF \t\tFALSE isPromouted ! \t\tSWAP \t\tBEGIN \t\t\tcurrent-player White \t\t\t= IF \t\t\t\there p2 \t\t\tELSE \t\t\t\there p4 \t\t\tENDIF \t\t\t= IF TRUE isPromouted ! ENDIF \t\t\tDUP EXECUTE verify SWAP \t\t\t1-  DUP \t\t\t0=  IF \t\t\t\tDROP \t\t\t\tTRUE \t\t\tELSE \t\t\t\tSWAP \t\t\t\tFALSE \t\t\tENDIF \t\tUNTIL \t\tempty? IF \t\t\tfrom \t\t\there \t\t\tmove \t\t\there h3 = IF \t\t\t\tcurrent-player White = IF \t\t\t\t\tCOMPILE WhitePieces++ \t\t\t\tELSE \t\t\t\t\tCOMPILE BlackPieces++ \t\t\t\tENDIF \t\t\t\tcapture \t\t\tENDIF \t\t\tisPromouted @ IF \t\t\t\tcurrent-piece-type 1+ change-type \t\t\tENDIF \t\t\tis-rosette? IF \t\t\t\tq1 piece-type-at q5 create-piece-type-at \t\t\tELSE   \t\t\t\tq5 capture-at \t\t\tENDIF \t\t\tadd-move \t\tENDIF \tENDIF ;  : OnNewGame ( -- ) \tRANDOMIZE ;  : OnIsGameOver ( -- gameResult ) \trepetition-reset \t#UnknownScore \tcurrent-player White = IF \t\tBlackPieces @ \t\t7 - 0=  IF \t\t\tDROP \t\t\t#LossScore \t\tENDIF \tENDIF \tcurrent-player Black = IF \t\tWhitePieces @ \t\t7 - 0=  IF \t\t\tDROP \t\t\t#LossScore \t\tENDIF \tENDIF ; <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041f\u0440\u0438\u043c\u0435\u0447\u0430\u043d\u0438\u0435<\/b><\/p>\n<div class=\"spoiler_text\">\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445, \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u043c\u044b\u0445 \u00ab\u043d\u0430 \u0434\u043e\u0441\u043a\u0435\u00bb, \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0432 \u0440\u0430\u0437\u0434\u0435\u043b\u0435 3.9.4 \u00abUpdating Board Variables\u00bb \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 \u043f\u043e Axiom.  <\/div>\n<\/div>\n<p>  \u0414\u043b\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u043f\u043e\u043b\u043d\u043e\u0446\u0435\u043d\u043d\u043e\u0439 \u0438\u0433\u0440\u044b \u043e\u0441\u0442\u0430\u043b\u043e\u0441\u044c \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u0431\u043e\u0439 \u0444\u0438\u0433\u0443\u0440 \u0438 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0443 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0445 \u043f\u043e\u043b\u0435\u0439. \u042f \u043d\u0435 \u0431\u0443\u0434\u0443 \u0437\u0430\u0433\u0440\u043e\u043c\u043e\u0436\u0434\u0430\u0442\u044c \u0441\u0442\u0430\u0442\u044c\u044e \u044d\u0442\u0438\u043c\u0438 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u044f\u043c\u0438, \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443, \u043e\u043d\u0438 \u043d\u0435 \u043d\u0435\u0441\u0443\u0442 \u0432 \u0441\u0435\u0431\u0435 \u043d\u0438\u0447\u0435\u0433\u043e \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0438\u0430\u043b\u044c\u043d\u043e \u043d\u043e\u0432\u043e\u0433\u043e. \u0416\u0435\u043b\u0430\u044e\u0449\u0438\u0435 \u043c\u043e\u0433\u0443\u0442 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043f\u043e\u043b\u043d\u0443\u044e \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e \u00ab\u041a\u043e\u0440\u043e\u043b\u0435\u0432\u0441\u043a\u043e\u0439 \u0438\u0433\u0440\u044b \u0423\u0440\u00bb \u043d\u0430 <a href=\"https:\/\/github.com\/GlukKazan\/ZoG\/blob\/master\/Axiom\/Ur\/Ur.4th\">GitHub<\/a>.<\/p>\n<h4>\u041e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u0438\u043d\u0441\u0442\u0438\u043d\u043a\u0442<\/h4>\n<p>  \u0413\u043b\u0430\u0432\u043d\u043e\u0439 \u0438\u0437\u044e\u043c\u0438\u043d\u043a\u043e\u0439 ZoG \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0435\u0451 \u0443\u043d\u0438\u0432\u0435\u0440\u0441\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c. ZRF \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043d\u043e\u0432\u0443\u044e \u0438\u0433\u0440\u0443 (\u0438\u043b\u0438 \u043e\u043f\u0438\u0441\u0430\u0442\u044c \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0443\u044e), \u043f\u0440\u043e\u0441\u0442\u043e \u0437\u0430\u0434\u0435\u043a\u043b\u0430\u0440\u0438\u0440\u043e\u0432\u0430\u0432 \u0435\u0451 \u043f\u0440\u0430\u0432\u0438\u043b\u0430. \u0414\u0430, \u0438\u0433\u0440\u0430\u0435\u0442 \u043e\u043d\u0430 \u0437\u0430\u043c\u0435\u0442\u043d\u043e \u0445\u0443\u0436\u0435 \u0447\u0435\u043c \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b, \u043d\u043e \u043f\u043e\u0434\u043e\u0431\u043d\u0430\u044f \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c <b>\u0431\u044b\u0441\u0442\u0440\u043e\u0433\u043e<\/b> \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043f\u0440\u043e\u0442\u043e\u0442\u0438\u043f\u0430 \u043f\u043e\u0447\u0442\u0438 \u043b\u044e\u0431\u043e\u0439 \u0438\u0433\u0440\u044b \u0434\u043e\u0440\u043e\u0433\u043e\u0433\u043e \u0441\u0442\u043e\u0438\u0442! <a href=\"http:\/\/www.zillions-of-games.com\/games\/index.html\">\u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e<\/a> \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0430\u043d\u043d\u044b\u0445 \u0434\u043b\u044f ZoG \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u0433\u043e\u0432\u043e\u0440\u0438\u0442 \u0441\u0430\u043c\u043e \u0437\u0430 \u0441\u0435\u0431\u044f. <\/p>\n<p>  Axiom \u0442\u0430\u043a\u0436\u0435 \u0443\u043d\u0438\u0432\u0435\u0440\u0441\u0430\u043b\u044c\u043d\u0430. \u041e\u043d\u0430 \u0441\u043d\u0438\u043c\u0430\u0435\u0442 \u043c\u043d\u043e\u0433\u0438\u0435 \u043d\u0435\u043f\u0440\u0438\u044f\u0442\u043d\u044b\u0435 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f ZoG \u0438 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c \u0442\u0430\u043a\u0438\u0435 \u043d\u0430\u0441\u0442\u043e\u043b\u044c\u043d\u044b\u0435 \u0438\u0433\u0440\u044b, \u0441 \u043a\u043e\u0442\u043e\u0440\u044b\u043c\u0438 ZoG \u043d\u0435 \u0441\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f. \u041e\u0434\u043d\u0430 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u043e\u043b\u043d\u043e\u0446\u0435\u043d\u043d\u043e\u0439 \u0430\u0440\u0438\u0444\u043c\u0435\u0442\u0438\u043a\u0438, \u0432\u043c\u0435\u0441\u0442\u043e \u043c\u0430\u043d\u0438\u043f\u0443\u043b\u044f\u0446\u0438\u0439 \u0441 \u0431\u0443\u043b\u0435\u0432\u0441\u043a\u0438\u043c\u0438 \u0444\u043b\u0430\u0433\u0430\u043c\u0438, \u0432\u044b\u0432\u043e\u0434\u0438\u0442 \u044d\u0442\u043e\u0442 \u043f\u0440\u043e\u0434\u0443\u043a\u0442 \u043d\u0430 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0431\u043e\u043b\u0435\u0435 \u0432\u044b\u0441\u043e\u043a\u0438\u0439 \u0443\u0440\u043e\u0432\u0435\u043d\u044c, \u043d\u043e \u044d\u0442\u043e \u043d\u0435 \u0433\u043b\u0430\u0432\u043d\u043e\u0435 \u0434\u043e\u0441\u0442\u043e\u0438\u043d\u0441\u0442\u0432\u043e Axiom! \u0425\u043e\u0440\u043e\u0448\u043e \u0438\u0433\u0440\u0430\u0435\u0442 ZoG \u0438\u043b\u0438 \u043f\u043b\u043e\u0445\u043e, \u043d\u043e \u0434\u043b\u044f \u043d\u0430\u0441 \u0435\u0451 AI \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0441\u043e\u0431\u043e\u0439 \u0447\u0451\u0440\u043d\u044b\u0439 \u044f\u0449\u0438\u043a. \u041c\u044b \u043d\u0438\u043a\u0430\u043a \u043d\u0435 \u043c\u043e\u0436\u0435\u043c \u043f\u043e\u0432\u043b\u0438\u044f\u0442\u044c \u043d\u0430 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u043e \u0435\u0433\u043e \u0438\u0433\u0440\u044b! Axiom \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u043d\u0430\u043c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c (\u043d\u043e \u043d\u0435 \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u044d\u0442\u043e\u0433\u043e) \u043f\u043e\u0443\u0447\u0430\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u0432 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u043e\u0432 \u0432\u044b\u0431\u043e\u0440\u0430 \u043e\u043f\u0442\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0445\u043e\u0434\u0430.<\/p>\n<p>  \u0421\u0430\u043c\u0430\u044f \u043e\u0447\u0435\u0432\u0438\u0434\u043d\u0430\u044f \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0432\u043c\u0435\u0448\u0430\u0442\u0435\u043b\u044c\u0441\u0442\u0432\u0430 \u0432 \u0440\u0430\u0431\u043e\u0442\u0443 AI Axiom \u2014 \u0432\u044b\u0431\u043e\u0440 \u0432\u0435\u0441\u043e\u0432\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438, \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043e\u0446\u0435\u043d\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043a\u0430\u0436\u0434\u0430\u044f \u043f\u043e\u0437\u0438\u0446\u0438\u044f. \u041e\u0442 \u043d\u0430\u0441 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0432\u0441\u0435\u0433\u043e \u043b\u0438\u0448\u044c \u043f\u0435\u0440\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c <b>OnEvaluate<\/b>. \u041f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043e\u0447\u0435\u043d\u044c \u043f\u0440\u043e\u0441\u0442\u0443\u044e \u043e\u0446\u0435\u043d\u043e\u0447\u043d\u0443\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u044e, \u0432\u0437\u044f\u0432 \u0437\u0430 \u043e\u0441\u043d\u043e\u0432\u0443 \u0441\u0443\u043c\u043c\u0430\u0440\u043d\u043e\u0435 \u043f\u0440\u043e\u0434\u0432\u0438\u0436\u0435\u043d\u0438\u0435 \u0444\u0438\u0448\u0435\u043a \u043e\u0442 \u0441\u0442\u0430\u0440\u0442\u0430 \u0434\u043e \u0444\u0438\u043d\u0438\u0448\u0430. \u0420\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u0438\u0435 \u0444\u0438\u0448\u043a\u0438 \u043d\u0430 \u0441\u0442\u0430\u0440\u0442\u043e\u0432\u043e\u0439 \u043f\u043e\u0437\u0438\u0446\u0438\u0438 \u0431\u0443\u0434\u0435\u043c \u043e\u0446\u0435\u043d\u0438\u0432\u0430\u0442\u044c \u0432\u0435\u0441\u043e\u043c 0, \u0430 \u0444\u0438\u0448\u043a\u0438, \u043f\u0440\u043e\u0448\u0435\u0434\u0448\u0438\u0435 \u043f\u043e\u043b\u043d\u044b\u0439 \u043f\u0443\u0442\u044c, \u0431\u0443\u0434\u0435\u043c \u043e\u0446\u0435\u043d\u0438\u0432\u0430\u0442\u044c \u043a\u0430\u043a\u0438\u043c \u043d\u0438\u0431\u0443\u0434\u044c \u0431\u043e\u043b\u044c\u0448\u0438\u043c \u0447\u0438\u0441\u043b\u043e\u043c, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 100. \u041e\u0447\u0435\u0432\u0438\u0434\u043d\u043e, \u0447\u0442\u043e \u0435\u0441\u043b\u0438 \u043a\u0430\u043a\u0430\u044f-\u0442\u043e \u0444\u0438\u0448\u043a\u0430 \u0431\u0443\u0434\u0435\u0442 \u0432\u0437\u044f\u0442\u0430, \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043e\u0446\u0435\u043d\u043a\u0438 \u0440\u0435\u0437\u043a\u043e \u0441\u043d\u0438\u0437\u0438\u0442\u0441\u044f (\u0442\u0435\u043c \u0431\u043e\u043b\u044c\u0448\u0435, \u0447\u0435\u043c \u0434\u0430\u043b\u044c\u0448\u0435 \u0444\u0438\u0448\u043a\u0430 \u0443\u0441\u043f\u0435\u043b\u0430 \u043f\u0440\u043e\u0434\u0432\u0438\u043d\u0443\u0442\u044c\u0441\u044f). \u0420\u0430\u0437\u0443\u043c\u0435\u0435\u0442\u0441\u044f, \u0434\u043b\u044f \u043f\u0440\u043e\u0442\u0438\u0432\u043d\u0438\u043a\u0430 \u0431\u0443\u0434\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0442\u0443 \u0436\u0435 \u043e\u0446\u0435\u043d\u043a\u0443, \u0432\u0437\u044f\u0442\u0443\u044e \u0441 \u043e\u0431\u0440\u0430\u0442\u043d\u044b\u043c \u0437\u043d\u0430\u043a\u043e\u043c. \u0427\u0435\u043c \u043b\u0443\u0447\u0448\u0435 \u043f\u043e\u0437\u0438\u0446\u0438\u044f \u043f\u0440\u043e\u0442\u0438\u0432\u043d\u0438\u043a\u0430 \u2014 \u0442\u0435\u043c \u043d\u0430\u0448\u0430 \u0445\u0443\u0436\u0435:<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041f\u0440\u043e\u0441\u0442\u0430\u044f \u043e\u0446\u0435\u043d\u043e\u0447\u043d\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code>VARIABLE\t\twhiteScored VARIABLE\t\tblackScored  : Score ( value piece-type player pos -- score ) \tDUP not-empty-at? IF \t\tDUP player-at White = IF \t\t\twhiteScored -- \t\tELSE \t\t\tblackScored -- \t\tENDIF \t\tDUP ROT SWAP player-at = \t\tROT ROT piece-type-at = \t\tAND NOT IF \t\t\tDROP 0 \t\tENDIF \tELSE \t\tDROP DROP DROP DROP 0 \tENDIF ;  : OnEvaluate ( -- score ) \t 7 \twhiteScored ! \t 7 \tblackScored !  \t 0\t1 White i1 Score \t 0\t1 White j1 Score + \t 0\t1 White k1 Score + \t 0\t1 White l1 Score + \t 0\t1 White m1 Score + \t 0\t1 White n1 Score + \t 0\t1 White o1 Score +  \t 0\t1 Black i5 Score + \t 0\t1 Black j5 Score + \t 0\t1 Black k5 Score + \t 0\t1 Black l5 Score + \t 0\t1 Black m5 Score + \t 0\t1 Black n5 Score + \t 0\t1 Black o5 Score +  \t 1\t1 White l2 Score + \t-1\t1 Black l4 Score + \t 2\t1 White k2 Score + \t-2\t1 Black k4 Score + \t 3\t1 White j2 Score + \t-3\t1 Black j4 Score + \t 4\t1 White i2 Score + \t-4\t1 Black i4 Score + \t 5\t1 White i3 Score + \t-5\t1 Black i3 Score + \t 6\t1 White j3 Score + \t-6\t1 Black j3 Score + \t 7\t1 White k3 Score + \t-7\t1 Black k3 Score + \t 8\t1 White l3 Score + \t-8\t1 Black l3 Score + \t 9\t1 White m3 Score + \t-9\t1 Black m3 Score + \t 10\t1 White n3 Score + \t-10\t1 Black n3 Score + \t 11\t1 White o3 Score + \t-11\t1 Black o3 Score + \t 12\t1 White o2 Score + \t-12\t1 Black o4 Score + \t 13\t1 White p2 Score + \t-13\t1 Black p4 Score + \t 14\t2 White p3 Score + \t-14\t2 Black p3 Score + \t 15\t2 White p4 Score + \t-15\t2 Black p2 Score + \t 16\t2 White o4 Score + \t-16\t2 Black o2 Score + \t 17\t2 White o3 Score + \t-17\t2 Black o3 Score + \t 18\t2 White n3 Score + \t-18\t2 Black n3 Score + \t 19\t2 White m3 Score + \t-19\t2 Black m3 Score + \t 20\t2 White l3 Score + \t-20\t2 Black l3 Score + \t 21\t2 White k3 Score + \t-21\t2 Black k3 Score + \t 22\t2 White j3 Score + \t-22\t2 Black j3 Score + \t 23\t2 White i3 Score + \t-23\t2 Black i3 Score +  \t 1\t1 White c2 Score + \t 1\t1 White c3 Score + \t 1\t1 White c4 Score + \t-1\t1 Black d2 Score + \t-1\t1 Black d3 Score + \t-1\t1 Black d4 Score +  \t 3\t1 White a2 Score + \t 3\t1 White a3 Score + \t 3\t1 White a4 Score + \t-3\t1 Black b2 Score + \t-3\t1 Black b3 Score + \t-3\t1 Black b4 Score +  \t 7\t1 White f2 Score + \t 7\t1 White f3 Score + \t 7\t1 White f4 Score + \t-7\t1 Black f2 Score + \t-7\t1 Black f3 Score + \t-7\t1 Black f4 Score +  \t 10\t1 White g2 Score + \t 10\t1 White g3 Score + \t 10\t1 White g4 Score + \t-10\t1 Black g2 Score + \t-10\t1 Black g3 Score + \t-10\t1 Black g4 Score +  \t 11\t1 White e2 Score + \t 11\t1 White e3 Score + \t 11\t1 White e4 Score + \t-11\t1 Black e2 Score + \t-11\t1 Black e3 Score + \t-11\t1 Black e4 Score +  \t 17\t2 White e2 Score + \t 17\t2 White e3 Score + \t 17\t2 White e4 Score + \t-17\t2 Black e2 Score + \t-17\t2 Black e3 Score + \t-17\t2 Black e4 Score +  \t 18\t2 White g2 Score + \t 18\t2 White g3 Score + \t 18\t2 White g4 Score + \t-18\t2 Black g2 Score + \t-18\t2 Black g3 Score + \t-18\t2 Black g4 Score +  \t 21\t2 White f2 Score + \t 21\t2 White f3 Score + \t 21\t2 White f4 Score + \t-21\t2 Black f2 Score + \t-21\t2 Black f3 Score + \t-21\t2 Black f4 Score +  \t whiteScored @ 100 * + \t blackScored @ 100 * -  \t current-player Black = IF NEGATE ENDIF ; <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  \u041a\u043e\u043d\u0435\u0447\u043d\u043e, Axiom \u043d\u0435 \u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u043d\u0430\u0441 \u043e\u0434\u0438\u043d \u043d\u0430 \u043e\u0434\u0438\u043d \u0441 \u0424\u043e\u0440\u0442\u043e\u043c \u043f\u0440\u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u043e\u0446\u0435\u043d\u043e\u0447\u043d\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438. \u041d\u0430\u043c \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0443\u0434\u043e\u0431\u043d\u044b\u0435 \u043f\u0440\u0438\u043c\u0438\u0442\u0438\u0432\u044b \u0434\u043b\u044f \u043e\u0446\u0435\u043d\u043a\u0438 \u043a\u0430\u043a \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u044c\u043d\u043e\u0439, \u0442\u0430\u043a \u0438 \u043f\u043e\u0437\u0438\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0449\u0438\u0445. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0430\u044f \u043e\u0446\u0435\u043d\u043e\u0447\u043d\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f (\u0441 \u0442\u043e\u0447\u043d\u043e\u0441\u0442\u044c\u044e \u0434\u043e \u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442\u043e\u0432), \u0432\u0437\u044f\u0442\u0430\u044f \u0438\u0437 \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u0430, \u0431\u0443\u0434\u0435\u0442 \u043d\u0435\u043f\u043b\u043e\u0445\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0434\u043b\u044f \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u0430 \u0438\u0433\u0440, \u043d\u0430\u043f\u043e\u0434\u043e\u0431\u0438\u0435 \u0428\u0430\u0448\u0435\u043a \u0438 \u0428\u0430\u0445\u043c\u0430\u0442:<\/p>\n<pre><code>: Mobility ( -- mobilityScore )  \tmove-count                              \\ Number of moves available to us.  \tcurrent-player TRUE 0 $GenerateMoves    \\ Generate moves for opponent  \tmove-count                              \\ Number of moves available to opponent.  \t-                                       \\ #friendlyMoves - #unfriendlyMoves  \t$DeallocateMoves                        \\ Deallocate the opponent's move list  ;  : OnEvaluate ( -- score )  \tMobility  \tcurrent-player material-balance 3 * +  ;<\/code><\/pre>\n<p>  \u0417\u0434\u0435\u0441\u044c \u0432\u044b\u0437\u043e\u0432 <b>move-count<\/b> \u043f\u043e\u0434\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u0442 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0445 \u0445\u043e\u0434\u043e\u0432 \u0438\u0437 \u0442\u0435\u043a\u0443\u0449\u0435\u0439 \u043f\u043e\u0437\u0438\u0446\u0438\u0438, \u0430 <b>material-balance<\/b> \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u0442 \u0441\u0443\u043c\u043c\u0443 \u0432\u0435\u0441\u043e\u0432, \u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u043d\u044b\u0445 \u0444\u0438\u0433\u0443\u0440\u0430\u043c, \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u0430 <b>{value}<\/b> (\u0432 \u043d\u0430\u0448\u0435\u043c \u043a\u043e\u0434\u0435, \u043c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u0435\u0433\u043e \u0434\u043b\u044f \u0437\u0430\u0434\u0430\u043d\u0438\u044f \u0447\u0438\u0441\u043b\u043e\u0432\u044b\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u00ab\u043a\u043e\u0441\u0442\u044f\u043c\u00bb).<\/p>\n<p>  \u0412\u0441\u0451 \u044d\u0442\u043e \u043f\u0440\u0435\u043a\u0440\u0430\u0441\u043d\u043e, \u043d\u043e \u043a\u0430\u043a \u0431\u044b\u0442\u044c \u0432 \u0442\u0435\u0445 \u0441\u043b\u0443\u0447\u0430\u044f\u0445, \u043a\u043e\u0433\u0434\u0430 \u0441\u0430\u043c\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 <a href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%90%D0%BB%D1%8C%D1%84%D0%B0-%D0%B1%D0%B5%D1%82%D0%B0_%D0%BE%D1%82%D1%81%D0%B5%D1%87%D0%B5%D0%BD%D0%B8%D0%B5\">\u043c\u0438\u043d\u0438\u043c\u0430\u043a\u0441\u043d\u043e\u0433\u043e \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430<\/a> \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0438\u0437\u0431\u044b\u0442\u043e\u0447\u043d\u044b\u043c? \u0412 \u0442\u043e\u0439 \u0438\u0433\u0440\u0435, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043f\u044b\u0442\u0430\u0435\u043c\u0441\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u043c\u044b, \u0437\u0430\u0433\u043b\u044f\u0434\u044b\u0432\u0430\u043d\u0438\u0435 \u0431\u043e\u043b\u0435\u0435 \u0447\u0435\u043c \u043d\u0430 \u043e\u0434\u0438\u043d \u0445\u043e\u0434 \u0432\u043f\u0435\u0440\u0451\u0434, \u0441\u043a\u043e\u0440\u0435\u0435 \u0432\u0441\u0435\u0433\u043e, \u043f\u0440\u0438\u0432\u0435\u0434\u0451\u0442 \u043b\u0438\u0448\u044c \u043a \u043d\u0430\u043f\u0440\u0430\u0441\u043d\u043e\u0439 \u0442\u0440\u0430\u0442\u0435 \u0432\u044b\u0447\u0438\u0441\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432. \u041a\u0430\u043a \u044f \u0443\u0436\u0435 <a href=\"http:\/\/habrahabr.ru\/post\/225631\/\">\u043f\u0438\u0441\u0430\u043b<\/a>, \u0437\u0434\u0435\u0441\u044c \u043d\u0430\u043c \u043d\u0443\u0436\u0435\u043d \u043d\u0435 \u00ab\u0418\u0441\u043a\u0443\u0441\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u0438\u043d\u0442\u0435\u043b\u043b\u0435\u043a\u0442\u00bb, \u0430 \u0441\u043a\u043e\u0440\u0435\u0435 \u00ab\u0418\u0441\u043a\u0443\u0441\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u0438\u043d\u0441\u0442\u0438\u043d\u043a\u0442\u00bb! Axiom \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u043d\u0430\u043c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0432\u043c\u0435\u0448\u0430\u0442\u044c\u0441\u044f \u0432 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u0432\u044b\u0431\u043e\u0440\u0430 \u0445\u043e\u0434\u0430 \u043d\u0430 \u0431\u043e\u043b\u0435\u0435 \u0433\u043b\u0443\u0431\u043e\u043a\u043e\u043c \u0443\u0440\u043e\u0432\u043d\u0435:<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u044b\u0439 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u0432\u044b\u0431\u043e\u0440\u0430 \u0445\u043e\u0434\u0430<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code>VARIABLE BestScore\t\t\\ Keep track of the best score found so far by our search engine. VARIABLE Nodes\t\t\t\\ The number of possibilities explored by our search engine. VARIABLE Eated VARIABLE Rosettes  : enemy-value-at ( pos -- value ) \tDUP \tempty-at? \tIF \t\tDROP 0 \tELSE \t\t0 SWAP \t\tplayer-at current-player &lt;&gt; \t\tIF DROP 1 ENDIF \tENDIF ;  : friend-value-at ( pos -- value ) \tDUP \tempty-at? \tIF \t\tDROP 0 \tELSE \t\t1 SWAP \t\tplayer-at current-player &lt;&gt; \t\tIF DROP 0 ENDIF \tENDIF ;  : Make_enemy_p  ( pos -- ) &lt;BUILDS , DOES&gt; @ enemy-value-at ; : Make_friend_p ( pos -- ) &lt;BUILDS , DOES&gt; @ enemy-value-at ;  i1 Make_enemy_p e0 j1 Make_enemy_p e1 k1 Make_enemy_p e2 l1 Make_enemy_p e3 m1 Make_enemy_p e4 n1 Make_enemy_p e5 o1 Make_enemy_p e6 i5 Make_enemy_p e7 j5 Make_enemy_p e8 k5 Make_enemy_p e9 l5 Make_enemy_p e10 m5 Make_enemy_p e11 n5 Make_enemy_p e12 o5 Make_enemy_p e13  i2 Make_friend_p r0 i4 Make_friend_p r1 l3 Make_friend_p r2 o2 Make_friend_p r3 o4 Make_friend_p r4  : CountEated ( -- count ) \te0 e1 + e2 + e3 + e4 + e5 + e6 + e7 + e8 + e9 + e10 + e11 + e12 + e13 + ;  : CountRosettes ( -- count ) \tr0 r1 + r2 + r3 + r4 + ;  : Score ( -- score ) \tEated @ CountEated &lt; IF 10 ELSE 0 ENDIF \tRosettes @ CountRosettes &lt; IF 5 ELSE 0 ENDIF + ;  : Custom-Engine ( -- ) \t-1000 BestScore !\t\t\t\t\\ Keep track of the best score. \t0 Nodes !\t\t\t\t\t\\ Count the number of possibilities explored. \tCountEated Eated ! \tCountRosettes Rosettes ! (   Notes:   1 - We do not need to invoke $GenerateMoves since they have already been generated for the   current player { since ZoG has called DLL_GenerateMoves prior to calling DLL_Search}.    2 - ZoG does not invoke the search engine if there are no moves, so we can safely assume.   that at least one move exists.  Thus we can use BEGIN..UNTIL instead of BEGIN...WHILE..REPEAT   for iterating moves. ) \t$FirstMove\t\t\t\t\t\\ Obtain the address of the first move. \tBEGIN \t\t$CloneBoard\t\t\t\t\\ Create a temporary copy of the current board. \t\tDUP $MoveString CurrentMove!\t\t\\ Inform ZoG of the current move being examined. \t\tDUP .moveCFA EXECUTE\t\t\t\\ Apply the move to the board by executing its code. \t\tScore\t\t\t\t\t\\ Calculate the score for the new board. \t\tBestScore @ OVER &lt;\t\t\t\\ Have we found a better score? \t\tIF \t\t\tDUP BestScore !\t\t\t\\ Save the improved score. \t\t\tScore!\t\t\t\t\\ Inform ZoG of the improved score. \t\t\tDUP $MoveString BestMove! \t\tELSE \t\t\tDROP \t\t\t\t\\ We didn't find a better move, drop the score. \t\tENDIF \t\t$DeallocateBoard\t\t\t\\ Done with the revised board. \t\tNodes ++\t\t\t\t\\ Count one more node explored. \t\tNodes @ Nodes!\t\t\t\t\\ Inform ZoG of the node count. \t\t$Yield\t\t\t\t\t\\ Allow ZoG to dispatch Windows messages. \t\t$NextMove\t\t\t\t\\ Advance to the next move. \t\tDUP NOT\t\t\t\t\t\\ No more moves? \tUNTIL \tDROP ;  {players \t{player}\tWhite\t{search-engine} Custom-Engine \t{player}\tBlack\t{search-engine} Custom-Engine \t{player}\t?Dice\t{random} players} <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  \u0411\u043e\u043b\u044c\u0448\u0430\u044f \u0447\u0430\u0441\u0442\u044c \u044d\u0442\u043e\u0433\u043e \u043a\u043e\u0434\u0430 \u0432\u0437\u044f\u0442\u0430 \u0438\u0437 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438. \u041a\u0430\u043a \u043f\u043e\u043d\u044f\u0442\u043d\u043e \u0438\u0437 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0435\u0432, \u043c\u044b \u043f\u0435\u0440\u0435\u0431\u0438\u0440\u0430\u0435\u043c \u0432\u0441\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0435 \u0445\u043e\u0434\u044b, \u0438 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u043c \u043a \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u043c \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u043c \u043f\u043e\u0437\u0438\u0446\u0438\u044f\u043c \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u043e\u0446\u0435\u043d\u043a\u0438. \u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043e\u0446\u0435\u043d\u043e\u0447\u043d\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438, \u043c\u044b \u043c\u043e\u0433\u043b\u0438 \u0431\u044b \u0431\u0440\u0430\u0442\u044c \u0442\u0443 \u0436\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u044e, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043d\u0430\u043f\u0438\u0441\u0430\u043b\u0438 \u0434\u043b\u044f <b>OnEvaluate<\/b>, \u043d\u043e \u044d\u0442\u043e \u0431\u044b\u043b\u043e \u0431\u044b \u043d\u0435 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e. \u042f \u043f\u043e\u0441\u0442\u0430\u0440\u0430\u043b\u0441\u044f \u0441\u0444\u043e\u0440\u043c\u0443\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043d\u0435\u043a\u0443\u044e \u043f\u0440\u0435\u0434\u0435\u043b\u044c\u043d\u043e \u0430\u0433\u0440\u0435\u0441\u0441\u0438\u0432\u043d\u0443\u044e \u0441\u0442\u0440\u0430\u0442\u0435\u0433\u0438\u044e \u0438\u0433\u0440\u044b. \u0415\u0441\u043b\u0438 \u0435\u0441\u0442\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0432\u0437\u044f\u0442\u044c \u0432\u0440\u0430\u0436\u0435\u0441\u043a\u0443\u044e \u0444\u0438\u0433\u0443\u0440\u0443 \u0438\u043b\u0438 \u0432\u0441\u0442\u0430\u0442\u044c \u043d\u0430 \u00ab\u0440\u043e\u0437\u0435\u0442\u043a\u0443\u00bb, \u044d\u0442\u043e\u0442 \u0445\u043e\u0434 \u0441\u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044f \u043f\u0440\u0435\u0434\u043f\u043e\u0447\u0442\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u043c, \u0435\u0441\u043b\u0438 \u0442\u0430\u043a\u043e\u0439 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u043d\u0435\u0442, \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u0442\u0441\u044f \u043f\u0435\u0440\u0432\u044b\u0439 \u043f\u043e\u043f\u0430\u0432\u0448\u0438\u0439\u0441\u044f \u0445\u043e\u0434.<\/p>\n<p>  \u041a \u0441\u043b\u043e\u0432\u0443 \u0441\u043a\u0430\u0437\u0430\u0442\u044c, \u043f\u0440\u0435\u0434\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u044b\u0435 Axiom \u043f\u0440\u0438\u043c\u0438\u0442\u0438\u0432\u043d\u044b\u0435 \u0438\u0433\u0440\u043e\u0432\u044b\u0435 \u0441\u0442\u0440\u0430\u0442\u0435\u0433\u0438\u0438 <b>{first}<\/b> \u0438 <b>{random}<\/b> \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u044b \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u044b\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c. \u0412\u043e\u0442 \u043a\u0430\u043a \u043e\u043d\u0438 \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u0432 axiom.4th:<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041f\u0440\u0438\u043c\u0438\u0442\u0438\u0432\u043d\u044b\u0435 \u0438\u0433\u0440\u043e\u0432\u044b\u0435 \u0441\u0442\u0440\u0430\u0442\u0435\u0433\u0438\u0438<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code>: $RandomMoveEngine \t$FirstMove \t0 \t$movesList @ CELLSIZE + @ 1- \t$RAND-WITHIN  \tBEGIN \tDUP 0&gt; \tWHILE \t\tSWAP @ SWAP \t\t$Yield \t\t1- \tREPEAT \tDROP  \t( move ) $MoveString DUP CurrentMove! BestMove! \t1 Nodes! 0 Score! 0 Depth! ;  : {random} \t['] $RandomMoveEngine $CompileEngine ;  : $FirstMoveEngine \t$FirstMove $MoveString DUP CurrentMove! BestMove! \t$Yield ;  : {first} \t['] $FirstMoveEngine $CompileEngine ; <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  \u041a\u0430\u043a \u044f \u0443\u0436\u0435 \u0433\u043e\u0432\u043e\u0440\u0438\u043b, \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u0439 (\u043f\u0443\u0441\u0442\u044c \u0434\u0430\u0436\u0435 \u0447\u0430\u0441\u0442\u0438\u0447\u043d\u043e) \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434 \u2014 \u044d\u0442\u043e \u043f\u0440\u0435\u043a\u0440\u0430\u0441\u043d\u043e!<\/p>\n<h4>\u041b\u043e\u0436\u044c, \u043d\u0430\u0433\u043b\u0430\u044f \u043b\u043e\u0436\u044c \u0438 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0430<\/h4>\n<p>  \u0425\u043e\u0440\u043e\u0448\u043e, \u043c\u044b \u0441\u043e\u0437\u0434\u0430\u043b\u0438 \u043d\u043e\u0432\u0443\u044e \u0438\u0433\u0440\u0443 \u0438 \u043c\u043e\u0436\u0435\u043c \u0432 \u043d\u0435\u0451 \u043f\u043e\u0438\u0433\u0440\u0430\u0442\u044c, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f ZoG. \u041c\u044b \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043b\u0438 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u0432 \u0438\u0433\u0440\u044b \u0441 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u043c\u0438 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430\u043c\u0438 \u0432\u044b\u0431\u043e\u0440\u0430 \u0445\u043e\u0434\u0430, \u043d\u043e \u043a\u0430\u043a \u043d\u0430\u043c \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c, \u043a\u0430\u043a\u043e\u0439 \u0438\u0437 \u043d\u0438\u0445 \u043b\u0443\u0447\u0448\u0435? \u041a\u043e\u043d\u0435\u0447\u043d\u043e, \u043c\u043e\u0436\u043d\u043e \u0441\u043e\u0431\u0440\u0430\u0442\u044c \u0434\u0435\u0441\u044f\u0442\u043e\u043a \u00ab\u044d\u043a\u0441\u043f\u0435\u0440\u0442\u043e\u0432\u00bb \u0438 \u043f\u043e\u043f\u0440\u043e\u0441\u0438\u0442\u044c \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0438\u0437 \u043d\u0438\u0445 \u0441\u044b\u0433\u0440\u0430\u0442\u044c \u043f\u043e \u0441\u043e\u0442\u043d\u0435 \u0440\u0430\u0437 \u0441 \u043a\u0430\u0436\u0434\u044b\u043c \u0438\u0437 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u0432. \u041a\u0430\u043a \u0433\u043e\u0432\u043e\u0440\u0438\u043b \u043e\u0434\u0438\u043d \u043c\u043e\u0439 \u0437\u043d\u0430\u043a\u043e\u043c\u044b\u0439, \u00ab\u044d\u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u0440\u0430\u0441\u0442\u044f\u043d\u0443\u0442\u044c\u0441\u044f \u043d\u0430 \u0433\u043e\u0434\u044b\u00bb. \u0415\u0441\u0442\u044c \u0441\u043f\u043e\u0441\u043e\u0431 \u043b\u0443\u0447\u0448\u0435!<\/p>\n<p>  \u0412 \u0441\u043e\u0441\u0442\u0430\u0432\u0435 Axiom \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0443\u0442\u0438\u043b\u0438\u0442\u0430 AutoPlay, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0430\u044f \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f. \u041f\u0435\u0440\u0432\u043e\u0435, \u0447\u0442\u043e \u043c\u044b \u0434\u043e\u043b\u0436\u043d\u044b \u0441\u0434\u0435\u043b\u0430\u0442\u044c, \u0441\u043b\u0435\u0434\u0443\u044f \u043f\u043e \u043f\u0443\u0442\u0438 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u0438 \u2014 \u044d\u0442\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 <b>\u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u0432<\/b> \u0438\u0433\u0440\u044b:<\/p>\n<pre><code>(variant (title &quot;Ur [random]&quot;)) (variant (title &quot;Ur [simple evaluation]&quot;)) (variant (title &quot;Ur [aggressive]&quot;)) <\/code><\/pre>\n<p>  \u0414\u043e\u043f\u0438\u0441\u0430\u0432 \u044d\u0442\u0438 \u0441\u0442\u0440\u043e\u043a\u0438 \u0432 \u043a\u043e\u043d\u0435\u0446 ZRF-\u0444\u0430\u0439\u043b\u0430, \u0437\u0430\u043d\u043e\u0432\u043e \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u043c ZRF Converter, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0437\u0430\u0433\u043e\u0442\u043e\u0432\u043a\u0438 4th-\u0444\u0430\u0439\u043b\u043e\u0432 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u0432 \u0438\u0433\u0440\u044b. \u0412 \u044d\u0442\u0438 \u0444\u0430\u0439\u043b\u044b \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0432\u043d\u0435\u0441\u0442\u0438 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f, \u0432\u043b\u0438\u044f\u044e\u0449\u0438\u0435 \u043d\u0430 \u0441\u0442\u0440\u0430\u0442\u0435\u0433\u0438\u044e, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u0443\u044e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043e\u0439. \u0412\u043e\u0442 \u0442\u0430\u043a, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043e\u0434\u0438\u043d \u0438\u0437 \u043f\u0440\u043e\u0441\u0442\u0435\u0439\u0448\u0438\u0445 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u0432:<\/p>\n<pre><code>LOAD Ur.4th ( Load the base Ur game )  {players \t{player}\tWhite   {random} \t{player}\tBlack   {random} \t{player}\t?Dice\t{random} players} <\/code><\/pre>\n<p>  \u041a\u0430\u043a \u043b\u0435\u0433\u043a\u043e \u0432\u0438\u0434\u0435\u0442\u044c, \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u043f\u0435\u0440\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0442\u044c \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0435 \u0441\u0435\u043a\u0446\u0438\u0438 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f, \u0432\u044b\u043d\u043e\u0441\u044f \u0432\u0435\u0441\u044c \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0439 \u043a\u043e\u0434 \u0432 \u043f\u043e\u0434\u0433\u0440\u0443\u0436\u0430\u0435\u043c\u044b\u0435 \u0444\u0430\u0439\u043b\u044b \u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0432.<\/p>\n<p>  \u041f\u043e\u0441\u043b\u0435 \u0442\u043e\u0433\u043e \u043a\u0430\u043a \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u044b \u0441\u043e\u0437\u0434\u0430\u043d\u044b, \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0438\u0433\u0440\u0443 \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 \u0438\u0433\u0440\u044b \u043e\u0434\u043d\u043e\u0433\u043e \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0430 \u043f\u0440\u043e\u0442\u0438\u0432 \u0434\u0440\u0443\u0433\u043e\u0433\u043e. \u042d\u0442\u043e \u0433\u043b\u0430\u0432\u043d\u043e\u0435 \u0434\u043e\u0441\u0442\u043e\u0438\u043d\u0441\u0442\u0432\u043e AutoPlay! \u041d\u0435 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u044b, \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0438\u0433\u0440\u043e\u043a\u0438 \u0438\u0433\u0440\u0430\u044e\u0442, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f <b>\u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0435<\/b> \u0441\u0442\u0440\u0430\u0442\u0435\u0433\u0438\u0438. \u0414\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0434\u0430\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0443\u044e \u043a\u043e\u043c\u0430\u043d\u0434\u0443:<\/p>\n<pre><code>AutoPlay Ur-[random] Ur-[random] 100 <\/code><\/pre>\n<p>  \u0412\u0441\u0451 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e. \u0417\u0430\u0434\u0430\u0451\u043c \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u044b \u0434\u043b\u044f \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u0438 \u0432\u0442\u043e\u0440\u043e\u0433\u043e \u0438\u0433\u0440\u043e\u043a\u043e\u0432 (\u0432 \u0442\u0435\u043a\u0443\u0449\u0435\u0439 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 AutoPlay \u0431\u043e\u043b\u044c\u0448\u0435\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0438\u0433\u0440\u043e\u043a\u043e\u0432 \u043d\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044f) \u0438 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043f\u0430\u0440\u0442\u0438\u0439. \u0414\u0430\u043b\u044c\u0448\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0441\u0430\u043c\u0430. \u0418 \u0434\u0435\u043b\u0430\u0435\u0442 \u043e\u043d\u0430 \u044d\u0442\u043e \u0433\u043e\u0440\u0430\u0437\u0434\u043e \u0431\u044b\u0441\u0442\u0440\u0435\u0435, \u0447\u0435\u043c \u0435\u0441\u043b\u0438 \u0431\u044b \u044d\u0442\u0438 \u043f\u0430\u0440\u0442\u0438\u0438 \u0438\u0433\u0440\u0430\u043b\u0438\u0441\u044c \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c ZoG! \u041d\u0430 \u0432\u044b\u0445\u043e\u0434\u0435 \u0444\u043e\u0440\u043c\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u0439 \u0444\u0430\u0439\u043b, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0438\u0439 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0432\u0441\u0435\u0445 \u0441\u044b\u0433\u0440\u0430\u043d\u043d\u044b\u0445 \u043f\u0430\u0440\u0442\u0438\u0439 \u0432 ZSG-\u043d\u043e\u0442\u0430\u0446\u0438\u0438. \u0412 \u0441\u0430\u043c\u043e\u043c \u043a\u043e\u043d\u0446\u0435, \u0432\u044b\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u0438\u0442\u043e\u0433\u043e\u0432\u0430\u044f \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0430, \u043f\u043e \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043c\u043e\u0436\u043d\u043e \u0432\u0438\u0434\u0435\u0442\u044c, \u0447\u0442\u043e \u043f\u0440\u0438 \u0443\u0441\u043b\u043e\u0432\u0438\u0438 \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u0445\u043e\u0434\u044b \u0432\u044b\u0431\u0438\u0440\u0430\u044e\u0442\u0441\u044f \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u043e, \u0438\u0433\u0440\u043e\u043a \u0434\u0435\u043b\u0430\u044e\u0449\u0438\u0439 \u043f\u0435\u0440\u0432\u044b\u0439 \u0445\u043e\u0434 \u0438\u043c\u0435\u0435\u0442 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0435 \u043f\u0440\u0435\u0438\u043c\u0443\u0449\u0435\u0441\u0442\u0432\u043e (\u0434\u0430\u0436\u0435 \u0441 \u0443\u0447\u0435\u0442\u043e\u043c \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u043e\u043d \u0432\u0441\u0435\u0433\u0434\u0430 \u0445\u043e\u0434\u0438\u0442 \u043d\u0430 \u00ab\u0435\u0434\u0438\u043d\u0438\u0447\u043a\u0443\u00bb):<\/p>\n<pre><code>Final results: Player 1 &quot;Ur-[random]&quot;, wins = 52. Player 2 &quot;Ur-[random]&quot;, wins = 48. Draws = 0 100 game(s) played <\/code><\/pre>\n<p>  \u041d\u0430\u043b\u0438\u0447\u0438\u0435 \u043f\u043e\u043b\u043d\u043e\u0433\u043e ZSG-\u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043d\u0430\u043c, \u043f\u043e\u0441\u043b\u0435 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438, \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u043b\u044e\u0431\u0443\u044e \u0438\u0437 \u043f\u0430\u0440\u0442\u0438\u0439 \u0432 ZoG \u0438 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0435\u0451 \u043f\u043e\u0448\u0430\u0433\u043e\u0432\u043e. \u041a\u0441\u0442\u0430\u0442\u0438, \u0438\u043c\u0435\u043d\u043d\u043e \u0442\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u0431\u044b\u043b\u0438 \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u044b \u0438 \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u044b <a href=\"https:\/\/github.com\/GlukKazan\/ZoG\/commit\/dfa8daf536aca44696ecc524c218f390c2bddc74\">\u044d\u0442\u0438<\/a> \u043e\u0448\u0438\u0431\u043a\u0438 \u0432 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 (\u043d\u0435 \u0437\u043d\u0430\u044e \u0447\u0435\u043c \u044f \u0434\u0443\u043c\u0430\u043b \u043a\u043e\u0433\u0434\u0430 \u0440\u0435\u0448\u0438\u043b \u043f\u0440\u043e\u0441\u0442\u043e \u0434\u0440\u043e\u043f\u043d\u0443\u0442\u044c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0430 \u0432\u043c\u0435\u0441\u0442\u043e \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u0435\u0433\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c).<\/p>\n<p>  \u0414\u0440\u0443\u0433\u0438\u043c \u0434\u043e\u0441\u0442\u043e\u0438\u043d\u0441\u0442\u0432\u043e\u043c \u043d\u0430\u043b\u0438\u0447\u0438\u044f \u043f\u043e\u043b\u043d\u043e\u0433\u043e ZSG-\u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f, \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0442\u043e, \u0447\u0442\u043e \u043c\u044b, \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0430\u0432 \u0434\u0430\u043d\u043d\u044b\u0435, \u043c\u043e\u0436\u0435\u043c \u0441\u043e\u0431\u0440\u0430\u0442\u044c \u043b\u044e\u0431\u0443\u044e \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u0443\u044e \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0443, \u0435\u0441\u043b\u0438 \u043d\u0430\u0441 \u043d\u0435 \u0443\u0441\u0442\u0440\u043e\u0438\u0442 \u043f\u0440\u043e\u0441\u0442\u043e\u0435 \u0441\u043e\u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u0432\u044b\u0438\u0433\u0440\u0430\u043d\u043d\u044b\u0445\/\u043f\u0440\u043e\u0438\u0433\u0440\u0430\u043d\u043d\u044b\u0445 \u043f\u0430\u0440\u0442\u0438\u0439. \u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u043d\u0438\u0436\u0435 \u0441\u043a\u0440\u0438\u043f\u0442 \u0432\u044b\u0432\u043e\u0434\u0438\u0442 \u0434\u0430\u043d\u043d\u044b\u0435 \u043e \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u043f\u0430\u0440\u0442\u0438\u0439, \u0438\u0442\u043e\u0433\u043e\u0432\u043e\u043c \u0441\u0447\u0451\u0442\u0435 \u043d\u0430 \u043a\u043e\u043d\u0435\u0446 \u043f\u0430\u0440\u0442\u0438\u0438, \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u043e\u0432 \u0445\u043e\u0434\u0430 \u0438 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0435 \u0444\u0438\u0448\u0435\u043a \u00ab\u0441\u0440\u0443\u0431\u043b\u0435\u043d\u043d\u044b\u0445\u00bb \u043a\u0430\u0436\u0434\u044b\u043c \u0438\u0437 \u0438\u0433\u0440\u043e\u043a\u043e\u0432:<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0421\u043a\u0440\u0438\u043f\u0442 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0434\u0430\u043d\u043d\u044b\u0445<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"perl\">#!\/usr\/bin\/perl -w  my @S = (0, 0, 0, 0, 0, 0); my $ix = 0; my $T;  while (&lt;&gt;) {     if (\/results\/) {         my $d = $S[0] - $S[1];         print &quot;$T, $d, $S[3], $S[2], $S[4], $S[5]\\n&quot;;         @S = (0, 0, 0, 0, 0, 0);         $ix = 0;     } else {         if (\/^(\\d+)\\.\\s+[^?].*$\/) {              $T = $1;              if (\/x h3\/) {                  $S[$ix]++;              }              if (\/Pass|^(\\d+)\\.\\s+x\\s+q5\\s*$\/) {                  $S[$ix + 2]++;              }              if (\/Black init [ijklmno]5\/) {                  $S[4]++;              }              if (\/White init [ijklmno]1\/) {                  $S[5]++;              }              $ix++;              if ($ix &gt; 1) {                  $ix = 0;              }         }     } } <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c \u0443 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c \u0432\u0441\u0451 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0435 \u0434\u043b\u044f \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0430 \u0438\u0433\u0440\u044b \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0430\u043d\u043d\u044b\u0445 \u043d\u0430\u043c\u0438 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u0432. \u0411\u0443\u0434\u0435\u043c \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0442\u044c \u0442\u0440\u0438 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0430:<\/p>\n<ul>\n<li>\u0421\u043e \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u043c \u0432\u044b\u0431\u043e\u0440\u043e\u043c \u0445\u043e\u0434\u0430 (<b>random<\/b>)<\/li>\n<li>\u0421 \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u043e\u0446\u0435\u043d\u043e\u0447\u043d\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0435\u0439 (<b>simple<\/b>)<\/li>\n<li>\u0421 \u00ab\u0430\u0433\u0440\u0435\u0441\u0441\u0438\u0432\u043d\u044b\u043c\u00bb \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u043e\u043c \u0432\u044b\u0431\u043e\u0440\u0430 \u0445\u043e\u0434\u0430 (<b>agressive<\/b>)<\/li>\n<\/ul>\n<p>   <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">random vs random<\/b><\/p>\n<div class=\"spoiler_text\">\u041f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u043f\u0430\u0440\u0442\u0438\u0438 (\u0435\u0441\u043b\u0438 \u043f\u0440\u043e\u0442\u0438\u0432\u043d\u0438\u043a\u0438 \u043d\u0435 \u0441\u0442\u0430\u0440\u0430\u044e\u0442\u0441\u044f \u0437\u0430\u0442\u044f\u043d\u0443\u0442\u044c \u0438\u0433\u0440\u0443, \u0432 \u0441\u0440\u0435\u0434\u043d\u0435\u043c, \u0447\u0443\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u0435 150 \u0445\u043e\u0434\u043e\u0432):<\/p>\n<p>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/getpro\/habr\/post_images\/ee8\/58f\/3a3\/ee858f3a3746fb301b090bf5aa820e49.png\"\/><\/p>\n<p>  \u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0444\u0438\u0448\u0435\u043a, \u043e\u0441\u0442\u0430\u0432\u0448\u0438\u0445\u0441\u044f \u043d\u0430 \u0434\u043e\u0441\u043a\u0435 (\u043e\u0442\u0440\u0438\u0446\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u2014 \u043f\u0440\u043e\u0438\u0433\u0440\u044b\u0448 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u0438\u0433\u0440\u043e\u043a\u0430):<\/p>\n<p>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/getpro\/habr\/post_images\/9be\/654\/40b\/9be65440bf3ce08f9e1b1dc5a5a996ed.png\"\/><\/p>\n<p>  \u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u00ab\u0441\u0440\u0443\u0431\u0430\u0435\u043c\u044b\u0445\u00bb \u0438\u0433\u0440\u043e\u043a\u0430\u043c\u0438 \u0444\u0438\u0448\u0435\u043a \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u043e:<\/p>\n<p>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/getpro\/habr\/post_images\/a98\/d14\/9dd\/a98d149dd124be1844789442cfe603fa.png\"\/><\/p>\n<p>  \u041c\u044b \u0432\u0438\u0434\u0438\u043c, \u0447\u0442\u043e \u0438\u0433\u0440\u043e\u043a, \u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0449\u0438\u0439 \u043f\u0435\u0440\u0432\u044b\u043c, \u0438\u043c\u0435\u0435\u0442 \u043d\u0435\u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u043f\u0440\u0435\u0438\u043c\u0443\u0449\u0435\u0441\u0442\u0432\u043e:<\/p>\n<pre><code>Final results: Player 1 &quot;Ur-[random]&quot;, wins = 52. Player 2 &quot;Ur-[random]&quot;, wins = 48. Draws = 0 100 game(s) played <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>   <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">random vs simple<\/b><\/p>\n<div class=\"spoiler_text\">\u0421\u0447\u0451\u0442:<\/p>\n<p>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/getpro\/habr\/post_images\/d9b\/77e\/c88\/d9b77ec88da646a1d531b10c75e8fb70.png\"\/><\/p>\n<p>  \u041f\u0440\u043e\u0442\u0438\u0432\u043d\u0438\u043a\u0438 \u0438\u0433\u0440\u0430\u044e\u0442 \u043d\u0430 \u0440\u0430\u0432\u043d\u044b\u0445:<\/p>\n<pre><code>Final results: Player 1 &quot;Ur-[random]&quot;, wins = 50. Player 2 &quot;Ur-[simple-evaluation]&quot;, wins = 50. Draws = 0 100 game(s) played <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>   <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">simple vs random<\/b><\/p>\n<div class=\"spoiler_text\">\u041f\u0430\u0440\u0442\u0438\u044f \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0437\u0430\u0442\u044f\u0433\u0438\u0432\u0430\u0435\u0442\u0441\u044f:<\/p>\n<p>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/getpro\/habr\/post_images\/abe\/09f\/203\/abe09f20318267ae988b8a28897790a9.png\"\/><\/p>\n<p>  \u041d\u043e \u0431\u043e\u043b\u0435\u0435 \u00ab\u0443\u043c\u043d\u044b\u0439\u00bb \u0438\u0433\u0440\u043e\u043a \u0443\u0432\u0435\u0440\u0435\u043d\u043d\u043e \u0432\u0435\u0434\u0451\u0442 \u0432 \u0441\u0447\u0435\u0442\u0435:<\/p>\n<p>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/getpro\/habr\/post_images\/f7f\/d62\/a5a\/f7fd62a5ac885c7b76b4ff5c98561b50.png\"\/><\/p>\n<pre><code>Final results: Player 1 &quot;Ur-[simple-evaluation]&quot;, wins = 87. Player 2 &quot;Ur-[random]&quot;, wins = 13. Draws = 0 100 game(s) played <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>   <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">random vs agressive<\/b><\/p>\n<div class=\"spoiler_text\">\u041f\u0430\u0440\u0442\u0438\u044f \u0435\u0449\u0451 \u0431\u043e\u043b\u044c\u0448\u0435 \u0437\u0430\u0442\u044f\u0433\u0438\u0432\u0430\u0435\u0442\u0441\u044f:<\/p>\n<p>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/getpro\/habr\/post_images\/53c\/241\/56a\/53c24156ae7c2aa6fafa869fc193654e.png\"\/><\/p>\n<p>  \u041d\u043e <b>random<\/b> \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442 \u043f\u0440\u043e\u0438\u0433\u0440\u044b\u0432\u0430\u0442\u044c (\u0434\u0430\u0436\u0435 \u043a\u043e\u0433\u0434\u0430 \u043e\u043d \u0445\u043e\u0434\u0438\u0442 \u043f\u0435\u0440\u0432\u044b\u043c):<\/p>\n<p>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/getpro\/habr\/post_images\/717\/3be\/b67\/7173beb67106f384d3edc036eb176de0.png\"\/><\/p>\n<p>  \u0427\u0442\u043e\u0431\u044b \u043f\u043e\u043d\u044f\u0442\u044c, \u043f\u043e\u0447\u0435\u043c\u0443 \u0442\u0430\u043a \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442, \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0444\u0438\u0448\u0435\u043a \u00ab\u0441\u0440\u0443\u0431\u0430\u0435\u0442\u00bb \u043a\u0430\u0436\u0434\u044b\u0439 \u0438\u0433\u0440\u043e\u043a:<\/p>\n<p>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/getpro\/habr\/post_images\/bf9\/350\/a7f\/bf9350a7fcdb90877992651a8b70b8e9.png\"\/><\/p>\n<p>  \u0410\u0433\u0440\u0435\u0441\u0441\u0438\u0432\u043d\u044b\u0439 \u0438\u0433\u0440\u043e\u043a \u00ab\u0441\u0440\u0443\u0431\u0430\u0435\u0442\u00bb \u043d\u0435\u043c\u0430\u043b\u043e, \u043d\u043e \u0438 \u0441\u0430\u043c \u043f\u043e\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0442\u0430\u043a\u0436\u0435!<\/p>\n<pre><code>Final results: Player 1 &quot;Ur-[random]&quot;, wins = 25. Player 2 &quot;Ur-[aggressive]&quot;, wins = 75. Draws = 0 100 game(s) played <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>   <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">agressive vs random<\/b><\/p>\n<div class=\"spoiler_text\">\u041f\u0430\u0440\u0442\u0438\u044f \u0432\u043d\u043e\u0432\u044c \u043f\u0440\u043e\u0445\u043e\u0434\u0438\u0442 \u0431\u044b\u0441\u0442\u0440\u0435\u0435:<\/p>\n<p>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/getpro\/habr\/post_images\/4cb\/c8e\/a8e\/4cbc8ea8e171a51e2334117b967878ba.png\"\/><\/p>\n<p>  \u041d\u043e \u00ab\u0430\u0433\u0440\u0435\u0441\u0441\u0438\u0432\u043d\u044b\u0439\u00bb \u0438\u0433\u0440\u043e\u043a \u0433\u0440\u043e\u043c\u0438\u0442 \u00ab\u0441\u043b\u0443\u0447\u0430\u0439\u043d\u043e\u0433\u043e\u00bb \u043f\u043e\u0447\u0442\u0438 \u0432\u0441\u0443\u0445\u0443\u044e!<\/p>\n<p>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/getpro\/habr\/post_images\/720\/8c5\/d00\/7208c5d003c30afa3b178687c9018863.png\"\/><\/p>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c, \u043e\u043d \u00ab\u0441\u0440\u0443\u0431\u0430\u0435\u0442\u00bb \u0433\u043e\u0440\u0430\u0437\u0434\u043e \u0431\u043e\u043b\u044c\u0448\u0435, \u0447\u0435\u043c \u043f\u0440\u043e\u0442\u0438\u0432\u043d\u0438\u043a:<\/p>\n<p>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/getpro\/habr\/post_images\/b73\/e91\/431\/b73e91431f7fa0508750422762e2fdf8.png\"\/><\/p>\n<pre><code>Final results: Player 1 &quot;Ur-[aggressive]&quot;, wins = 90. Player 2 &quot;Ur-[random]&quot;, wins = 10. Draws = 0 100 game(s) played <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>   <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">simple vs agressive<\/b><\/p>\n<div class=\"spoiler_text\">\u041a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e, \u043d\u0430\u043c \u043d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u043d\u0430\u0439\u0442\u0438 \u0438\u0434\u0435\u0430\u043b\u044c\u043d\u0443\u044e \u0441\u0442\u0440\u0430\u0442\u0435\u0433\u0438\u044e. \u041d\u0430\u0447\u0438\u043d\u0430\u044f \u043f\u0435\u0440\u0432\u044b\u043c, <b>simple<\/b> \u0432\u043d\u043e\u0432\u044c \u0432\u0435\u0434\u0451\u0442 \u0432 \u0441\u0447\u0435\u0442\u0435:<\/p>\n<p>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/getpro\/habr\/post_images\/31a\/eb7\/5df\/31aeb75df74c3b9423605015f5e52024.png\"\/><\/p>\n<p>  \u041f\u0430\u0440\u0442\u0438\u044f \u0437\u0430\u0442\u044f\u0433\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0435\u0449\u0451 \u0431\u043e\u043b\u044c\u0448\u0435!<\/p>\n<p>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/getpro\/habr\/post_images\/e6b\/472\/cbe\/e6b472cbe0a921ce2bddfc91f9006410.png\"\/><\/p>\n<pre><code>Final results: Player 1 &quot;Ur-[simple-evaluation]&quot;, wins = 73. Player 2 &quot;Ur-[aggressive]&quot;, wins = 27. Draws = 0 100 game(s) played <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">agressive vs simple<\/b><\/p>\n<div class=\"spoiler_text\">\u041f\u0430\u0440\u0442\u0438\u044f <b>\u043d\u0435<\/b> \u0437\u0430\u0442\u044f\u0433\u0438\u0432\u0430\u0435\u0442\u0441\u044f, \u0435\u0441\u043b\u0438 <b>agressive<\/b> \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442 \u043f\u0435\u0440\u0432\u044b\u043c: <\/p>\n<p>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/getpro\/habr\/post_images\/a4a\/a7a\/da7\/a4aa7ada738b3c37b1cebc6ac6764860.png\"\/><\/p>\n<p>  \u041e\u043d \u0441\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0441 \u00ab\u043f\u0440\u043e\u0441\u0442\u044b\u043c\u00bb \u043f\u0440\u043e\u0442\u0438\u0432\u043d\u0438\u043a\u043e\u043c, \u043d\u043e \u0443\u0436\u0435 \u043d\u0435 \u0442\u0430\u043a \u043b\u0435\u0433\u043a\u043e, \u043a\u0430\u043a \u0441 \u00ab\u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u043c\u00bb:<\/p>\n<p>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/getpro\/habr\/post_images\/bb7\/eee\/768\/bb7eee768c81086022c0c1b9179feaac.png\"\/><\/p>\n<pre><code>Final results: Player 1 &quot;Ur-[aggressive]&quot;, wins = 64. Player 2 &quot;Ur-[simple-evaluation]&quot;, wins = 36. Draws = 0 100 game(s) played <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  \u041a\u0441\u0442\u0430\u0442\u0438, \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043d\u0430 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0443\u044e \u0437\u0430\u043c\u0435\u0447\u0430\u0442\u0435\u043b\u044c\u043d\u0443\u044e \u0441\u0442\u0440\u043e\u043a\u0443:<\/p>\n<pre><code>Draws = 0 <\/code><\/pre>\n<p>  \u0414\u0435\u043b\u043e \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e Axiom \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442 \u0441\u043f\u043e\u0441\u043e\u0431 \u0431\u043e\u0440\u044c\u0431\u044b \u0441 \u00ab3-Time Repetition Draw!\u00bb. \u042f \u0442\u0449\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u0440\u043e\u0448\u0442\u0443\u0434\u0438\u0440\u043e\u0432\u0430\u043b \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0439 \u0440\u0430\u0437\u0434\u0435\u043b \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 \u0438 \u043f\u0440\u0435\u0434\u043f\u0440\u0438\u043d\u044f\u043b \u0432\u0441\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f. \u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u0432 ZoG \u044d\u0442\u0430 \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044f \u0432\u0441\u0451 \u0440\u0430\u0432\u043d\u043e \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u0435\u0442. \u041e\u0431\u044b\u0447\u043d\u043e \u044d\u0442\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u043a\u043e\u0433\u0434\u0430 \u0434\u043b\u0438\u043d\u043d\u044b\u0435 \u0446\u0435\u043f\u043e\u0447\u043a\u0438 (3-4 \u0444\u0438\u0448\u043a\u0438 \u043f\u043e\u0434\u0440\u044f\u0434) \u0431\u0435\u043b\u044b\u0445 \u0438 \u0447\u0451\u0440\u043d\u044b\u0445 \u0444\u0438\u0448\u0435\u043a \u0431\u043b\u043e\u043a\u0438\u0440\u0443\u044e\u0442 \u0434\u0440\u0443\u0433 \u0434\u0440\u0443\u0433\u0430. \u0412 \u00ab\u041a\u043e\u0440\u043e\u043b\u0435\u0432\u0441\u043a\u043e\u043c \u0423\u0440\u00bb, \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u044b\u043c \u043f\u043e\u043b\u044f\u043c, \u0441\u043f\u043e\u0441\u043e\u0431 \u0440\u0430\u0437\u043e\u0439\u0442\u0438\u0441\u044c \u0434\u043b\u044f \u043d\u0438\u0445 \u0432\u0441\u0435\u0433\u0434\u0430 \u0435\u0441\u0442\u044c, \u043d\u043e ZoG (\u0434\u0430\u0436\u0435 \u043f\u043e\u0434 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u043c Axiom) \u043d\u0435 \u0434\u043e\u0436\u0438\u0434\u0430\u0435\u0442\u0441\u044f \u043f\u043e\u043a\u0430 \u0444\u0438\u0448\u043a\u0438 \u0440\u0430\u0437\u043e\u0439\u0434\u0443\u0442\u0441\u044f! \u0410 \u0432\u043e\u0442 AutoPlay, \u0434\u043e\u0438\u0433\u0440\u044b\u0432\u0430\u0435\u0442 \u0432\u0441\u0435 \u043f\u0430\u0440\u0442\u0438\u0438 \u0434\u043e \u043a\u043e\u043d\u0446\u0430. \u0412 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0435, \u043a\u0430\u043a \u044f \u0443\u0436\u0435 \u0433\u043e\u0432\u043e\u0440\u0438\u043b, \u0435\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u0434\u0430\u0436\u0435 \u0431\u0435\u0437 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u043e\u0433\u043e \u0438 \u043a\u0443\u043f\u043b\u0435\u043d\u043d\u043e\u0433\u043e ZoG, \u043f\u0440\u043e\u0441\u0442\u043e \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 \u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u043d\u0435 \u0431\u0443\u0434\u0435\u0442.<\/p>\n<h4>\u2026 \u0438 \u0442\u044b\u0441\u044f\u0447\u0430 \u0441\u043b\u043e\u043d\u043e\u0432!<\/h4>\n<p>  \u041a\u043e\u043d\u0435\u0447\u043d\u043e, \u0432\u0441\u0435\u0433\u043e \u043b\u0438\u0448\u044c \u0432 \u043e\u0434\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u0442\u044c \u0432\u0441\u0451 \u043e \u0442\u0430\u043a\u043e\u043c \u0441\u043b\u043e\u0436\u043d\u043e\u043c \u0438 \u043c\u043d\u043e\u0433\u043e\u0433\u0440\u0430\u043d\u043d\u043e\u043c \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u0435 \u043a\u0430\u043a Axiom Development Kit. \u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u0442\u0435, \u043a\u0430\u043a\u0438\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0437\u0430\u044f\u0432\u043b\u0435\u043d\u044b \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430\u043c\u0438:<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">Axiom Engine Features<\/b><\/p>\n<div class=\"spoiler_text\">\n<ul>\n<li>Contains a universal game engine designed to play a large variety of games. The search engine is not optimized for any particular class of games. <\/li>\n<li>Allows (actually requires) the game programmer to specify a custom game AI. This is one of the main benefits of Axiom. Some &#8216;built-in&#8217; AI helpers are provided. For example, one helper is simply the difference between the number of available moves for each player, another takes into consideration material advantage. The list is expected to grow over time. <\/li>\n<li>\u00abMinimax with Alpha-Beta pruning\u00bb search algorithm. <\/li>\n<li>Iterative deepening with transposition table. <\/li>\n<li>Zobrist hashing <\/li>\n<li>Limited move reordering based on &#8216;best move from previous iteration&#8217; stored in the transposition table. <\/li>\n<li>Full width searching. <\/li>\n<li>Support for &#8216;partial&#8217; and &#8216;pass&#8217; moves. <\/li>\n<li>Supports &#8216;teams&#8217;. <\/li>\n<li>Time management. <\/li>\n<li>Supports additional user-supplied custom engines. <\/li>\n<li>Programmer controlled quiescence (currently experimental)<\/li>\n<\/ul>\n<\/div>\n<\/div>\n<p>  \u0417\u0434\u0435\u0441\u044c \u0435\u0441\u0442\u044c \u0438 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044f \u0432\u0440\u0435\u043c\u0435\u043d\u0438, \u0438 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u043d\u043e\u0439 \u0438\u0433\u0440\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0442\u0430\u043a \u043d\u0435 \u0445\u0432\u0430\u0442\u0430\u043b\u043e \u0432 ZoG. Axiom \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u0443\u044e \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 \u0434\u0430\u043d\u043d\u044b\u0445 (Ring Buffer) \u0434\u043b\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0438\u0433\u0440 \u043d\u0430 \u00ab\u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435\u00bb \u0438 \u00ab\u0437\u0430\u0445\u0432\u0430\u0442 \u0442\u0435\u0440\u0440\u0438\u0442\u043e\u0440\u0438\u0438\u00bb. \u041d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0440\u0430\u0441\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u0442 \u0442\u043e\u0442 \u0444\u0430\u043a\u0442, \u0447\u0442\u043e \u043d\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u044b \u0444\u0438\u0433\u0443\u0440 (\u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0432 ZoG, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u0430 \u0448\u0430\u0445\u043c\u0430\u0442\u043d\u0430\u044f \u0440\u043e\u043a\u0438\u0440\u043e\u0432\u043a\u0430), \u043d\u043e Axiom \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0435\u0439, \u0447\u0442\u043e\u0431\u044b \u043e\u0431\u043e\u0439\u0442\u0438 \u044d\u0442\u043e \u0434\u043e\u0441\u0430\u0434\u043d\u043e\u0435 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435.<\/p>\n<p>  \u041e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0445 \u0438 \u043e\u0447\u0435\u043d\u044c \u0442\u0451\u043f\u043b\u044b\u0445 \u0441\u043b\u043e\u0432 \u0437\u0430\u0441\u043b\u0443\u0436\u0438\u0432\u0430\u0435\u0442 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u043e \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 \u0438 \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u0432. \u041e\u0447\u0435\u043d\u044c \u0441\u043b\u043e\u0436\u043d\u044b\u0439 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b \u043f\u0440\u0435\u043f\u043e\u0434\u043d\u0435\u0441\u0451\u043d \u0442\u0430\u043a, \u0447\u0442\u043e \u0435\u0433\u043e \u0443\u0441\u0432\u043e\u0435\u043d\u0438\u0435 \u043d\u0435 \u0441\u0432\u044f\u0437\u0430\u043d\u043e \u0441 \u043a\u0430\u043a\u0438\u043c\u0438 \u043b\u0438\u0431\u043e \u0442\u0440\u0443\u0434\u043d\u043e\u0441\u0442\u044f\u043c\u0438. \u0418 \u0434\u0430\u0436\u0435 \u0435\u0441\u043b\u0438 \u044d\u0442\u043e\u0433\u043e \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u0430 \u043e\u043a\u0430\u0436\u0435\u0442\u0441\u044f \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e, \u043d\u0430 \u0441\u0430\u0439\u0442\u0435 ZoG \u0438\u043c\u0435\u0435\u0442\u0441\u044f <a href=\"http:\/\/www.zillions-of-games.com\/cgi-bin\/zilligames\/submissions.cgi?theme=39\">\u0431\u043e\u043b\u0435\u0435 60<\/a> \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u0435\u0439\u0448\u0438\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439, \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0430\u043d\u043d\u044b\u0445 \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c Axiom, \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0445 \u0434\u043b\u044f \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u0438 \u0438\u0437\u0443\u0447\u0435\u043d\u0438\u044f.        \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\/226235\/\"> http:\/\/habrahabr.ru\/post\/226235\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div class=\"content html_format\">     \t<img decoding=\"async\" align=\"left\" src=\"http:\/\/habrastorage.org\/getpro\/habr\/post_images\/98d\/bc3\/51e\/98dbc351e979ce63c45242c7ddb798fd.jpg\"\/><i><b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\u0421\u0442\u0430\u0440\u044b\u0439 \u0441\u0435\u0440\u044b\u0439 \u043e\u0441\u043b\u0438\u043a \u0418\u0430-\u0418\u0430 \u0441\u0442\u043e\u044f\u043b \u043e\u0434\u0438\u043d-\u043e\u0434\u0438\u043d\u0435\u0448\u0435\u043d\u0435\u043a \u0432 \u0437\u0430\u0440\u043e\u0441\u0448\u0435\u043c \u0447\u0435\u0440\u0442\u043e\u043f\u043e\u043b\u043e\u0445\u043e\u043c \u0443\u0433\u043e\u043b\u043a\u0435 \u041b\u0435\u0441\u0430, \u0448\u0438\u0440\u043e\u043a\u043e \u0440\u0430\u0441\u0441\u0442\u0430\u0432\u0438\u0432 \u043f\u0435\u0440\u0435\u0434\u043d\u0438\u0435 \u043d\u043e\u0433\u0438 \u0438 \u0441\u0432\u0435\u0441\u0438\u0432 \u0433\u043e\u043b\u043e\u0432\u0443 \u043d\u0430\u0431\u043e\u043a, \u0438 \u0434\u0443\u043c\u0430\u043b \u043e \u0421\u0435\u0440\u044c\u0435\u0437\u043d\u044b\u0445 \u0412\u0435\u0449\u0430\u0445.<\/p>\n<p>  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\u0410. \u041c\u0438\u043b\u043d \u00ab\u0412\u0438\u043d\u043d\u0438-\u041f\u0443\u0445 \u0438 \u0432\u0441\u0435-\u0432\u0441\u0435-\u0432\u0441\u0435\u00bb<\/p>\n<p>  \u2014 \u0412\u0438\u0434\u0438\u0442\u0435 \u043e\u0441\u043b\u0438\u043a\u0430? \u2014 \u0441\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u044e \u044f \u043c\u0438\u043b\u0438\u0446\u0438\u043e\u043d\u0435\u0440\u0430. \u2014 \u0412\u043e\u043d \u0442\u0430\u043c \u043c\u0430\u043b\u0435\u043d\u044c\u043a\u0438\u0439 \u0441\u0435\u0440\u044b\u0439 \u043e\u0441\u043b\u0438\u043a\u2026 \u0410\u0440\u0442\u0438\u043a\u0443\u043b 2908. \u0426\u0435\u043d\u0430 \u0442\u0440\u0438\u0434\u0446\u0430\u0442\u044c \u0434\u0432\u0435 \u043a\u043e\u043f\u0435\u0439\u043a\u0438. \u0423 \u043d\u0435\u0433\u043e \u0432\u0435\u043b\u0438\u043a\u043e\u0435 \u0431\u0443\u0434\u0443\u0449\u0435\u0435.<br \/>  \u2014 \u0423 \u043e\u0441\u043b\u0438\u043a\u043e\u0432 \u044d\u0442\u043e \u0431\u044b\u0432\u0430\u0435\u0442, \u2014 \u0441\u043e\u0433\u043b\u0430\u0448\u0430\u0435\u0442\u0441\u044f \u043c\u0438\u043b\u0438\u0446\u0438\u043e\u043d\u0435\u0440. \u2014 \u0423 \u043d\u0438\u0445 \u0438\u043d\u043e\u0433\u0434\u0430 \u0431\u044b\u0432\u0430\u0435\u0442 \u043e\u0447\u0435\u043d\u044c \u0431\u043e\u043b\u044c\u0448\u043e\u0435 \u0431\u0443\u0434\u0443\u0449\u0435\u0435.<\/p>\n<p>  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\u0413\u0435\u043d\u0440\u0438\u0445 \u0410\u043b\u044c\u0442\u043e\u0432 \u00ab\u041e\u0441\u043b\u0438\u043a \u0438 \u0430\u043a\u0441\u0438\u043e\u043c\u0430\u00bb<br \/>  <\/b><\/i><\/p>\n<p>  \u0427\u0442\u043e \u0441\u0430\u043c\u043e\u0435 \u0441\u043b\u043e\u0436\u043d\u043e\u0435 \u0432 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u043d\u0430\u0441\u0442\u043e\u043b\u044c\u043d\u044b\u0445 \u0438\u0433\u0440? \u041e\u0447\u0435\u0432\u0438\u0434\u043d\u043e, \u043d\u0435 \u0430\u043d\u0438\u043c\u0430\u0446\u0438\u044f \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0435\u043d\u0438\u044f \u0444\u0438\u0433\u0443\u0440 \u043f\u043e \u0434\u043e\u0441\u043a\u0435. \u0421\u043b\u043e\u0436\u043d\u043e \u043f\u0440\u0438\u0434\u0443\u043c\u0430\u0442\u044c \u0440\u0430\u0437\u0443\u043c\u043d\u044b\u0435 \u0438 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0435 \u0438\u0433\u0440\u043e\u0432\u044b\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u0430. \u0411\u044b\u0432\u0430\u0435\u0442 \u043e\u0447\u0435\u043d\u044c \u0441\u043b\u043e\u0436\u043d\u043e \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0442\u044c \u0438\u0433\u0440\u043e\u0432\u043e\u0439 \u0431\u0430\u043b\u0430\u043d\u0441. \u0415\u0441\u043b\u0438 \u043c\u044b \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u043c\u0441\u044f \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u043d\u043e\u0439 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u043e\u0439, \u0437\u0430\u0447\u0430\u0441\u0442\u0443\u044e, \u0431\u0435\u0437\u0443\u043c\u043d\u043e \u0441\u043b\u043e\u0436\u043d\u043e \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 AI (\u0434\u043b\u044f \u0442\u0430\u043a\u0438\u0445 \u0438\u0433\u0440 \u043a\u0430\u043a \u0413\u043e \u0438\u043b\u0438 \u0421\u0451\u0433\u0438 \u044d\u0442\u0430 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u043d\u0435 \u0440\u0435\u0448\u0435\u043d\u0430 \u0434\u043e \u0441\u0438\u0445 \u043f\u043e\u0440). \u0418 \u0434\u0430\u0436\u0435 \u0435\u0441\u043b\u0438 \u043d\u0430\u043c \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0438\u0439 AI, \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u043f\u0440\u043e\u0434\u0435\u043b\u0430\u0442\u044c \u043e\u0447\u0435\u043d\u044c \u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u043e\u0431\u044a\u0435\u043c \u0440\u0430\u0431\u043e\u0442, \u0447\u0442\u043e\u0431\u044b \u043e\u0446\u0435\u043d\u0438\u0442\u044c \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u043e \u0435\u0433\u043e \u0440\u0430\u0431\u043e\u0442\u044b \u0438 \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u0438\u0437 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0445 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u0432 \u043d\u0430\u0438\u043b\u0443\u0447\u0448\u0438\u0439.<\/p>\n<p>  \u042f \u0445\u043e\u0447\u0443 \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u0442\u044c \u043e\u0431 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0435, \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u043c \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0443\u043f\u0440\u043e\u0441\u0442\u0438\u0442\u044c \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0432\u0441\u0435\u0445 \u044d\u0442\u0438\u0445 \u0432\u043e\u043f\u0440\u043e\u0441\u043e\u0432. <a href=\"http:\/\/www.zillions-of-games.com\/cgi-bin\/zilligames\/submissions.cgi?do=show;id=1452\">Axiom Development Kit<\/a> \u0437\u0430\u0434\u0443\u043c\u044b\u0432\u0430\u043b\u0430\u0441\u044c \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430\u043c\u0438 \u043a\u0430\u043a \u0441\u043f\u043e\u0441\u043e\u0431 \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u044f <a href=\"http:\/\/www.zillions-of-games.com\/\">Zillions of Games<\/a>. \u0412 \u0447\u0430\u0441\u0442\u043d\u043e\u0441\u0442\u0438, \u043e\u043d\u0430 \u043e\u0440\u0438\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0430 \u043d\u0430 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e \u0438\u0433\u0440, \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0445 \u0441 \u0437\u0430\u0445\u0432\u0430\u0442\u043e\u043c \u0442\u0435\u0440\u0440\u0438\u0442\u043e\u0440\u0438\u0438 (\u0442\u0430\u043a\u0438\u0445 \u043a\u0430\u043a \u0413\u043e), \u0441 \u043a\u043e\u0442\u043e\u0440\u044b\u043c\u0438 AI ZoG \u0441\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043e\u0447\u0435\u043d\u044c \u043f\u043b\u043e\u0445\u043e. \u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u0410\u043a\u0441\u0438\u043e\u043c\u0430 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0440\u0430\u0441\u0448\u0438\u0440\u044f\u0435\u0442 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 ZoG-\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432, \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044f \u043c\u0430\u0441\u0441\u0443 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0435\u0439, \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043d\u0435 \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u0435\u043c\u044b\u0445 \u0432 \u0440\u0430\u043c\u043a\u0430\u0445 \u0442\u0440\u0430\u0434\u0438\u0446\u0438\u043e\u043d\u043d\u043e\u0433\u043e ZRF (\u044f\u0437\u044b\u043a\u0430 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u043f\u0440\u0430\u0432\u0438\u043b). \u041f\u0440\u0438 \u0432\u0441\u0451\u043c \u044d\u0442\u043e\u043c, \u0410\u043a\u0441\u0438\u043e\u043c\u0430 \u043c\u043e\u0436\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441\u043e\u0432\u0435\u0440\u0448\u0435\u043d\u043d\u043e \u0441\u0430\u043c\u043e\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u043e, \u0434\u0430\u0436\u0435 \u0435\u0441\u043b\u0438 ZoG \u043d\u0430 \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440 \u043d\u0438\u043a\u043e\u0433\u0434\u0430 \u043d\u0435 \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u043b\u0441\u044f \u0438 \u043d\u0435 \u043f\u043e\u043a\u0443\u043f\u0430\u043b\u0441\u044f. \u041d\u043e, \u043e\u0431\u043e \u0432\u0441\u0451\u043c \u043f\u043e \u043f\u043e\u0440\u044f\u0434\u043a\u0443\u2026  <\/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-226235","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/226235","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=226235"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/226235\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=226235"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=226235"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=226235"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}