Sophie

Sophie

distrib > Mandriva > current > x86_64 > by-pkgid > b611ea73723a8287cce23d3124a6eeea > files > 242

howto-sgml-ko-2006-5mdv2010.0.noarch.rpm

#!/bin/bash
# ¿À·¡µÈ ½Ã½ºÅÛÀ̶ó¸é #!/bin/bash2 ·Î ½ÇÇà½ÃÄÑ¾ß ÇÒÁöµµ ¸ð¸¨´Ï´Ù.

# Ä«µå:
# Ä«µå ÇÑ ¹úÀ» 4¸í¿¡°Ô ¹«ÀÛÀ§·Î µ¹¸®±â.

UNPICKED=0
PICKED=1

DUPE_CARD=99

LOWER_LIMIT=0
UPPER_LIMIT=51
CARDS_IN_SUIT=13
CARDS=52

declare -a Deck
declare -a Suits
declare -a Cards
# ÇϳªÂ¥¸® 3Â÷¿ø ¹è¿­À̶ó¸é ´õ ½±°í ´õ Á÷°üÀûÀ̾úÀ» °Ì´Ï´Ù.
# ¾Æ¸¶ Bash ´ÙÀ½ ¹öÀü¿¡¼­´Â ´ÙÂ÷¿ø ¹è¿­À» Áö¿øÇÒ °Ì´Ï´Ù.


initialize_Deck ()
{
i=$LOWER_LIMIT
until [ "$i" -gt $UPPER_LIMIT ]
do
  Deck[i]=$UNPICKED   # Ä«µå "ÇÑ ¹ú"(deck)À» ¸ðµÎ ¾È °í¸¥ »óÅ·ΠµÒ.
  let "i += 1"
done
echo
}

initialize_Suits ()
{
Suits[0]=C # Ŭ·Î¹ö(Clubs)
Suits[1]=D # ´ÙÀ̾Ƹóµå(Diamonds)
Suits[2]=H # ÇÏÆ®(Hearts)
Suits[3]=S # ½ºÆäÀ̵å(Spades)
}

initialize_Cards ()
{
Cards=(2 3 4 5 6 7 8 9 10 J Q K A)
# ¹è¿­À» ÃʱâÈ­ÇÏ´Â ¶Ç ´Ù¸¥ ¹æ¹ý.
}

pick_a_card ()
{
card_number=$RANDOM
let "card_number %= $CARDS"
if [ "${Deck[card_number]}" -eq $UNPICKED ]
then
  Deck[card_number]=$PICKED
  return $card_number
else  
  return $DUPE_CARD
fi
}

parse_card ()
{
number=$1
let "suit_number = number / CARDS_IN_SUIT"
suit=${Suits[suit_number]}
echo -n "$suit-"
let "card_no = number % CARDS_IN_SUIT"
Card=${Cards[card_no]}
printf %-4s $Card
# Ä«µå¸¦ Ä­ ´ÜÀ§·Î ±ò²ûÇÏ°Ô Ãâ·Â.
}

seed_random ()  # ·£´ý ³Ñ¹ö ¹ß»ý±â seed. 
{
seed=`eval date +%s`
let "seed %= 32766"
RANDOM=$seed
}

deal_cards ()
{
echo

cards_picked=0
while [ "$cards_picked" -le $UPPER_LIMIT ]
do
  pick_a_card
  t=$?

  if [ "$t" -ne $DUPE_CARD ]
  then
    parse_card $t

    u=$cards_picked+1
    # Àӽ÷Π1 ºÎÅÍ À妽ÌÇÏ´Â ÇüÅ·Π¹Ù²Þ.
    let "u %= $CARDS_IN_SUIT"
    if [ "$u" -eq 0 ]   # ÁßøµÈ if/then Á¶°Ç Å×½ºÆ®.
    then
     echo
     echo
    fi
    # ´Ù¸¥ »ç¶÷.

    let "cards_picked += 1"
  fi  
done  

echo

return 0
}


# ±¸Á¶Àû ÇÁ·Î±×·¡¹Ö:
# Àüü ÇÁ·Î±×·¥ ·ÎÁ÷Àº ÇÔ¼ö·Î ¸ðµâÈ­ µÇ¾î ÀÖ½À´Ï´Ù.

#================
seed_random
initialize_Deck
initialize_Suits
initialize_Cards
deal_cards

exit 0
#================



# ¿¬½À¹®Á¦ 1:
# Àüü¿¡ ´ëÇØ ¿ÏÀüÇÑ ÁÖ¼®À» ´Þ¾Æº¸¼¼¿ä.

# ¿¬½À¹®Á¦ 2:
# ÇÑ »ç¶÷ÀÌ ¹ÞÀº Ä«µå¸¦ Á¾·ù¼øÀ¸·Î Á¤·ÄÇؼ­ º¸¿©ÁÖµµ·Ï °íÃĺ¸¼¼¿ä.
# ÇÊ¿äÇÏ´Ù¸é Æí¸®ÇÑ ´Ù¸¥ ±â´ÉÀ» ½áµµ ±¦Âú½À´Ï´Ù.

# ¿¬½À¹®Á¦ 3:
# ½ºÅ©¸³Æ®¸¦ °£·«È­ÇÏ°í, ÇÕ¸®ÀûÀÎ ·ÎÁ÷ÀÌ µÇµµ·Ï °íÃĺ¸¼¼¿ä.