Posted to tcl by dandyn at Wed Mar 15 16:37:32 GMT 2023view pretty
# 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\"