![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| flagist0 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 24 Регистрация: 29.10.2007 Репутация: нет Всего: нет |
Пишу простенький генератор сишного кода. Выбор текущего действия происходит так:
В случае генерации блока {}, метод gen_block() вызывает gen_code_string() для генерации содержимого блока, получается рекурсия. Как видно, действие выбирается случайным образом, поэтому вероятность ухода в глубокую рекурсию невелика, но это почему-то происходит сразу же. Думал над двумя вариантами: 1. Сгруппировать действия по убыванию необходимости частого появления, потом изменить функцию распределения. Но как? 2. Передавать в метод текущую глубину рекурсии, при необходимости выходить. Это моя первая программа на Python, прошу сильно не бить. |
|||
|
||||
| flagist0 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 24 Регистрация: 29.10.2007 Репутация: нет Всего: нет |
Второй вариант сработал. Хотя первый вариант был бы предпочтительнее (дал бы очень приятный сайд-эффект правильного распределения видов кода), этот тоже работает. Вопрос закрыт. |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Python: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |