![]() |
|
|
![]()
|
|
| Killer_13 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 740 Регистрация: 12.1.2008 Где: Germany Репутация: нет Всего: 1 |
Подскажите пож как можно определить мат в шахматах? А то не могу придумать как это запрограммировать.
Дошел до того, что могу определять какие клетки под ударом, чтоб король туда не мог ходить. Могу сделать, чтоб каждый раз проверяло не находится ли король под ударом... Это все можно, но вопрос и проблема в том, что если например король под ударом и все позиции куда он может походить тоже под ударом.. Остается такая штука как.. Противник жертвует фигурой прикрывая короля и после этого у короля например открывается свободная клетка для хода... В общем, подскажите как кто видит как можно организовать мат для противника? Игра друг против друга, без "ИИ". Спаасибо заранее, а то мучаюсь уже долго с этой проблемой.. :( |
|||
|
||||
| ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 7 Всего: 386 |
Мат определяется перебором ходов. Свой ход - ход противника. Если при любом своем ходе противник может взять короля - это мат.
Без перебора - нужно писать ИИ -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
|||
|
||||
| Killer_13 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 740 Регистрация: 12.1.2008 Где: Germany Репутация: нет Всего: 1 |
- В принципе, вы меня натолкнули на одну мысль... но это выльется наверное в больше чем сто строчек кода.. Ну в принципе это не оч важно, я не претендую на изобретения лучшего велосипеда.
Но все таки остается..
|
|||
|
||||
| ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 7 Всего: 386 |
Ничего не остается. Просмотр в 2 полухода - полное и достаточное определение мата. -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
|||
|
||||
| Killer_13 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 740 Регистрация: 12.1.2008 Где: Germany Репутация: нет Всего: 1 |
НЕ совссем понимаю определение "полухода"..
А так.. вроде начинаю понимать, как мне это все забадяжить.. |
|||
|
||||
| ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 7 Всего: 386 |
полуход - это ход одного противника. 2 полухода - ход обоих противников (для игры 2-х игроков) - полный ход Разница только в том, что ход формально начинается с хода белых, а 2 полухода начинаются от ходящего сейчас игрока. -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
|||
|
||||
| Killer_13 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 740 Регистрация: 12.1.2008 Где: Germany Репутация: нет Всего: 1 |
Значит так, добился пока этого, прошу поправить если что пропустил...
1. Если 2 шаха, то мат! Тоисть если король атакован двумя фигурами и ему некуда бежать.(сделал). 2. Если шах с одной фигуры и фигуру нельзя побить остается только подложить на пути атакующей фигуры другую фигуру. Правильно? 3. Если фигуру нельзя побить и на пути нельзя ничего поставить и королю некуда бежать, то мат! Еще варианты к определению мата в дополнение? Мыслей уже много прочитал, теперь стараюсь отобразить в коде, какие еще ситуации?? Еще бы придумать как "пат" определять... Всем спасибо! |
|||
|
||||
| nworm |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 502 Регистрация: 22.10.2005 Репутация: 4 Всего: 8 |
с матом правильно всё
|
|||
|
||||
![]()
|
| Правила форума "Алгоритмы" | |
|
|
Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Алгоритмы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |