Skip to content

maximum recursion depth exceeded while calling a Python object #79

@Surdjak

Description

@Surdjak

It's pretty obvious why it happened but I still wanted to report this.
In short, there's most likely too much randomization as all the ER options are activated and i'm trying to generate a 4-world coop seed.
Removing one-way still lead to an error but not a python one at least, it's the "too much tries" one.
I don't know if main branch intend to include your changes or something close to it but either way they will probably come up with the same problem if it's indeed just a combinatorial problem. I don't know if a better logic can be used but if it does, I imagine it would be a pretty big refactor.

Setting string: HSARCSBSL62AEMTDDS7PF8KA4QMERGA9CAAKSBJ6399P55Z495STAAEACJD8SZAAAAADA5VASST87A2VECHV9

Update: Took me a while to notice the obvious but it happens when generating the spoiler. Short term solution would be to not generate it.

maximum recursion depth exceeded while calling a Python object
Traceback (most recent call last):
  File "D:\N64\Randomizers\OoT-Randomizer-Fork\OoTRandomizer.py", line 58, in start
    main(settings)
  File "D:\N64\Randomizers\OoT-Randomizer-Fork\Main.py", line 46, in main
    spoiler = generate(settings)
  File "D:\N64\Randomizers\OoT-Randomizer-Fork\Main.py", line 120, in generate
    return make_spoiler(settings, worlds)
  File "D:\N64\Randomizers\OoT-Randomizer-Fork\Main.py", line 180, in make_spoiler
    spoiler.create_playthrough()
  File "D:\N64\Randomizers\OoT-Randomizer-Fork\Spoiler.py", line 144, in create_playthrough
    worlds = self.copy_worlds()
  File "D:\N64\Randomizers\OoT-Randomizer-Fork\Spoiler.py", line 122, in copy_worlds
    worlds = [world.copy(copy_dict=copy_dict) for world in self.worlds]
  File "D:\N64\Randomizers\OoT-Randomizer-Fork\Spoiler.py", line 122, in <listcomp>
    worlds = [world.copy(copy_dict=copy_dict) for world in self.worlds]
  File "D:\N64\Randomizers\OoT-Randomizer-Fork\World.py", line 361, in copy
    new_world.dungeons = [dungeon.copy(copy_dict=copy_dict) for dungeon in self.dungeons]
  File "D:\N64\Randomizers\OoT-Randomizer-Fork\World.py", line 361, in <listcomp>
    new_world.dungeons = [dungeon.copy(copy_dict=copy_dict) for dungeon in self.dungeons]
  File "D:\N64\Randomizers\OoT-Randomizer-Fork\Dungeon.py", line 38, in copy
    new_dungeon.regions = [region.copy(copy_dict=copy_dict) for region in self.regions]
  File "D:\N64\Randomizers\OoT-Randomizer-Fork\Dungeon.py", line 38, in <listcomp>
    new_dungeon.regions = [region.copy(copy_dict=copy_dict) for region in self.regions]
  File "D:\N64\Randomizers\OoT-Randomizer-Fork\Region.py", line 62, in copy
    new_region.exits = [entrance.copy(copy_dict=copy_dict) for entrance in self.exits]
  File "D:\N64\Randomizers\OoT-Randomizer-Fork\Region.py", line 62, in <listcomp>
    new_region.exits = [entrance.copy(copy_dict=copy_dict) for entrance in self.exits]
  File "D:\N64\Randomizers\OoT-Randomizer-Fork\Entrance.py", line 40, in copy
    new_entrance.connected_region = self.connected_region.copy(copy_dict=copy_dict)
  File "D:\N64\Randomizers\OoT-Randomizer-Fork\Region.py", line 63, in copy
    new_region.locations = [location.copy(copy_dict=copy_dict) for location in self.locations]
  File "D:\N64\Randomizers\OoT-Randomizer-Fork\Region.py", line 63, in <listcomp>
    new_region.locations = [location.copy(copy_dict=copy_dict) for location in self.locations]
  File "D:\N64\Randomizers\OoT-Randomizer-Fork\Location.py", line 64, in copy
    new_location.item = self.item.copy(copy_dict=copy_dict)
  [...]
RecursionError: maximum recursion depth exceeded while calling a Python object

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions