#!/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: # ½ºÅ©¸³Æ®¸¦ °£·«ÈÇÏ°í, ÇÕ¸®ÀûÀÎ ·ÎÁ÷ÀÌ µÇµµ·Ï °íÃĺ¸¼¼¿ä.