Шахматы на javascript. Логика клиентского приложения

Всем привет.  Я созрел написать статью про шахматы. Уже больше года прошло после моих разработок, связанных с шахматами и javascript. За все свое профессиональное время, разработка на js мне нравиться больше всего. В этой статье я расскажу не только о том, как я создавал шахматы на javascript но и о том, как я изучал этот удивительный язык.

Демо (шахматный клиент на javascript)

Знакомство

Шахматы я полюбил с лет 16, как только меня с ними познакомили. Когда, у меня еще не было интернета,  у меня был персональный противник, дед по имени «Яша» (дедушка, не мой!). И так сложилось, что он у меня постоянно выигрывал. Раз за разом он преодолевал меня без капли пота, без малейшего усилия с его стороны. Ему это казалось забавой, а меня это сильно бесило. Я не понимал почему я проигрываю. Простой ответ, типа «просто он лучше играет в шахматы», меня не устраивал. Мне хотелось понять, суть причины. Именно это желание, в бушующем привело меня к прорыву в понимании шахматной стратегии и тактики. Скажу, что я не стал гроссмейстером, и даже мастером, но если рисовать мое шахматное развитие на графике, то это будет гипербола, которая сперва, резко подымается вверх, а позже почти останавливается на определенной стадии развития. Дальнейшее развитие потребляет значительно больше времени и усилий, по сравнению с первой стадией развития.

 И так, как научить компьютер понимать шахматные правила?

Ответ заключается в языке программирования — javascript. Сперва задача кажется очень объемной, сложной, и возможно кому то непонятной и не выполнимой. Но разложив такую большую задачу на составные части мы получим много, вполне выполнимых подзадач. Если продолжать эту мысль дальше, то написание любого сложного приложения, будь то игра в шахматы, или обычная программа для обработки изображений строиться от малого к большому. Говоря метафорично, — от основания к вершине, где основание — это фундамент на котором стоит приложение. Это основная идея, которая характеризует вашу программу. Если фундамент заложен прочно, то и вся программа на 51% успешна.

Что-бы научить компьютер понимать шахматные правила, сперва нужно загрузить в него фигуры и доску, некую среду, с которой ему придется работать, а нам описывать алгоритмы. Как же создать виртуальную доску и фигуры?

Виртуальная доска на javascript

Я взял обычный объект, под названием «board» и дал ему свойства

board = {
   a1 : "",
   a2 : "",
   a3 : "",
   /* .и так далее, до клетки h8 */
   h8 : ""
}

В каждой клетке может быть только одна фигура, то есть клетка (свойство объекта board), может содержать одно значение, и это значение и будет фигурой, которая стоит на данном поле. Например белая пешка у меня значиться как «wp» (white pown), а черный ферзь как «bQ» (black Queen). Таким образом, каждой клеточек на шахматной доске и придаете значение, то есть конкретную фигуру, и проблема виртуальной доски решена. Остается вопрос, а как насчет с отображаемой доской, как пользователь будет взаимодействовать с виртуальной доской?

Для отображения шахматной доски используйте обычную таблицу в html. Более подробное описание находиться в моей ранее опубликованной статье, по этой ссылке. А мы идем дальше…

 

 

Шахматы на javascript. Логика клиентского приложения
0 votes, 0.00 avg. rating (0% score)