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 0000000..473217e Binary files /dev/null and b/images/chessbot_msg1.png differ 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)