27.08.2015 Views

Advanced Bash−Scripting Guide

Advanced Bash-Scripting Guide - Nicku.org

Advanced Bash-Scripting Guide - Nicku.org

SHOW MORE
SHOW LESS
  • No tags were found...

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

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

{<br />

Cards=(2 3 4 5 6 7 8 9 10 J Q K A)<br />

# Alternate method of initializing an array.<br />

}<br />

pick_a_card ()<br />

{<br />

card_number=$RANDOM<br />

let "card_number %= $CARDS"<br />

if [ "${Deck[card_number]}" −eq $UNPICKED ]<br />

then<br />

Deck[card_number]=$PICKED<br />

return $card_number<br />

else<br />

return $DUPE_CARD<br />

fi<br />

}<br />

parse_card ()<br />

{<br />

number=$1<br />

let "suit_number = number / CARDS_IN_SUIT"<br />

suit=${Suits[suit_number]}<br />

echo −n "$suit−"<br />

let "card_no = number % CARDS_IN_SUIT"<br />

Card=${Cards[card_no]}<br />

printf %−4s $Card<br />

# Print cards in neat columns.<br />

}<br />

seed_random () # Seed random number generator.<br />

{<br />

seed=`eval date +%s`<br />

let "seed %= 32766"<br />

RANDOM=$seed<br />

}<br />

deal_cards ()<br />

{<br />

echo<br />

cards_picked=0<br />

while [ "$cards_picked" −le $UPPER_LIMIT ]<br />

do<br />

pick_a_card<br />

t=$?<br />

if [ "$t" −ne $DUPE_CARD ]<br />

then<br />

parse_card $t<br />

u=$cards_picked+1<br />

# Change back to 1−based indexing (temporarily).<br />

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

if [ "$u" −eq 0 ] # Nested if/then condition test.<br />

then<br />

echo<br />

echo<br />

fi<br />

# Separate hands.<br />

let "cards_picked += 1"<br />

<strong>Advanced</strong> <strong>Bash−Scripting</strong> <strong>Guide</strong><br />

Chapter 35. Bash, version 2 358

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

Saved successfully!

Ooh no, something went wrong!