|
0 / 0 / 0
Регистрация: 18.11.2013
Сообщений: 40
|
|
Шахматы: проверка на мат19.09.2014, 10:28. Показов 5838. Ответов 12
Метки нет (Все метки)
Шахматная партия
Примечание: Если вы не знакомы с шахматной игрой пожалуйста перейдите по ссылке https://en.wikipedia.org/wiki/Chess У вас есть текстовый файл ввода, представляющий позицию фигур на шахматной доске. Первая строка файла содержит единственное число numberOfPieces. Он описывает подсчет фигур на поле. Первая строка следует с numberOfPieces линий, описывающих положение, цвет и вид шахматной фигуры. Вот пример правильного входного файла: 4 e3 black bishop h1 white king f3 black bishop h3 black king Возможные названия цветов: white black Возможные типы шахматных фигур: king rook bishop queen knight pawn Напишите программу, C #, который открывает входной файл и печатает (либо на консоль или в файл), является ли это сейчас проверка ситуация, мат ситуация или нормальная ситуация игра для белого игрока. Пример 1: input.txt: 4 e3 black bishop h1 white king f3 black bishop h3 black king output.txt: checkmate Пример 2: input.txt: 3 c6 white king c2 black rook e1 black king output.txt: check Пример 3: input.txt: 2 c6 white king e1 black king output.txt: nothing\
0
|
|
| 19.09.2014, 10:28 | |
|
Ответы с готовыми решениями:
12
Шахматы, проверка на Шах и Мат У меня задача создать игру шахматы, код я сделал, но мне надо сделать чтобы работала рокировка, шах и мат Шахматы - Проверка на возможные комбинации |
|
2511 / 1132 / 582
Регистрация: 07.06.2014
Сообщений: 3,286
|
|
| 19.09.2014, 11:38 | |
|
0
|
|
|
0 / 0 / 0
Регистрация: 18.11.2013
Сообщений: 40
|
|
| 19.09.2014, 12:02 [ТС] | |
|
гугл перевод мать его
, я так понял проверить на мат или нормальную игровую ситуацию для белого игрока, что значит нормальная ситуация я так и не понял ![]() Оригинал: Write a C# program that opens input file and prints (either to the console or to the file) whether it is now a check situation, a checkmate situation or a normal game situation for white player.
0
|
|
|
2511 / 1132 / 582
Регистрация: 07.06.2014
Сообщений: 3,286
|
|||
| 19.09.2014, 13:42 | |||
|
я так и подумал про перевод..
normal game situation - белый король не находится под ударом любой из чёрных фигур check situation - белый король находится под ударом любой из чёрных фигур (т.е. ШАХ) checkmate situation - белый король находится под ударом любой из чёрных фигур И НЕ СУЩЕСТВУЕТ возможностей эту угрозу ликвидировать (как-то: переставить белого короля на поле, где нет удара, убить фигуру, угрожащую королю; переставить белую фигуру так, чтобы она перекрыла линию удара), если это сделать невозможно, то это и есть МАТ белому королю. первые две ситуации проверяются элементарно, но вот отличить ШАХ от МАТА, это, на мой взгляд, не совсем тривиально.
0
|
|||
|
1195 / 588 / 88
Регистрация: 20.09.2012
Сообщений: 1,881
|
|||
| 19.09.2014, 14:03 | |||
|
Добавлено через 1 минуту
к томуже может случиться что фигуру двигать нельзя. так что только полный перебор
0
|
|||
|
2511 / 1132 / 582
Регистрация: 07.06.2014
Сообщений: 3,286
|
||
| 19.09.2014, 14:06 | ||
|
Но, в целом, согласен, вариант имеет право на жизнь, этот подход будет корректно работать!
0
|
||
|
1195 / 588 / 88
Регистрация: 20.09.2012
Сообщений: 1,881
|
|
| 19.09.2014, 14:10 | |
|
для любой позиции кол-во ходов
> 4 * 7 + 2 * 7 * 2 + 2 * 7 * 2 + 2 * 8 + 1 * 8 + 8 * 8;; > val it : int = 172 не такая страшная цифра
0
|
|
|
2511 / 1132 / 582
Регистрация: 07.06.2014
Сообщений: 3,286
|
||
| 19.09.2014, 14:12 | ||
|
для каждой ситуации, по хорошему, надо свою развилку делать. Вот, ваш пример с конём. Не надо делать полный перебор всех возможных ходом всех белых фигур. Достаточно 1) проверить, находится ли клетка с черным конём под ударом любой из белых фигур (это цикл по белым фигурам с простой проверкой - т.е. максимум 16 проверок). 2) проверить, может ли король походить так, чтобы не быть под ударом (это 8 вариантов в худшем случае). всё. проверять может ли слон походить по диагонали или куда белый ферзь может перейти бессмысленно - если он не бъёт черного коня, то двигать этой фигурой - только впустую время на перебор тратить!
0
|
||
|
1195 / 588 / 88
Регистрация: 20.09.2012
Сообщений: 1,881
|
||
| 19.09.2014, 14:44 | ||
|
а еще шах или мат может быть сразу от 2-х фигур, и проверка защиты/ухода только от одной фигуры никак не решит задачу.
1
|
||
|
2511 / 1132 / 582
Регистрация: 07.06.2014
Сообщений: 3,286
|
|
| 19.09.2014, 14:51 | |
|
pycture, убедил!
0
|
|
|
814 / 422 / 169
Регистрация: 08.02.2013
Сообщений: 711
|
|
| 19.09.2014, 15:27 | |
|
NikVayne, а откуда задача? Там можно тоже зарегистрироваться и решение отправить на тест?
0
|
|
|
|
|
| 19.09.2014, 16:22 | |
|
Добавлено через 6 минут
проходим все вражеские фигуры и смотрим такие вещи: -- фигура не бьет короля, значит пропускаем. -- фигура "бьет" короля, но его прикрывает друга фигура. Кидаем фигуру в один список, прикрывающую в другой с пометкой от кого прикрывает. -- фигура бьет короля. пишем в третий список, ставим статус "шаг". Если после этой проверки получили статус "Шаг" смотрим все бьющие фигуры. -- если их больше одной, то "Мат" -- её только фигура, которая находится в списке "защищающих" тоже "Мат" Добавлено через 2 минуты P.S. перед проверкой на "Мат" нужно сделать проверку, можно ли походить на небитое поле или прикрытся незащищающейся фигурой.
0
|
|
|
0 / 0 / 0
Регистрация: 18.11.2013
Сообщений: 40
|
|
| 19.09.2014, 16:27 [ТС] | |
|
на курсы хожу, вот такую дали задачу, сижу разбираюсь
0
|
|
| 19.09.2014, 16:27 | |
|
Помогаю со студенческими работами здесь
13
Шахматы, проверка корректности хода пешки Шахматы: охарактеризовать положение белых с помощью слов: "мат", "шах", "пат", "обыкновенная позиция" Подбор мат платы и проверка сборки до 45к МАТ - фильтры, пессимизация за мат в текстах и заголовках сайта Подскажите,пожалуйста, какой-нибудь хороший курс по мат. анализу! Хочу понять мат.анализ! Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
|
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
|
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию.
2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
|
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
|
|
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO
Апнулись до NET10.
Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта
так и в интерактивном режиме. из сложностей - чисто функциональный подход.
Решил. . .
|
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2.
Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники".
В. . .
|
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии.
. . .
|
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2.
При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
|