Posted to tcl by dandyn at Wed Mar 15 16:37:32 GMT 2023view raw
- # This is part of Tcllib
- package require struct::list
- set p_02 ".poker"; bind pub -|- $p_02 poker
- proc poker {nick uhost hand chan text} {
- putquick "PRIVMSG $chan :Five cards: \003 $::card_2a $::card_2b $::card_2c $::card_2d"
- putquick "PRIVMSG $chan :Which cards to keep?"
- }
- bind pub -|- !random proc:random
- proc proc:random {nick host handle channel arg} {
- set shuffle_cards {
- "$::card_2a" "$::card_2b" "$::card_2c" "$::card_2d"
- "$::card_3a" "$::card_3b" "$::card_3c" "$::card_3d"
- "$::card_4a" "$::card_4b" "$::card_4c" "$::card_4d"
- "$::card_5a" "$::card_5b" "$::card_5c" "$::card_5d"
- "$::card_6a" "$::card_6b" "$::card_6c" "$::card_6d"
- "$::card_7a" "$::card_7b" "$::card_7c" "$::card_7d"
- "$::card_8a" "$::card_8b" "$::card_8c" "$::card_8d"
- "$::card_9a" "$::card_9b" "$::card_9c" "$::card_9d"
- "$::card_Ta" "$::card_Tb" "$::card_Tc" "$::card_Td"
- "$::card_Ja" "$::card_Jb" "$::card_Jc" "$::card_Jd"
- "$::card_Qa" "$::card_Qb" "$::card_Qc" "$::card_Qd"
- "$::card_Ka" "$::card_Kb" "$::card_Kc" "$::card_Kd"
- "$::card_Aa" "$::card_Ab" "$::card_Ac" "$::card_Ad"
- }
- set output [struct::list shuffle $shuffle_cards]
- putnow "PRIVMSG $channel : [lrange $output 0 4]"
- }
- #Färgerna saknar alltid betydelse vid rangordningen, bara högsta kortet är intressant.
- #Den högsta stegen är AKQJT. Om flera spelare har tretal jämför man i första hand valören
- #på korten i tretalet, i andra hand högsta sidokortet och i sista hand det lägre sidokortet.
- #Färgerna är betydelselösa.
- # a=`, b=e, c=f, d=c
- # fK eK cK `K `A
- set ::card_2a "\\00391`2\003\"
- set ::card_2b "\\00352e2\003\"
- set ::card_2c "\\00352f2\003\"
- set ::card_2d "\\00391c2\003\"
- set ::card_3a "\`3\"
- set ::card_3b "\e3\"
- set ::card_3c "\f3\"
- set ::card_3d "\c3\"
- set ::card_4a "\`4\"
- set ::card_4b "\e4\"
- set ::card_4c "\f4\"
- set ::card_4d "\c4\"