Modulo:Discendenza: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica |
Nessun oggetto della modifica |
||
Riga 19:
err = 'id ' .. dati[m-3] .. ' utilizzato per elementi diversi'
else
pers[tonumber(dati[m-3])] = {
end
else
err = 'identificativo non numerico
end
resto = n-m
Riga 35:
local nn = 1
pers[pid].y = plev -- assegna y ad ogni persona
if (not tabella[plev]) then tabella[plev] = {} end
table.insert(tabella[plev], pid) -- inserisce la persona in tabella
for i, v in pairs(pers[pid].figli) do
pers[v].
nn = nn + organizza(v, plev+1) -- ricorsione per assegnare y ai figli e contarli
end
Line 96 ⟶ 94:
local sposta = 0
local fine = pers[pid].
local frt = 1
local frt2, n
while (frt < fine) do -- controlla tutti i rami fratelli da 1 fino al ramo corrente
frt2 =
tDx = limDx(frt2, 0, {}) -- elementi più a destra del ramo fratello per ogni y
tSx = limSx(pid, 0, {}) -- elementi più a sinistra del ramo corrente per ogni y
Line 131 ⟶ 129:
if (pers[pid].padre == -1) then -- è capostipite
pers[pid].x = 0
elseif (pers[pid].
pers[pid].x = 0
else -- è figlio successivo
pers[pid].x = pers[pers[pers[pid].padre].figli[pers[pid].
end
elseif (tt == 1) then -- ha un figlio
if (pers[pid].padre == -1) then -- è capostipite
pers[pid].x = pers[pers[pid].figli[1]].x
elseif (pers[pid].
pers[pid].x = pers[pers[pid].figli[1]].x
else -- è figlio successivo
pers[pid].x = pers[pers[pers[pid].padre].figli[pers[pid].
pers[pid].sp = pers[pid].x - pers[pers[pid].figli[1]].x
verifica(pid)
Line 150 ⟶ 148:
if (pers[pid].padre == -1) then -- è capostipite
pers[pid].x = media
elseif (pers[pid].
pers[pid].x = media
else -- è figlio successivo
pers[pid].x = pers[pers[pers[pid].padre].figli[pers[pid].
pers[pid].sp = pers[pid].x - media
verifica(pid)
Line 290 ⟶ 288:
if (v.padre == -1) then
if (capo == -1) then
capo =
else
err = 'più elementi (id: ' .. capo .. ', ' ..
end
else
if (v.padre ==
err = 'elemento con id ' .. i .. ' indicato come figlio di se stesso'
elseif (pers[v.padre]) then
|