|
6 / 6 / 1
Регистрация: 15.03.2009
Сообщений: 83
|
||
Определить все ходы для белой шашки.02.10.2009, 19:58. Показов 13946. Ответов 8
Метки нет (Все метки)
0
|
||
| 02.10.2009, 19:58 | |
|
Ответы с готовыми решениями:
8
Определить все возможные ходы для следующих фигур
Определить все возможные ходы ферзя, с поворотом доски на 180 градусов |
|
7176 / 3234 / 82
Регистрация: 17.06.2009
Сообщений: 14,164
|
|
| 02.10.2009, 23:08 | |
|
Наверное если срубил черную шашку, то дальше можн рекурсивно вызвать туже процедуру чтобы она проверила - нельзя ли срубить еще одну шашку.
1
|
|
|
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
|
|
| 03.10.2009, 10:41 | |
|
Ну, слушай, такое дело раз.
Во-первых, создай матрицу 8x8 и как-то сыммитируй на ней шашки. Заполни то есть. Вручную, ещё как-то. Допустим, если элемент равен 1, это чёрная шашка, если 2, то белая, если 0- никакая. И заполняяй по шашечным правилам. Это уж ты сам думай как. В программме будет две функции 1) основная (рекурсивная) osn 2) вспомогательная vsp Вот схема osn { vsp () osn } Всомогательная функция будет показывать, куда шашке можно ходить (условимся, что она не дамка) То есть каждая шашка может потенциально сделать 8 ходов pramo_napravo_mal; pramo_napravo_bol; //Это когда перепрыгивает pramo_nalevo_mal; pramo_nalevo_boll; nazad_napravo_mal; nazad_napravo_bol; nazad_nalevo_mal; nazad_nalevo_boll; Теперь смотри. Если одна из этих величин равна 1, то шашка может туда ходить, если равна 0, то не может. То, естть, к примеру, получаешь такие значения pramo_napravo_mal==0; pramo_napravo_bol==1; //Это когда перепрыгивает pramo_nalevo_mal==0; pramo_nalevo_boll==0; nazad_napravo_mal==1; nazad_napravo_bol==0; nazad_nalevo_mal==0; nazad_nalevo_boll==1; ...Как узнать, куда шашка может сходить, а куда нет? Для этого существует vsp В неё передаются указатели на эти переменные и координаты шашки. Вот, собственно, и начинаются мытраства. В функции vsp, принимающей указатели на эти переменные ты должен определить каждое из 8-ми значений, учитывая 1)координаты шашки 2)координаты других шашек (массив-то глобальный и виден отовсюду) Это ты уж сам сиди и думай, как всё сделать Схема будет так выглядеть с учётом вышесказанного: osn { bool pramo_napravo_mal==0; bool pramo_napravo_bol==1; //Это когда перепрыгивает bool pramo_nalevo_mal==0; bool pramo_nalevo_boll==0; bool nazad_napravo_mal==1; bool nazad_napravo_bol==0; bool nazad_nalevo_mal==0; bool nazad_nalevo_boll==1; vsp (&pramo_napravo_mal //+ адреса всех этих переменных + координаты шашки) osn () } Ну, и, наконец, по вызову osn Вызываешь так if (pramo_napravo_mal) { osn () } if (pramo_napravo_bol) { osn () } ...И так далее, до конца. 8 вызовов должно быть В функцию osn передаются координаты шашки, куда можно сходить. То есть если у тебя текущие параметры (0, 1), и, допустим nazad_napravo_mal==1, то пишешь if (nazad_napravo_mal) { osn (2, 3) } ...Ну вот так и прыгаешь, пока все параметры не станут равны 0. Введи переменную какую-нибудь пусть ходы подсчитывет. Учитывай всё. ...Да. Самый первый вызов функции osn такой: osn (координаты шашки) Спрашивай, что непонятно!
1
|
|
|
6 / 6 / 1
Регистрация: 15.03.2009
Сообщений: 83
|
|
| 04.10.2009, 15:57 [ТС] | |
|
Что-то плохо понятно.Я сделал поле 8х8,сделал ввод координат шашек и сделал определение возможного хода(право лево,с учетом занятых клеток),но все без рекурсии и не могу пока сделать функцию(рекурсивную)
0
|
|
|
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
|
|
| 04.10.2009, 17:30 | |
|
Бум учиться.
Давай сюда код с комментариями и внятно говори, в чём трудности.
0
|
|
|
2256 / 771 / 25
Регистрация: 27.05.2008
Сообщений: 1,496
|
|
| 05.10.2009, 02:35 | |
|
Хакер, Все просто.Опиши функцию для одного хода,после чего добавь вызов ее для себя же в случае,если этот ход кого-то захавал.При этом,перед вызовом "убирай "съеденную шашку,ходящую шашку "перемещай"а после вызова возвращай съеденную и переместившуюся на изначальные позиции.
Получится,что рекурсия как бы раскатает какой-то вариант,каждый раз закатывая его обратно после того,как он рассмотрен,возвращаясь к исходной позиции и проверяя другие возможные ходы из текущей глубины перебора.
1
|
|
|
0 / 0 / 0
Регистрация: 01.06.2010
Сообщений: 3
|
|
| 01.06.2010, 23:30 | |
|
Хакер, а не осталось работающей программы? был бы очень признателен...
0
|
|
|
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
|
||||||
| 03.06.2010, 15:42 | ||||||
0
|
||||||
|
0 / 0 / 0
Регистрация: 16.02.2017
Сообщений: 3
|
|
| 27.02.2017, 17:50 | |
|
Mr.X, попыталась запустить, а там пишет: Runtime Error
Не подскажете ,как исправить?
0
|
|
| 27.02.2017, 17:50 | |
|
Помогаю со студенческими работами здесь
9
Вывести все возможные ходы коня
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2.
Задача: показать затраченные материалы за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом.
В качестве. . .
|
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2.
Задача: отобразить спецтехнику, которая на данный момент находится в ремонте.
Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
|
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
|
Запрет удаления строк ТЧ документа при определённом условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
|
|
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут
Суть:
- Группа наркоманов из 10 человек.
- Только один инфицирован ВИЧ.
- Колются одной иглой.
- Колются раз в день.
- Колются последовательно через. . .
|
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
|
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
|
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . .
а удачный момент так и не приходит.
|