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\"