Страницы: 1
RSS
Шахматы: движение слона
 
Дорогие старожилы форума, помогите разобраться с задачей. Слон в шахматах ходит по диагонали. Так вот в ячейках А1 и А2 вводим начальное и конечное положение слона на доске. В ячейке В1 получаем количество пройденных клеток, не учитывая первую и последнюю. Если такое перемещение невозможно, получаем (-1).
 
И Хде здесь Ексель?
 
Миша, Excel  в виде шахматной доски :)
Которой нет в теме, да. Как нет и ячеек для ввода. Замечание верное.

На макросы аллергии нет? Формулами такое вряд ли решить.
Можно ли принять слона за лошадь? Можно, у меня получилось :)
 
Прилагается файл с решением (если правильно все понял). Только здесь не учитывается выход слона за поле шахматной доски и результат в ячейке B3. Если нужно - формулу можно модернизировать и под этот случай...
 
Как задаются координаты слона? От "a1" до "h8"?
Необходимо определить за один ход это можно сделать или за несколько?
Для одно хода нужно применить условие: abs(x1-x2) = abs(y1-y2)
Формула простая, если будет понятно, как записаны координаты слона, то решить формулами просто
 
Цитата
Radioalex написал: Прилагается файл с решением
Radioalex, Ваш слон не может из A3 в С1 попасть (нужно добавить модули при вычислениях)
 
Точно, не подумал...
Получается так...
 
Radioalex тоже животных перепутал (название файла) :)
Автор даст исходные данные или - вольный полет мысли (а он потом придет и крылья обрежет)?
 
Цитата
vikttur написал: Radioalex тоже животных перепутал
Бывает и конь диагональный )
 
Вот шахматная доска. Из А1 например переходим на В6. Слон это делает за два хода. В ячейках А1 и А2 Листа задаем координаты на доске, соответственно А1 и В6, в ячейке В2 должно выбить 4 (число клеток, которые пройдет слон в сумме (без первой и последней))
 
Цитата
Оффтоп: Я только в шашки и то в "Чапаева" умею )
 
Цитата
Юрий М написал: Бывает и конь диагональный )
Слышал только про педального.) Новый вид.
 
Вот так, похоже:
=ЕСЛИ(ОСТАТ(КОДСИМВ(ЛЕВБ(C2))-КОДСИМВ(ЛЕВБ(C3))+ПРАВБ(C2)-ПРАВБ(C3);2);-1;МАКС(ABS(КОДСИМВ(ЛЕВБ(C2))-КОДСИМВ(ЛЕВБ(C3)));ABS(ПРАВБ(C2)-ПРАВБ(C3)))-1)
Надоело менять значения в ячейках. Добавил возможность выбирать начало и конец хода прямо на доске.
 
может быть так...
 
Цитата
vikttur написал: Вот так, похоже
Виктор, формулу можно сократить: КОДСИМВ(ЛЕВБ(C2)) = КОДСИМВ(C2)
 
Да, это проще, упустил. В файле (сообщение №13) формулы поправил.
 
Спасибо за помощь. Извините за тормоз!!!
Страницы: 1
Читают тему
Наверх