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])] = { id = tonumber(dati[m-3]), padre = tonumber(dati[m-2]), testo = dati[m-1], nota = dati[m], id2id = -1, x = -1, y = -1, sp = 0, figli = {} }
end
else
err = 'identificativo non numerico perin il' parametro.. 'dati[m-3] .. math', ' .floor(. dati[m/4)-2]
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
tabella[plev] = {}
end
table.insert(tabella[plev], pid) -- inserisce la persona in tabella
for i, v in pairs(pers[pid].figli) do
pers[v].id2id = i -- assegna numero del figlio
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].id2id
local frt = 1
local frt2, n
while (frt < fine) do -- controlla tutti i rami fratelli da 1 fino al ramo corrente
frt2 = pers[pers[pers[pid].padre].figli[frt]].id
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].id2id == 1) then -- è primo figlio
pers[pid].x = 0
else -- è figlio successivo
pers[pid].x = pers[pers[pers[pid].padre].figli[pers[pid].id2id - 1]].x + 2
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].id2id == 1) then -- è primo figlio
pers[pid].x = pers[pers[pid].figli[1]].x
else -- è figlio successivo
pers[pid].x = pers[pers[pers[pid].padre].figli[pers[pid].id2id - 1]].x + 2
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].id2id == 1) then -- è primo figlio
pers[pid].x = media
else -- è figlio successivo
pers[pid].x = pers[pers[pers[pid].padre].figli[pers[pid].id2id - 1]].x + 2
pers[pid].sp = pers[pid].x - media
verifica(pid)
Line 290 ⟶ 288:
if (v.padre == -1) then
if (capo == -1) then
capo = v.idi
else
err = 'più elementi (id: ' .. capo .. ', ' .. v.idi .. ') indicati come capostipite'
end
else
if (v.padre == v.idi) then
err = 'elemento con id ' .. i .. ' indicato come figlio di se stesso'
elseif (pers[v.padre]) then