Потому что его назначение я не хочу дать вам полное решение. Пожалуйста, не стесняйтесь комментировать, если вам нужна дополнительная помощь.
Я предлагаю создать объект
class MoveOffset
{
public int OffsetX { get; set; }
public int OffsetY { get; set; }
}
, а затем создать коллекцию из них с возможными ходами
var moves = new List<MoveOffset>()
{
new MoveOffset(){OffsetX = -1, OffsetY = -2},
new MoveOffset(){OffsetX = -2, OffsetY = -1},
new MoveOffset(){OffsetX = 1, OffsetY = -2},
new MoveOffset(){OffsetX = -2, OffsetY = 1},
new MoveOffset(){OffsetX = -1, OffsetY = 2},
new MoveOffset(){OffsetX = 2, OffsetY = -1},
new MoveOffset(){OffsetX = 1, OffsetY = 2},
new MoveOffset(){OffsetX = 2, OffsetY = 1},
};
затем циклически проходите сбор и проверяйте условия, если это возможно, чтобы переместиться туда из местоположения "лошади".