Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > JavaScript, Ajax
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.06.2016, 18:22   #1
MrQuestion
Пользователь
 
Регистрация: 16.08.2015
Сообщений: 40
По умолчанию Шахматы, шашки JS

Здравствуйте. Перерыл много страниц в гугле и не нашел ничего дельного (кроме большого недокументированного кода) на тему создания шахмат или шашек на JS.
Обращаюсь сюда, ибо этот форум последний бастион надежды.
Я обладаю некоторыми навыками и начертить шахматное поле и заставить двигаться фигуры по координатам и определенным правилам я могу. Я не понимаю, как заставить компьютер играть против меня. Чтобы он не рандомом херачил пешка-дама-пешка-конь, а чтобы у него присутствовала пусть самая низкая элементарная,но логика. Стратегия чтоли какая то.
Может, кто нибудь скинет документированный код простеньких шахмат или шашек?
Спасибо.
MrQuestion вне форума Ответить с цитированием
Старый 06.06.2016, 21:16   #2
pompiduskus
юзер как все
Участник клуба
 
Аватар для pompiduskus
 
Регистрация: 10.01.2012
Сообщений: 1,586
По умолчанию

Я к сожаление не имею такой документации. Но это уже уровень по выше чем 1+1 как вы и сами понимаете!
А что-бы компьютер ходил как человек. Он должен думать как человек, пускай очень узко, но все-так.
Нужно не мало вложить в программу логики.

Если не брать во внимание "Искусственный Интеллект", то нужно логическими цепочками описать все приоритеты и вообще все.

Да и правила тоже нужно знать на отлично.

Вот как пример. Человек походил. И теперь как-бы компьютер не пощел, он в любом случае потеряет одну из фигур. Даму или пешку.

Человек сразу скумекает в такой ситуации и отдаст пешку что-бы спасти даму.
А программе все это нужно объяснить, заложить в нее так сказал. =)
Это классно, что вы бросили такой вызов самому себе. =) Опыт тот еще.

Удачи!
<Дзен - Вся вселенная в тебе > | Резюме: https://ch3ll0v3k.github.io/CV/
pompiduskus вне форума Ответить с цитированием
Старый 06.06.2016, 22:02   #3
MrQuestion
Пользователь
 
Регистрация: 16.08.2015
Сообщений: 40
По умолчанию

Кода нет. Но вы держитесь, всего хорошего, счастья, удачи!
Так чтоли?))
MrQuestion вне форума Ответить с цитированием
Старый 06.06.2016, 22:04   #4
pompiduskus
юзер как все
Участник клуба
 
Аватар для pompiduskus
 
Регистрация: 10.01.2012
Сообщений: 1,586
По умолчанию

Цитата:
Сообщение от MrQuestion Посмотреть сообщение
Кода нет. Но вы держитесь, всего хорошего, счастья, удачи!
Так чтоли?))
Дак мне его за вас написать ?
<Дзен - Вся вселенная в тебе > | Резюме: https://ch3ll0v3k.github.io/CV/
pompiduskus вне форума Ответить с цитированием
Старый 06.06.2016, 22:09   #5
MrQuestion
Пользователь
 
Регистрация: 16.08.2015
Сообщений: 40
По умолчанию

Нет! Так не интересно!
MrQuestion вне форума Ответить с цитированием
Старый 06.06.2016, 22:18   #6
pompiduskus
юзер как все
Участник клуба
 
Аватар для pompiduskus
 
Регистрация: 10.01.2012
Сообщений: 1,586
По умолчанию

А в чем проблема ?
Было-бы желание.
Люди в лохматые года писали шахматы еще под пленочные кассеты.
Небыло у них ни гугла ни хрена. Только желание.

http://www.programmersforum.ru/showthread.php?t=216544

Шахматы на чистом sed / Хабрахабр
https://habrahabr.ru/post/191006/

Как компьютеры играют в шахматы / Geektimes
https://geektimes.ru/post/51076/

Некоторые идеи написания искуственного интелекта для шахмат
https://geektimes.ru/post/111210/

Шахматы / Geektimes
https://geektimes.ru/post/50911/

Исходники GNU Chess
http://ftp.gnu.org/gnu/chess/
<Дзен - Вся вселенная в тебе > | Резюме: https://ch3ll0v3k.github.io/CV/

Последний раз редактировалось pompiduskus; 06.06.2016 в 22:21.
pompiduskus вне форума Ответить с цитированием
Старый 06.06.2016, 22:30   #7
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,544
По умолчанию

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

Если вкратце, то суть следущая: генерируем все возможные ходы для себя, делаем первый ход, в ответ генерируем все ходы для противника, делаем им первый ход и т.д., потом второй ход... Так продвигаемся вперед по игре по всем возможным сценариям развития и смотрим куда приведет тот или иной ход. Каждый раз выбираем лучший для текущего игрока ход (худший для противника). Учитывая, что просмотреть придется очень много комбинаций, то есть ограничения, мы не можем дойти до конца игры от самого начала. А значит комп играет хорошо, но не идеально. Эксперименты показали, что реально за примерно минуту раздумий просмотреть около миллиарда комбинаций. Показатель зависит, конечно, от скорости работы ЦП, от оптимизации кода, можно даже разбить на несколько потоков, что актуально для многоядерных ЦП (в случае JS на это можно забить, да и вообще на JS такие вещи не делают, вычислительная сложность слишком высокая). Таким образом компьютер предвидет игру наперед примерно на 14-15 полуходов (полуход, это ход одного игрока, полный ход - когда ходит игрок, затем в ответ ходит противник).

Последний раз редактировалось Arigato; 06.06.2016 в 22:34.
Arigato вне форума Ответить с цитированием
Старый 06.06.2016, 22:32   #8
MrQuestion
Пользователь
 
Регистрация: 16.08.2015
Сообщений: 40
По умолчанию

Вооот. Парочка новых ссылок никогда не повредит. Спасибо

О майн гад. Кажется я понял то, что прочитал. Пожалуй попробую на основе этого запилить их на js

Последний раз редактировалось Arigato; 06.06.2016 в 22:41.
MrQuestion вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
шашки bpystep Помощь студентам 3 19.05.2012 23:23
ШАШКИ tanyuxxxa Помощь студентам 9 25.04.2012 20:31
Подскажите пожалуйста нормальный шашки и шахматы Mr.Qwerty Софт 6 22.08.2009 03:26
шашки alex(21) Паскаль, Turbo Pascal, PascalABC.NET 9 19.08.2009 23:39
Шашки на C/C++/C# w00tz Помощь студентам 0 13.04.2009 22:56