Если игра зависает в бесконечном цикле при генерации игрового поля, вероятно, есть проблема с условиями выхода из цикла.
Один из способов исправить эту проблему - это добавить дополнительные условия выхода из цикла в функцию Field_Generation. Можно добавить ограничение на количество попыток генерации поля или проверку наличия достаточного количества свободных клеток для размещения кораблей.
Также стоит убедиться, что алгоритм генерации поля корректно расставляет корабли и не возникает ситуация, когда корабли пересекаются или располагаются слишком близко друг к другу.
Если проблема все же остается, можно попробовать переписать функцию Field_Generation, используя другой подход к генерации игрового поля. Например, можно использовать рекурсивную функцию или алгоритм более сложной генерации поля.
Также стоит убедиться, что другие части программы не вызывают бесконечный цикл при работе с сгенерированным полем.
В любом случае, для исправления бесконечного цикла важно тщательно изучить код функции Field_Generation, выявить возможные ошибки и недочеты в условиях выхода из цикла и внести соответствующие изменения.