Чтобы ответить на ваш вопрос более конкретно, было бы полезно увидеть ваш текущий код, так как рекомендации могут отличаться в зависимости от того, как устроена функция `dungeon_gen` и как именно реализован цикл. Однако, я могу предложить некоторые общие советы о том, как контролировать циклы и выходить из них по определенному условию.
В большинстве языков программирования циклы могут быть прерваны с помощью инструкций `break` или `return`, если вы находитесь внутри функции. Предполагая, что вы используете псевдокод или язык программирования, который поддерживает эти операторы, вот как это может быть реализовано:
### Использование `break`:
```pseudo
function dungeon_gen(room_num):
r_placed = 0
while True: # или for/while с условием в зависимости от языка и логики
# ваш код для генерации и добавления комнат
r_placed += 1
if r_placed >= room_num:
break # выйти из цикла, если достигли нужного количества комнат
# код, выполняемый после завершения цикла
```
### Использование `return` (если ваша функция должна завершиться):
```pseudo
function dungeon_gen(room_num):
r_placed = 0
while True: # или for/while с условием в зависимости от языка и логики
# ваш код для генерации и добавления комнат
r_placed += 1
if r_placed >= room_num:
return # вернуть управление (и возможно, результат) из функции
# код, который никогда не выполнится, если функция возвращается ранее
```
Если у вас уже есть какой-то цикл с условием, и вы хотите использовать это условие для остановки, измените условие цикла:
### Пример цикла с условием `while`:
```pseudo
function dungeon_gen(room_num):
r_placed = 0
while r_placed < room_num: # цикл продолжается, пока не будет достигнуто нужное кол-во комнат
# ваш код для генерации и добавления комнат
r_placed += 1
# сюда код дойдёт только после того, как цикл завершится
```
Пожалуйста, уточните свой язык программирования и предоставьте пример кода, если вам нужен более специфичный совет.