11.04.2013 Views

Guida avanzata di scripting Bash - Portale Posta DMI

Guida avanzata di scripting Bash - Portale Posta DMI

Guida avanzata di scripting Bash - Portale Posta DMI

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Determina_Carta ()<br />

{<br />

numero=$1<br />

let "numero_seme = numero / CARTE_PER_SEME"<br />

seme=${Semi[numero_seme]}<br />

echo -n "$seme-"<br />

let "nr_carta = numero % CARTE_PER_SEME"<br />

Carta=${Carte[nr_carta]}<br />

printf %-4s $Carta<br />

# Visualizza le carte ben or<strong>di</strong>nate per colonne.<br />

}<br />

Capitolo 34. <strong>Bash</strong>, versioni 2 e 3<br />

Seme_Casuale () # Imposta il seme del generatore <strong>di</strong> numeri casuali.<br />

{ # Cosa succederebbe se questo non venisse fatto?<br />

Seme=‘eval date +%s‘<br />

let "Seme %= 32766"<br />

RANDOM=$Seme<br />

# Quali sono gli altri meto<strong>di</strong> per impostare il seme<br />

#+ del generatore <strong>di</strong> numeri casuali?<br />

}<br />

Da_Carte ()<br />

{<br />

echo<br />

carte_date=0<br />

while [ "$carte_date" -le $LIMITE_SUPERIORE ]<br />

do<br />

Sceglie_Carta<br />

t=$?<br />

if [ "$t" -ne $GIÀ_ASSEGNATA ]<br />

then<br />

Determina_Carta $t<br />

u=$carte_date+1<br />

# Ritorniamo all’in<strong>di</strong>cizzazione in base 1 (temporaneamente). Perché?<br />

let "u %= $CARTE_PER_SEME"<br />

if [ "$u" -eq 0 ] # Costrutto con<strong>di</strong>zionale if/then annidato.<br />

then<br />

echo<br />

echo<br />

fi<br />

# Separa i giocatori.<br />

let "carte_date += 1"<br />

fi<br />

done<br />

echo<br />

return 0<br />

591

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!