Posted to tcl by Zarutian at Fri Nov 16 02:29:09 GMT 2007view raw
- proc create {deck} {
- upvar $deck d
- foreach type {S H D C} {
- foreach value {A 2 3 4 5 6 7 8 9 10 J Q K} {
- lappend cards [set value][set type]
- }
- }
- while {[llength $cards]} {
- set item [lpick $cards]
- lappend d $item
- lremove cards $item
- }
- }
- proc lpick {list} {
- return [lindex $list [expr int(rand()*[llength $list])]]
- }
- proc lremove {var item} {
- upvar $var v
- set t [lsearch -exact $v $item]
- set v [lreplace $v $t $t]
- }