Дело в том что на достаточно грубой сетке решения может и не быть. 3 цифры после запятой для координат мало, возьмите точность координат хотя бы 6-7 цифр, а шаги утки и лисы 0,001/0,00566 (точно). И примените стратегию утки из обычного начального положения (утка в
, лиса в
, или любого другого на пересечении диаметра и квадрата
):
1) если успеваем по горизонтальной/вертикальной прямой до любой из 4-х сторон берега быстрее кратчайшего пути лисы туда же - утка выиграла;
2) иначе двигаться влево или вправо в сторону диаметра (т.е. приводя угол из центра между уткой и лисой к 180°) под углом вверх 0,06° к горизонтали (или с увеличением
на 0,000001 каждый шаг);
3) если такой шаг приводит к пересечению диаметра - сделать вместо него полный шаг вверх (защита от долгих колебаний утки около диаметра, хотя с ненулевым углом можно и исключить, но тогда иногда будет длиннюющая лесенка).
Собственно всё!
Ненулевой угол защищает от повторов туда-обратно смещая утку чуть выше, если обязуетесь не зацикливаться - можно шагать и строго по горизонтали.
Берите и считайте, всего-то одно №2 несложное правило за утку. Быстро увидите что лисе всегда выгоднее уменьшать угол между ней и уткой - а это гарантирует от разворотов.