![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы
![]() |
Поиск в этой теме
![]() |
![]() |
#1 |
Пользователь
Регистрация: 08.05.2019
Сообщений: 27
|
![]()
Всем доброго времени суток)
У меня такой вопрос: есть неограниченная шахматная доска, с консоли мы вводим сколько примеров будет и сколько есть шахматных коней на доске, и их начальные точки(то есть , где они находятся), и точки к которым кони должны дойти за наименьшее количество шагов. Вот как должно выглядеть: 2 - количество примеров 1 - количество шахматных коней 5 5 - начальная точка 5 6 - финальная точка 2 - количество шахматных коней 0 0 - начальная точка первого коня 1 0 - начальная точка второго коня 0 1 - финальная точка первого коня 1 1 - финальная точка второго коня Ответ: 3 - ответ для первого коня 4 - ответ для второго коня Сама проблема заключается в том, что не получается так сделать, потому что с первым набором данных всё хорошо, а со вторым не получается правильный ответ. Если брать точки по отдельности, то ответ во втором наборе данных получается 6(3 для первого коня и 3 для второго коня). У меня есть догадки как это решить, но не получается. Догадка такая, что когда второй конь начинает движения он проходит такие же точки которые прошёл первый конь (второй пример) и нужно наверное прописать условия если первый конь был уже на этих позициях, то второй не может их проходить снова. Вторая догадка,заключается в том что нужно прописать условия для доски и сделать и её неограниченной, и сделать так что бы конь мог ходит по отрицательным значениям шахматной доски. вcё зависит от количество шахматных коней(количество которых мы вписываем с консоли) их может быть 1 и 2 , и даже 10(просто в примере я этого не показывал) проблема в том, что для одного коня всё работает отлично, а для двух и более не получается написать Вот примерное фото(ниже): Помогите пожалуйста, буду очень благодарен!!! Вот мой код: Код:
|
![]() |
![]() |
![]() |
#2 |
Пользователь
Регистрация: 08.05.2019
Сообщений: 27
|
![]()
[CPP]int main()
{ int number_of_examples; int number_of_horse; int x, y; int a, b; Node src = { x,y }; Node dest = { a,b }; cin >> number_of_examples; //Число примеров for (int i = 1; i <= number_of_examples; i++) { cin >> number_of_horse; //Число коней for (int i = 1; i <= number_of_horse; i++) { cin >> x >> y; //Вписываем исходные координаты } for (int i = 1; i <= number_of_horse; i++) { cin >> a >> b; //Вписываем координаты пункта назначения } cout << "Минимальное количество шагов :" << BFS(src, dest); } //// исходные координаты //Node src = { 0, 1 }; //// координаты пункта назначения //Node dest = { 1, 1 }; //cout << "Минимальное количество шагов :" << BFS(src, dest); return 0; }[/CPP] должно получиться примерно такое, но у меня оно не правильно работает Можете помочь с Node, что бы оно правильно записывалось |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Pascal ABC. Установить на шахматной доске минимум ферзей (первоначально 8), чтобы каждое поле было под боем | pyxamex | Паскаль, Turbo Pascal, PascalABC.NET | 0 | 29.05.2014 13:57 |
Ладья на шахматной доске C++ | VIGANTI | Помощь студентам | 2 | 09.10.2012 20:15 |
На шахматной доске определить поля, в которые может попасть конь из указанной позиции. | ValeriySergeevich | Помощь студентам | 0 | 24.02.2012 22:31 |
на шахматной доске заданы 2 клетки соедините эти 2 клетки кратчайшим путем коня | Ker_33rus | Общие вопросы C/C++ | 5 | 18.03.2010 12:25 |
Две проги. Порезка труб и движения коня по шахматной доске. По какому принципу работают такие проги? | sadf | Общие вопросы C/C++ | 4 | 06.03.2010 20:04 |