Lo script di oggi mescola gli elementi di una lista. Per prima cosa ci vuole una lista:
set unaLista to {“a”, “b”, “c”, “d”, “e”}
La lista viene mescolata tramite una funzione. Il nome della funzione sarà mescola
. Questo comando serve a fare eseguire la funzione:
mescola(unaLista)
E ora arriva la funzione.
on mescola(unaLista)
script o
property lista : unaLista
end script
set lunghezzaMeno1 to (count unaLista) - 1
repeat with i from 1 to lunghezzaMeno1 + 1
set j to (random number lunghezzaMeno1) + 1
set v to item i of o's lista
set item i of o's lista to item j of o's lista
set item j of o's lista to v
end repeat
end mescola
La parte script… end script
, che contiene una property
, definisce una proprietà dello script, un elemento su cui lo script agisce: in questo caso è l’argomento della funzione, cioè unaLista (è complicato, ma non serve per fare AppleScript elementare, quindi non preoccupiamoci troppo).
Il resto è un ciclo che fa il lavoro sporco e rimescola la lista. Non lo spiego perché è intricato, ma è un ciclo. È sufficiente seguirlo una parola per volta con il tempo e l’attenzione dovuta per capirlo.
Quest’ultimo comando è strumentale e serve solo a mostra la lista riordinata:
display dialog unaLista as string
Riepilogo l’intero script qui sotto. Buone prove!
set unaLista to {"a", "b", "c", "d", "e"}
mescola(unaLista)
on mescola(unaLista)
script o
property lista : unaLista
end script
set lunghezzaMeno1 to (count unaLista) - 1
repeat with i from 1 to lunghezzaMeno1 + 1
set j to (random number lunghezzaMeno1) + 1
set v to item i of o's lista
set item i of o's lista to item j of o's lista
set item j of o's lista to v
end repeat
end mescola
display dialog unaLista as string