Eu inventei um método para gerar recursivamente mapas simples de masmorra, começando com uma sala e conectando recursivamente novas salas adjacentes aleatoriamente.
Os mapas são representados como matrizes bidimensionais em que cada célula contém um valor de 0 a 15. 0 representa nenhuma sala enquanto cada direção é representada por norte = 1, leste = 2, sul = 4, oeste = 8.
Eu queria começar com um único quarto não ([[0]]) e depois expandir a matriz 2d conforme necessário para ajustar o mapa gerado. A dificuldade que encontro com essa árvore como recursão é que, se as matrizes tiverem que ser deslocadas para adicionar linhas e colunas à esquerda e à parte superior do mapa, tenho que ajustar a posição atual da função, em que linha e coluna ela está . Isso faz com que ramificações separadas não tenham conhecimento dos ajustes do índice de matriz de outras ramificações, apenas suas funções filhas saberão porque elas têm a posição ajustada passada como argumentos de linha e coluna.
Existe uma maneira de fazer isso? Tentei armazenar valores de deslocamento de linha e coluna fora da recursão, mas não funcionou por algum motivo.