From f7f1d664b2833dec13ebca19a27209c49e7e6d14 Mon Sep 17 00:00:00 2001 From: Aleksey Lobanov Date: Thu, 14 Jan 2016 01:19:57 +0300 Subject: [PATCH] Some menu changes and added ChessBot article --- archives.html | 2 + author/aleksei-lobanov.html | 16 ++- authors.html | 2 +- category/misc.html | 2 +- category/proekty.html | 16 ++- category/project-euler.html | 2 +- feeds/all.atom.xml | 2 +- feeds/all.rss.xml | 2 +- feeds/feed.atom.xml | 2 +- feeds/feed.rss.xml | 2 +- feeds/proekty.atom.xml | 2 +- feeds/tag-bot.atom.xml | 2 + feeds/tag-proekt.atom.xml | 2 +- feeds/tag-shakhmaty.atom.xml | 2 + images/chessbot_msg1.png | Bin 0 -> 7023 bytes index.html | 16 ++- pages/projects.html | 2 +- posts/crossgen-v10/index.html | 2 +- .../index.html | 2 +- .../kak-ia-shakhmatnogo-bota-pisal/index.html | 114 ++++++++++++++++++ posts/moi-pervyi-post/index.html | 2 +- posts/moio-reshenie-zadachi-60/index.html | 2 +- tag/bgl.html | 2 +- tag/blog.html | 2 +- tag/bot.html | 83 +++++++++++++ tag/c.html | 2 +- tag/proekt.html | 16 ++- tag/project-euler.html | 2 +- tag/shakhmaty.html | 83 +++++++++++++ tag/wxwidgets.html | 2 +- tags.html | 4 +- 31 files changed, 368 insertions(+), 24 deletions(-) create mode 100644 feeds/tag-bot.atom.xml create mode 100644 feeds/tag-shakhmaty.atom.xml create mode 100644 images/chessbot_msg1.png create mode 100644 posts/kak-ia-shakhmatnogo-bota-pisal/index.html create mode 100644 tag/bot.html create mode 100644 tag/shakhmaty.html diff --git a/archives.html b/archives.html index 951a629..c468ffd 100644 --- a/archives.html +++ b/archives.html @@ -30,6 +30,8 @@

Archives for Блог 529

+
Вс. 10 Январь 2016
+
Как я шахматного бота писал
Вс. 02 Август 2015
CrossGen v1.0
Пт. 17 Июль 2015
diff --git a/author/aleksei-lobanov.html b/author/aleksei-lobanov.html index dd150c8..2739da6 100644 --- a/author/aleksei-lobanov.html +++ b/author/aleksei-lobanov.html @@ -38,8 +38,8 @@ @@ -50,6 +50,20 @@
    +
  1. + +
  2. +
  3. diff --git a/authors.html b/authors.html index 0328380..4f39d89 100644 --- a/authors.html +++ b/authors.html @@ -29,7 +29,7 @@

    Authors on Блог 529

    -
    diff --git a/category/misc.html b/category/misc.html index 1e33eb5..477eb91 100644 --- a/category/misc.html +++ b/category/misc.html @@ -38,8 +38,8 @@ diff --git a/category/proekty.html b/category/proekty.html index 9d2b9fe..9e610cb 100644 --- a/category/proekty.html +++ b/category/proekty.html @@ -38,8 +38,8 @@ @@ -50,6 +50,20 @@
      +
    1. + +
    2. +
    3. diff --git a/category/project-euler.html b/category/project-euler.html index dcac7b6..97dc348 100644 --- a/category/project-euler.html +++ b/category/project-euler.html @@ -38,8 +38,8 @@ diff --git a/feeds/all.atom.xml b/feeds/all.atom.xml index 6bf65ce..061146d 100644 --- a/feeds/all.atom.xml +++ b/feeds/all.atom.xml @@ -1,2 +1,2 @@ -Блог 529http://likemath.ru/2015-11-22T23:41:00+03:00CrossGen v1.02015-08-04T17:40:00+03:00Алексей Лобановtag:likemath.ru,2015-08-02:posts/crossgen-v10/<p>Читая хабр, случайно натолкнулся на идею сделать программу, которая по заданной кроссвордной сетке находит способ её заполнить. В этом посте вкратце напишу про моё решение и первую версию&nbsp;приложения.</p>Моё решение задачи 602015-11-22T23:41:00+03:00Алексей Лобановtag:likemath.ru,2015-07-17:posts/moio-reshenie-zadachi-60/<p>Краткое условие: необходимо найти множество из пяти простых чисел с минимальной суммой такое, что после &#8220;склеивания&#8221; в любом порядке любых двух чисел из него тоже будет простое&nbsp;число.</p>Ещё одно вычисление выражений2015-07-03T17:40:00+03:00Алексей Лобановtag:likemath.ru,2015-07-03:posts/eshchio-odno-vychislenie-vyrazhenii/<p>На хабре когда-то увидел статью про то, что в Яндексе двум сотрудникам дали задачу на написание приложения, для вычисления выражений. Менеджер справился за 4 часа, а программист за два. Я решил попробовать свои&nbsp;силы.</p>Мой первый пост2015-04-17T13:35:00+03:00Алексей Лобановtag:likemath.ru,2015-04-17:posts/moi-pervyi-post/<p>Кратко о том, почему я сделал&nbsp;блог.</p> \ No newline at end of file +Блог 529http://likemath.ru/2016-01-10T13:35:00+03:00Как я шахматного бота писал2016-01-10T13:35:00+03:00Алексей Лобановtag:likemath.ru,2016-01-10:posts/kak-ia-shakhmatnogo-bota-pisal/<p>Как я проверял шахматное приложение на&nbsp;&#8220;ботоустойчивость&#8221;.</p>CrossGen v1.02015-08-04T17:40:00+03:00Алексей Лобановtag:likemath.ru,2015-08-02:posts/crossgen-v10/<p>Читая хабр, случайно натолкнулся на идею сделать программу, которая по заданной кроссвордной сетке находит способ её заполнить. В этом посте вкратце напишу про моё решение и первую версию&nbsp;приложения.</p>Моё решение задачи 602015-11-22T23:41:00+03:00Алексей Лобановtag:likemath.ru,2015-07-17:posts/moio-reshenie-zadachi-60/<p>Краткое условие: необходимо найти множество из пяти простых чисел с минимальной суммой такое, что после &#8220;склеивания&#8221; в любом порядке любых двух чисел из него тоже будет простое&nbsp;число.</p>Ещё одно вычисление выражений2015-07-03T17:40:00+03:00Алексей Лобановtag:likemath.ru,2015-07-03:posts/eshchio-odno-vychislenie-vyrazhenii/<p>На хабре когда-то увидел статью про то, что в Яндексе двум сотрудникам дали задачу на написание приложения, для вычисления выражений. Менеджер справился за 4 часа, а программист за два. Я решил попробовать свои&nbsp;силы.</p>Мой первый пост2015-04-17T13:35:00+03:00Алексей Лобановtag:likemath.ru,2015-04-17:posts/moi-pervyi-post/<p>Кратко о том, почему я сделал&nbsp;блог.</p> \ No newline at end of file diff --git a/feeds/all.rss.xml b/feeds/all.rss.xml index cccf896..438b509 100644 --- a/feeds/all.rss.xml +++ b/feeds/all.rss.xml @@ -1,2 +1,2 @@ -Блог 529http://likemath.ru/Project Euler и остальноеSun, 22 Nov 2015 23:41:00 +0300CrossGen v1.0http://likemath.ru/posts/crossgen-v10/<p>Читая хабр, случайно натолкнулся на идею сделать программу, которая по заданной кроссвордной сетке находит способ её заполнить. В этом посте вкратце напишу про моё решение и первую версию&nbsp;приложения.</p>Алексей ЛобановTue, 04 Aug 2015 17:40:00 +0300tag:likemath.ru,2015-08-02:posts/crossgen-v10/проектc++wxWidgetsМоё решение задачи 60http://likemath.ru/posts/moio-reshenie-zadachi-60/<p>Краткое условие: необходимо найти множество из пяти простых чисел с минимальной суммой такое, что после &#8220;склеивания&#8221; в любом порядке любых двух чисел из него тоже будет простое&nbsp;число.</p>Алексей ЛобановSun, 22 Nov 2015 23:41:00 +0300tag:likemath.ru,2015-07-17:posts/moio-reshenie-zadachi-60/Project Eulerc++BGLЕщё одно вычисление выраженийhttp://likemath.ru/posts/eshchio-odno-vychislenie-vyrazhenii/<p>На хабре когда-то увидел статью про то, что в Яндексе двум сотрудникам дали задачу на написание приложения, для вычисления выражений. Менеджер справился за 4 часа, а программист за два. Я решил попробовать свои&nbsp;силы.</p>Алексей ЛобановFri, 03 Jul 2015 17:40:00 +0300tag:likemath.ru,2015-07-03:posts/eshchio-odno-vychislenie-vyrazhenii/проектМой первый постhttp://likemath.ru/posts/moi-pervyi-post/<p>Кратко о том, почему я сделал&nbsp;блог.</p>Алексей ЛобановFri, 17 Apr 2015 13:35:00 +0300tag:likemath.ru,2015-04-17:posts/moi-pervyi-post/блог \ No newline at end of file +Блог 529http://likemath.ru/Project Euler и остальноеSun, 10 Jan 2016 13:35:00 +0300Как я шахматного бота писалhttp://likemath.ru/posts/kak-ia-shakhmatnogo-bota-pisal/<p>Как я проверял шахматное приложение на&nbsp;&#8220;ботоустойчивость&#8221;.</p>Алексей ЛобановSun, 10 Jan 2016 13:35:00 +0300tag:likemath.ru,2016-01-10:posts/kak-ia-shakhmatnogo-bota-pisal/проектшахматыботCrossGen v1.0http://likemath.ru/posts/crossgen-v10/<p>Читая хабр, случайно натолкнулся на идею сделать программу, которая по заданной кроссвордной сетке находит способ её заполнить. В этом посте вкратце напишу про моё решение и первую версию&nbsp;приложения.</p>Алексей ЛобановTue, 04 Aug 2015 17:40:00 +0300tag:likemath.ru,2015-08-02:posts/crossgen-v10/проектc++wxWidgetsМоё решение задачи 60http://likemath.ru/posts/moio-reshenie-zadachi-60/<p>Краткое условие: необходимо найти множество из пяти простых чисел с минимальной суммой такое, что после &#8220;склеивания&#8221; в любом порядке любых двух чисел из него тоже будет простое&nbsp;число.</p>Алексей ЛобановSun, 22 Nov 2015 23:41:00 +0300tag:likemath.ru,2015-07-17:posts/moio-reshenie-zadachi-60/Project Eulerc++BGLЕщё одно вычисление выраженийhttp://likemath.ru/posts/eshchio-odno-vychislenie-vyrazhenii/<p>На хабре когда-то увидел статью про то, что в Яндексе двум сотрудникам дали задачу на написание приложения, для вычисления выражений. Менеджер справился за 4 часа, а программист за два. Я решил попробовать свои&nbsp;силы.</p>Алексей ЛобановFri, 03 Jul 2015 17:40:00 +0300tag:likemath.ru,2015-07-03:posts/eshchio-odno-vychislenie-vyrazhenii/проектМой первый постhttp://likemath.ru/posts/moi-pervyi-post/<p>Кратко о том, почему я сделал&nbsp;блог.</p>Алексей ЛобановFri, 17 Apr 2015 13:35:00 +0300tag:likemath.ru,2015-04-17:posts/moi-pervyi-post/блог \ No newline at end of file diff --git a/feeds/feed.atom.xml b/feeds/feed.atom.xml index 9a4b3c5..bdae7a2 100644 --- a/feeds/feed.atom.xml +++ b/feeds/feed.atom.xml @@ -1,2 +1,2 @@ -Блог 529http://likemath.ru/2015-11-22T23:41:00+03:00CrossGen v1.02015-08-04T17:40:00+03:00Алексей Лобановtag:likemath.ru,2015-08-02:posts/crossgen-v10/<p>Читая хабр, случайно натолкнулся на идею сделать программу, которая по заданной кроссвордной сетке находит способ её заполнить. В этом посте вкратце напишу про моё решение и первую версию&nbsp;приложения.</p>Моё решение задачи 602015-11-22T23:41:00+03:00Алексей Лобановtag:likemath.ru,2015-07-17:posts/moio-reshenie-zadachi-60/<p>Краткое условие: необходимо найти множество из пяти простых чисел с минимальной суммой такое, что после &#8220;склеивания&#8221; в любом порядке любых двух чисел из него тоже будет простое&nbsp;число.</p>Ещё одно вычисление выражений2015-07-03T17:40:00+03:00Алексей Лобановtag:likemath.ru,2015-07-03:posts/eshchio-odno-vychislenie-vyrazhenii/<p>На хабре когда-то увидел статью про то, что в Яндексе двум сотрудникам дали задачу на написание приложения, для вычисления выражений. Менеджер справился за 4 часа, а программист за два. Я решил попробовать свои&nbsp;силы.</p>Мой первый пост2015-04-17T13:35:00+03:00Алексей Лобановtag:likemath.ru,2015-04-17:posts/moi-pervyi-post/<p>Кратко о том, почему я сделал&nbsp;блог.</p> \ No newline at end of file +Блог 529http://likemath.ru/2016-01-10T13:35:00+03:00Как я шахматного бота писал2016-01-10T13:35:00+03:00Алексей Лобановtag:likemath.ru,2016-01-10:posts/kak-ia-shakhmatnogo-bota-pisal/<p>Как я проверял шахматное приложение на&nbsp;&#8220;ботоустойчивость&#8221;.</p>CrossGen v1.02015-08-04T17:40:00+03:00Алексей Лобановtag:likemath.ru,2015-08-02:posts/crossgen-v10/<p>Читая хабр, случайно натолкнулся на идею сделать программу, которая по заданной кроссвордной сетке находит способ её заполнить. В этом посте вкратце напишу про моё решение и первую версию&nbsp;приложения.</p>Моё решение задачи 602015-11-22T23:41:00+03:00Алексей Лобановtag:likemath.ru,2015-07-17:posts/moio-reshenie-zadachi-60/<p>Краткое условие: необходимо найти множество из пяти простых чисел с минимальной суммой такое, что после &#8220;склеивания&#8221; в любом порядке любых двух чисел из него тоже будет простое&nbsp;число.</p>Ещё одно вычисление выражений2015-07-03T17:40:00+03:00Алексей Лобановtag:likemath.ru,2015-07-03:posts/eshchio-odno-vychislenie-vyrazhenii/<p>На хабре когда-то увидел статью про то, что в Яндексе двум сотрудникам дали задачу на написание приложения, для вычисления выражений. Менеджер справился за 4 часа, а программист за два. Я решил попробовать свои&nbsp;силы.</p>Мой первый пост2015-04-17T13:35:00+03:00Алексей Лобановtag:likemath.ru,2015-04-17:posts/moi-pervyi-post/<p>Кратко о том, почему я сделал&nbsp;блог.</p> \ No newline at end of file diff --git a/feeds/feed.rss.xml b/feeds/feed.rss.xml index 6254fb9..f8db27e 100644 --- a/feeds/feed.rss.xml +++ b/feeds/feed.rss.xml @@ -1,2 +1,2 @@ -Блог 529http://likemath.ru/Project Euler и остальноеSun, 22 Nov 2015 23:41:00 +0300CrossGen v1.0http://likemath.ru/posts/crossgen-v10/<p>Читая хабр, случайно натолкнулся на идею сделать программу, которая по заданной кроссвордной сетке находит способ её заполнить. В этом посте вкратце напишу про моё решение и первую версию&nbsp;приложения.</p>Алексей ЛобановTue, 04 Aug 2015 17:40:00 +0300tag:likemath.ru,2015-08-02:posts/crossgen-v10/проектc++wxWidgetsМоё решение задачи 60http://likemath.ru/posts/moio-reshenie-zadachi-60/<p>Краткое условие: необходимо найти множество из пяти простых чисел с минимальной суммой такое, что после &#8220;склеивания&#8221; в любом порядке любых двух чисел из него тоже будет простое&nbsp;число.</p>Алексей ЛобановSun, 22 Nov 2015 23:41:00 +0300tag:likemath.ru,2015-07-17:posts/moio-reshenie-zadachi-60/Project Eulerc++BGLЕщё одно вычисление выраженийhttp://likemath.ru/posts/eshchio-odno-vychislenie-vyrazhenii/<p>На хабре когда-то увидел статью про то, что в Яндексе двум сотрудникам дали задачу на написание приложения, для вычисления выражений. Менеджер справился за 4 часа, а программист за два. Я решил попробовать свои&nbsp;силы.</p>Алексей ЛобановFri, 03 Jul 2015 17:40:00 +0300tag:likemath.ru,2015-07-03:posts/eshchio-odno-vychislenie-vyrazhenii/проектМой первый постhttp://likemath.ru/posts/moi-pervyi-post/<p>Кратко о том, почему я сделал&nbsp;блог.</p>Алексей ЛобановFri, 17 Apr 2015 13:35:00 +0300tag:likemath.ru,2015-04-17:posts/moi-pervyi-post/блог \ No newline at end of file +Блог 529http://likemath.ru/Project Euler и остальноеSun, 10 Jan 2016 13:35:00 +0300Как я шахматного бота писалhttp://likemath.ru/posts/kak-ia-shakhmatnogo-bota-pisal/<p>Как я проверял шахматное приложение на&nbsp;&#8220;ботоустойчивость&#8221;.</p>Алексей ЛобановSun, 10 Jan 2016 13:35:00 +0300tag:likemath.ru,2016-01-10:posts/kak-ia-shakhmatnogo-bota-pisal/проектшахматыботCrossGen v1.0http://likemath.ru/posts/crossgen-v10/<p>Читая хабр, случайно натолкнулся на идею сделать программу, которая по заданной кроссвордной сетке находит способ её заполнить. В этом посте вкратце напишу про моё решение и первую версию&nbsp;приложения.</p>Алексей ЛобановTue, 04 Aug 2015 17:40:00 +0300tag:likemath.ru,2015-08-02:posts/crossgen-v10/проектc++wxWidgetsМоё решение задачи 60http://likemath.ru/posts/moio-reshenie-zadachi-60/<p>Краткое условие: необходимо найти множество из пяти простых чисел с минимальной суммой такое, что после &#8220;склеивания&#8221; в любом порядке любых двух чисел из него тоже будет простое&nbsp;число.</p>Алексей ЛобановSun, 22 Nov 2015 23:41:00 +0300tag:likemath.ru,2015-07-17:posts/moio-reshenie-zadachi-60/Project Eulerc++BGLЕщё одно вычисление выраженийhttp://likemath.ru/posts/eshchio-odno-vychislenie-vyrazhenii/<p>На хабре когда-то увидел статью про то, что в Яндексе двум сотрудникам дали задачу на написание приложения, для вычисления выражений. Менеджер справился за 4 часа, а программист за два. Я решил попробовать свои&nbsp;силы.</p>Алексей ЛобановFri, 03 Jul 2015 17:40:00 +0300tag:likemath.ru,2015-07-03:posts/eshchio-odno-vychislenie-vyrazhenii/проектМой первый постhttp://likemath.ru/posts/moi-pervyi-post/<p>Кратко о том, почему я сделал&nbsp;блог.</p>Алексей ЛобановFri, 17 Apr 2015 13:35:00 +0300tag:likemath.ru,2015-04-17:posts/moi-pervyi-post/блог \ No newline at end of file diff --git a/feeds/proekty.atom.xml b/feeds/proekty.atom.xml index 4838d7e..4f910af 100644 --- a/feeds/proekty.atom.xml +++ b/feeds/proekty.atom.xml @@ -1,2 +1,2 @@ -Блог 529http://likemath.ru/2015-08-04T17:40:00+03:00CrossGen v1.02015-08-04T17:40:00+03:00Алексей Лобановtag:likemath.ru,2015-08-02:posts/crossgen-v10/<p>Читая хабр, случайно натолкнулся на идею сделать программу, которая по заданной кроссвордной сетке находит способ её заполнить. В этом посте вкратце напишу про моё решение и первую версию&nbsp;приложения.</p>Ещё одно вычисление выражений2015-07-03T17:40:00+03:00Алексей Лобановtag:likemath.ru,2015-07-03:posts/eshchio-odno-vychislenie-vyrazhenii/<p>На хабре когда-то увидел статью про то, что в Яндексе двум сотрудникам дали задачу на написание приложения, для вычисления выражений. Менеджер справился за 4 часа, а программист за два. Я решил попробовать свои&nbsp;силы.</p> \ No newline at end of file +Блог 529http://likemath.ru/2016-01-10T13:35:00+03:00Как я шахматного бота писал2016-01-10T13:35:00+03:00Алексей Лобановtag:likemath.ru,2016-01-10:posts/kak-ia-shakhmatnogo-bota-pisal/<p>Как я проверял шахматное приложение на&nbsp;&#8220;ботоустойчивость&#8221;.</p>CrossGen v1.02015-08-04T17:40:00+03:00Алексей Лобановtag:likemath.ru,2015-08-02:posts/crossgen-v10/<p>Читая хабр, случайно натолкнулся на идею сделать программу, которая по заданной кроссвордной сетке находит способ её заполнить. В этом посте вкратце напишу про моё решение и первую версию&nbsp;приложения.</p>Ещё одно вычисление выражений2015-07-03T17:40:00+03:00Алексей Лобановtag:likemath.ru,2015-07-03:posts/eshchio-odno-vychislenie-vyrazhenii/<p>На хабре когда-то увидел статью про то, что в Яндексе двум сотрудникам дали задачу на написание приложения, для вычисления выражений. Менеджер справился за 4 часа, а программист за два. Я решил попробовать свои&nbsp;силы.</p> \ No newline at end of file diff --git a/feeds/tag-bot.atom.xml b/feeds/tag-bot.atom.xml new file mode 100644 index 0000000..fd11504 --- /dev/null +++ b/feeds/tag-bot.atom.xml @@ -0,0 +1,2 @@ + +Блог 529http://likemath.ru/2016-01-10T13:35:00+03:00Как я шахматного бота писал2016-01-10T13:35:00+03:00Алексей Лобановtag:likemath.ru,2016-01-10:posts/kak-ia-shakhmatnogo-bota-pisal/<p>Как я проверял шахматное приложение на&nbsp;&#8220;ботоустойчивость&#8221;.</p> \ No newline at end of file diff --git a/feeds/tag-proekt.atom.xml b/feeds/tag-proekt.atom.xml index 059054c..64cfb5d 100644 --- a/feeds/tag-proekt.atom.xml +++ b/feeds/tag-proekt.atom.xml @@ -1,2 +1,2 @@ -Блог 529http://likemath.ru/2015-08-04T17:40:00+03:00CrossGen v1.02015-08-04T17:40:00+03:00Алексей Лобановtag:likemath.ru,2015-08-02:posts/crossgen-v10/<p>Читая хабр, случайно натолкнулся на идею сделать программу, которая по заданной кроссвордной сетке находит способ её заполнить. В этом посте вкратце напишу про моё решение и первую версию&nbsp;приложения.</p>Ещё одно вычисление выражений2015-07-03T17:40:00+03:00Алексей Лобановtag:likemath.ru,2015-07-03:posts/eshchio-odno-vychislenie-vyrazhenii/<p>На хабре когда-то увидел статью про то, что в Яндексе двум сотрудникам дали задачу на написание приложения, для вычисления выражений. Менеджер справился за 4 часа, а программист за два. Я решил попробовать свои&nbsp;силы.</p> \ No newline at end of file +Блог 529http://likemath.ru/2016-01-10T13:35:00+03:00Как я шахматного бота писал2016-01-10T13:35:00+03:00Алексей Лобановtag:likemath.ru,2016-01-10:posts/kak-ia-shakhmatnogo-bota-pisal/<p>Как я проверял шахматное приложение на&nbsp;&#8220;ботоустойчивость&#8221;.</p>CrossGen v1.02015-08-04T17:40:00+03:00Алексей Лобановtag:likemath.ru,2015-08-02:posts/crossgen-v10/<p>Читая хабр, случайно натолкнулся на идею сделать программу, которая по заданной кроссвордной сетке находит способ её заполнить. В этом посте вкратце напишу про моё решение и первую версию&nbsp;приложения.</p>Ещё одно вычисление выражений2015-07-03T17:40:00+03:00Алексей Лобановtag:likemath.ru,2015-07-03:posts/eshchio-odno-vychislenie-vyrazhenii/<p>На хабре когда-то увидел статью про то, что в Яндексе двум сотрудникам дали задачу на написание приложения, для вычисления выражений. Менеджер справился за 4 часа, а программист за два. Я решил попробовать свои&nbsp;силы.</p> \ No newline at end of file diff --git a/feeds/tag-shakhmaty.atom.xml b/feeds/tag-shakhmaty.atom.xml new file mode 100644 index 0000000..d8b30c9 --- /dev/null +++ b/feeds/tag-shakhmaty.atom.xml @@ -0,0 +1,2 @@ + +Блог 529http://likemath.ru/2016-01-10T13:35:00+03:00Как я шахматного бота писал2016-01-10T13:35:00+03:00Алексей Лобановtag:likemath.ru,2016-01-10:posts/kak-ia-shakhmatnogo-bota-pisal/<p>Как я проверял шахматное приложение на&nbsp;&#8220;ботоустойчивость&#8221;.</p> \ No newline at end of file diff --git a/images/chessbot_msg1.png b/images/chessbot_msg1.png new file mode 100644 index 0000000000000000000000000000000000000000..473217e3cbe01df3d2f73ddc4c6edf1f4d429b17 GIT binary patch literal 7023 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 literal 0 HcmV?d00001 diff --git a/index.html b/index.html index 10e14a0..b2e5260 100644 --- a/index.html +++ b/index.html @@ -38,8 +38,8 @@ @@ -50,6 +50,20 @@
        +
      1. + +
      2. +
      3. diff --git a/pages/projects.html b/pages/projects.html index 913df1a..84cdb3a 100644 --- a/pages/projects.html +++ b/pages/projects.html @@ -39,8 +39,8 @@ diff --git a/posts/crossgen-v10/index.html b/posts/crossgen-v10/index.html index 0854c78..e1aaff6 100644 --- a/posts/crossgen-v10/index.html +++ b/posts/crossgen-v10/index.html @@ -39,8 +39,8 @@ diff --git a/posts/eshchio-odno-vychislenie-vyrazhenii/index.html b/posts/eshchio-odno-vychislenie-vyrazhenii/index.html index af78ca4..ce288c3 100644 --- a/posts/eshchio-odno-vychislenie-vyrazhenii/index.html +++ b/posts/eshchio-odno-vychislenie-vyrazhenii/index.html @@ -39,8 +39,8 @@ diff --git a/posts/kak-ia-shakhmatnogo-bota-pisal/index.html b/posts/kak-ia-shakhmatnogo-bota-pisal/index.html new file mode 100644 index 0000000..86c8334 --- /dev/null +++ b/posts/kak-ia-shakhmatnogo-bota-pisal/index.html @@ -0,0 +1,114 @@ + + + + + + + + + Как я шахматного бота писал + + + + + + + + + + + + + + + + + + + + + +
        + +
        +
          +
        1. +
          +
          + +

          Как я шахматного бота писал

          +
          + +
          +

          Лет 5 назад я достаточно активно играл в “живые” шахматы. Потом времени на это стало не хватать и постепенно перешёл на редкие партии в онлайне. Сейчас для игры я использую одно из самых популярных приложений вк. Это проще, чем использовать, к примеру, FICS. Предмет обсуждения появился из-за того, что я как-то раз встретился с соперником, который на все ходы потратил порядка 10 секунд, при этом не допустив значимых ошибок. Тогда я решил написать своего бота, чтобы узнать что с ним будет и столкнусь ли я с какими-нибудь подводными камнями.

          +

          Целью было максимально быстрое написание максимально простого решения. Поэтому от разбора протокола я сразу отказался, тем более у меня не было подобного опыта ранее. Была мысль работать с FICS (у меня есть библиотека для работы с их протоколом), но поскольку я там не играю, то и результаты были бы не так интересны, во всяком случае, для меня. Таким образом, я писал простого кликера для приложения вк.

          +

          Изначально хотелось найти доску и определить положения всех фигур, это было бы достаточно универсально, хотя и привязало бы меня к OpenCV. Тем не менее, решил не усложнять: можно определять только последний ход, а это можно сделать, проверяя цвет только одного пикселя.

          +

          В самом скрипте около 200 строк на python. Очень сильно помогла библиотека chess, которая взяла на себя общение с движком (я использовал stockfish), проверку на допустимые ходы и определение мата. Некоторое время я уделил тому, чтобы сделать бота максимально похожим на человека, чтобы было невозможно выявить, что это бот полностью автоматическими средствами. По пунктам:

          +
            +
          • Клик по полю в случайном месте, с распределением по Гауссу, центр которого не совпадает с центром клетки
          • +
          • Случайное время хода, длительность которого распределена по Гауссу, причём средняя длительность хода изменяется, в зависимости от номера текущего хода.
          • +
          • Прокладываются дополнительные точки, с распределением по Гауссу, при перемещении курсора от точки к точке.
          • +
          +

          По факту, всё это было лишним, бан получить не удалось даже при простом клике из начальной точки в конечную.

          +

          Примеры работы скрипта можно посмотреть тут и тут, анализы двух сыгранных игр лежат тут и тут (оппонент имеет рейтинг около 2100).

          +

          На момент публикации аккаунт вполне жив. Рейтинг достиг некоторого потолка (около 2200), после которого найти игроков примерно равного рейтинга, не являющихся ботами, очень сложно. Сражаться же с ботами сильно сложнее, такую цель я не ставил. Интересно, хоть и ожидаемо, что при наборе рейтинга было достаточно личностей, для которых возможность того, что их нагло обманули, и они играли с ботом была столь неприятна, что они не могли сдерживаться. Например: +alt text

          +

          p.s. Уже после создания рабочей версии от одного из оппонентов узнал про lichess.org. Это отличный ресурс на котором кроме, собственно, платформы для игры в шахматы (поддерживается большое количество их вариантов), есть тренировки по дебютам, анализ игр. Самое интересное — ресурс полностью открытый, все исходники есть на github.

          +

          В процессе подготовки данного материала узнал про InternetChessKiller, который делает, фактически, тоже самое, что и мой скрипт, но без привязки к какой-то одной игровой площадке. Исходники старых версий можно найти, например, в этом репозитории.

          +

          p.p.s. Боты на серверах, предназначенных для людей, играющие в игры, которые предназначены для людей очень сильно мешают людям. Тем не менее, проверять, насколько сильно они мешают не нужно!

          +
          +
          + +
          +
          +
          + + + comments powered by Disqus +
          +
          +
        2. +
        +
        +
        + + + + + \ No newline at end of file diff --git a/posts/moi-pervyi-post/index.html b/posts/moi-pervyi-post/index.html index 09abae5..bc95a33 100644 --- a/posts/moi-pervyi-post/index.html +++ b/posts/moi-pervyi-post/index.html @@ -39,8 +39,8 @@ diff --git a/posts/moio-reshenie-zadachi-60/index.html b/posts/moio-reshenie-zadachi-60/index.html index db94bdc..6d855d5 100644 --- a/posts/moio-reshenie-zadachi-60/index.html +++ b/posts/moio-reshenie-zadachi-60/index.html @@ -39,8 +39,8 @@ diff --git a/tag/bgl.html b/tag/bgl.html index a9a2e43..d7c50b2 100644 --- a/tag/bgl.html +++ b/tag/bgl.html @@ -38,8 +38,8 @@ diff --git a/tag/blog.html b/tag/blog.html index 8f05e93..7bc4ab5 100644 --- a/tag/blog.html +++ b/tag/blog.html @@ -38,8 +38,8 @@ diff --git a/tag/bot.html b/tag/bot.html new file mode 100644 index 0000000..07e0789 --- /dev/null +++ b/tag/bot.html @@ -0,0 +1,83 @@ + + + + + + + + + Блог 529 - бот + + + + + + + + + + + + + + + + + + + + +
        + +
        +
          +
        1. + +
        2. +
          +
        +
        + Page 1 / 1 +
        + +
        +
        + + + + + \ No newline at end of file diff --git a/tag/c.html b/tag/c.html index d3b8ca9..91c189c 100644 --- a/tag/c.html +++ b/tag/c.html @@ -38,8 +38,8 @@ diff --git a/tag/proekt.html b/tag/proekt.html index d6e50c6..e12a555 100644 --- a/tag/proekt.html +++ b/tag/proekt.html @@ -38,8 +38,8 @@ @@ -50,6 +50,20 @@
          +
        1. + +
        2. +
        3. diff --git a/tag/project-euler.html b/tag/project-euler.html index dcac7b6..97dc348 100644 --- a/tag/project-euler.html +++ b/tag/project-euler.html @@ -38,8 +38,8 @@ diff --git a/tag/shakhmaty.html b/tag/shakhmaty.html new file mode 100644 index 0000000..b296a2a --- /dev/null +++ b/tag/shakhmaty.html @@ -0,0 +1,83 @@ + + + + + + + + + Блог 529 - шахматы + + + + + + + + + + + + + + + + + + + + +
          + +
          +
            +
          1. + +
          2. +
            +
          +
          + Page 1 / 1 +
          + +
          +
          + + + + + \ No newline at end of file diff --git a/tag/wxwidgets.html b/tag/wxwidgets.html index 7d78e81..e2a7943 100644 --- a/tag/wxwidgets.html +++ b/tag/wxwidgets.html @@ -38,8 +38,8 @@ diff --git a/tags.html b/tags.html index 6ce1c48..31f8d63 100644 --- a/tags.html +++ b/tags.html @@ -29,9 +29,11 @@

          Tags for Блог 529

        4. BGL (1)
        5. блог (1)
        6. +
        7. бот (1)
        8. c++ (2)
        9. -
        10. проект (2)
        11. +
        12. проект (3)
        13. Project Euler (1)
        14. +
        15. шахматы (1)
        16. wxWidgets (1)