Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Написание программы на языке си#

ирина Неревяткина Ученик (87), на голосовании 3 месяца назад
после шахмотной доски определено парой натуральных чисел. Угражает ли полю (a, b) конь, расположенный на поле (c,d), если он делает два хода? написать программу на си#
Голосование за лучший ответ
Jurijus Zaksas Искусственный Интеллект (458577) 4 месяца назад
Ровно два хода? Если уже на первом ходу угрожает, что тогда?
Ровно для n ходов:

 static (int, int)[] HorseMoves = { (1, 2), (-1, 2), (1, -2), (-1, -2), (-2, 1), (-2, -1), (2, 1), (2, -1) }; 

public static bool HorseCanTake((int, int) p, (int, int) c, int n)
{
bool Result = n == 0 && p == c; //remove n == 0 to count in intermediate results
if (n == 0)
return Result;
foreach (var m in HorseMoves)
{
var NewPosition = (p.Item1 + m.Item1, p.Item2 + m.Item2);
Result |= HorseCanTake(NewPosition, c, n - 1);
}
return Result;
}

Добавь проверку на одинаковые поля перед вызовом метода, если это необходимо, чтобы он сам себе не угрожал.
Похожие вопросы