Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.54/26: Рейтинг темы: голосов - 26, средняя оценка - 4.54
0 / 0 / 0
Регистрация: 15.10.2010
Сообщений: 4
1

ход конем.

15.10.2010, 14:56. Показов 4858. Ответов 4
Метки нет (Все метки)

Дано координаты двух полей шахматной доски, на которых стоят конь и пешка. Найти минимальное число ходов, за которые конь доберется до пешки, если последний стоит на месте. Координаты коня и пешки задаются как натуральные числа, от левого нижнего угла шахматной доски.
Вы, наверное, знаете, что конь в шахматах всегда перемещается или на три ячейки по горизонтали и две по вертикали, или на три ячейки по вертикали и две по горизонтали.
Формат входных данных. С клавиатуры вводится имя текстового файла (например input.txt). Первая лента этого файла содержит пару натуральных чисел, координаты коня, а вторая - координаты пешку.
Техническое задание: На экран вывести одно число - количество ходов коня. (За это можно получить до 30 баллов) в следующую ленту последовательные координаты одного из маршрутов движения лошади

Добавлено через 16 минут
ааауууу подскажите плис!!!!!!!!!!!

Добавлено через 27 секунд
аааааууууууууу
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.10.2010, 14:56
Ответы с готовыми решениями:

Нужна идея алгоритма! Ход конём
Помогите с алгоритмом. Пользователь задаёт размеры поля Н*М. Шахматный конь находится в левом...

Обход конем шахматной доски
Шахматный конь находится в левом верхнем углу шахматной доски размером NxM клеток. Составить...

Алгоритм волны. Проход конем шахматной доски.
Есть небольшая проблемка в программе - выводит неправильно шоги коня, нарисовано все правильно - а...

Шахматным конем обойти всю доску, побывав на каждом поле всего один раз
Составить программу, в соответствии с которой шахматный конь обойдет всю доску, побывав на каждом...

__________________
4
2921 / 842 / 324
Регистрация: 30.04.2009
Сообщений: 2,633
15.10.2010, 15:01 2
Цитата Сообщение от bestXprogramer Посмотреть сообщение
аааааууууууууу
Заблудились что ли??? ну посмотрят вашу задачу и если у кого-нибудь будет идея или возможность решить то решат или подскажут
0
2921 / 842 / 324
Регистрация: 30.04.2009
Сообщений: 2,633
15.10.2010, 15:01 3
Цитата Сообщение от bestXprogramer Посмотреть сообщение
аааааууууууууу
Заблудились что ли??? ну посмотрят вашу задачу и если у кого-нибудь будет идея или возможность решить то решат или подскажут
0
Модератор
63348 / 47054 / 32433
Регистрация: 18.05.2008
Сообщений: 114,056
15.10.2010, 15:07 4
Цитата Сообщение от bestXprogramer Посмотреть сообщение
если последний стоит на месте.
Что у тебя стоит?

Добавлено через 1 минуту
Цитата Сообщение от bestXprogramer Посмотреть сообщение
(За это можно получить до 30 баллов)
Задачи с конкурсов и олимпиад принципиально не решаем, это нужно самому делать или не делать совсем.
0
2 / 2 / 1
Регистрация: 11.11.2010
Сообщений: 58
19.11.2010, 04:26 5
я за такое задание могу получить только 2 бала из 60)))

Добавлено через 1 минуту
может тебе поможет
Решение задачи. Конь и пешка. Минимальное количество ходов:

Заполним всю доску кодом 255 (чтоб не путаться). От начальной позиции (присвоим этой клетке на доске значение 0) во все возможные позиции, на которые конь может переместиться за один ход, ставим 1. Затем сканируем всю доску, как только нашли значение 1 во все возможные клетки, куда конь может сходить ставим 2, но это только в том случае, если там стоит 255, т.е. конь там еще не был, иначе получится не кратчайший маршрут. Повторяем сканирование для 2, 3 и т.д. до тех пор, пока в одной из свежезаполненных клеток не напоремся на пешку. Если это произошло, то выводим значение из этой клетки - кратчайшее расстояние до позиции коня.
Теперь перейдем ко второму вопросу (можно, значит нужно). Заведем массив для хранения координат коня размерностью 64 (а вдруг долго топтаться будет). Вот теперь-то нам и пригодится рекурсия (хорошо, что я свою процедуру закомментировал, а не стер!). От конечной позиции (где стоит пешка) проверяем все возможные клетки, откуда туда мог прийти конь (на 1 меньше чем кол-во ходов итоговое). Как только найдем, занесем в элемент массива с номером, равным итоговому количеству ходов коня его координаты, затем уменьшаем счетчик, изначально равный количеству ходов коня до пешки, на 1. Запускаем рекурсивную процедуру для позиции, откуда пришел конь и т.д. В конце (когда дойдем до клеточки со значением 1 - первый ход) выводим все содержимое массива. Для примера из условия это: 5,5 7,6 6,4.
Я конечно понимаю, что рекурсия - вещь неудобоваримая, но лично я ее освоил еще в 8-ом классе, и даже написал научную работу на эту тему. Если что-то непонятно - пишите на мыло, буду пытаться объяснить
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.11.2010, 04:26

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Задача про ход коня
Как известно, в шахматах горизонтальные строки обозначаются цифрами от 1 до 8, считая от...

Вывести количество последовательностей, составленных ходом "конем"
Ход конем. Шахматная ассоциация решила оснастить всех своих сотрудников такими телефонными...

Может ли шахматный ферзь за один ход перейти с клетки в клетку
Заданы координаты клетки шахматной доски (х; у) - целые числа. Выяснить, может ли шахматный ферзь...

За один ход любое одно из чисел уменьшить на любой степень двойки
Своя игра Петя и Маша, ходят по очереди, играют в такую математическую игру: Задано несколько...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.