Процедура случайной раскраски текста.

Решение вопросов при работе с TCL скриптами.

Модератор: Модераторы

Процедура случайной раскраски текста.

Сообщение tvrsh » 04 дек 2008 01:17

Написал процедуру, которая раскрашивает каждую букву переданного ей текста в случайный цвет.
TCL: [ Скачать ] [ Скрыть ]
# Тут передаем в процедуру текст.
proc colorize {text} {
    # Здесь разбиваем его на отдельные буквы.
    foreach bukva [split $text ""] {
        # Выбираем случайный текст для буквы.
        set cccolor [lindex "01 02 03 04 05 06 07 08 09 10 11 12 13 14 15" [rand 15]]
        # Красим букву.
        set bukva "\003$cccolor$bukva"
        # Отправляем раскрашенную букву в переменную с обновленным текстом.
        append text2 $bukva
    }
    # Возвращаем из процедуры раскрашенный текст.
    return [join $text2 ""]
}


Может пригодиться кому-то. Учтите, что длинна строк значительно увеличивается после раскраски, придется дописывать разбивку текста на строки.
Have fun.
-
Получить помощь можно на каналах #egghelp в сети IrcNet.ru и #eggdrop в сети RusNet(Ключ канала eggdrop).
Перед созданием новой темы внимательно читайте Правила оформления топиков.
Аватара пользователя
tvrsh
 
Сообщения: 1230
Зарегистрирован: 19 авг 2008 16:55
Откуда: Russian Federation, Podolsk
Благодарил (а): 6 раз.
Поблагодарили: 130 раз.
Версия бота: Eggdrop 1.6.20+suzi

Re: Процедура случайной раскраски текста.

Сообщение qwerty » 14 дек 2008 15:35

Запихал все 3 процедуры в один скрипт, вопрос, бот почему то сжирает пробелы в процедуре раскраски, как поправить можно?
[ 14.12 | 14:33:55 ] [ ] polman > !col test test
[ 14.12 | 14:33:55 ] [ ] partytalks > testtest

http://pastebin.ru/299575
http://www.ircline.ru IRCLine IRC Network
qwerty
 
Сообщения: 1
Зарегистрирован: 12 дек 2008 14:48
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Re: Процедура случайной раскраски текста.

Сообщение tvrsh » 14 дек 2008 17:13

TCL: [ Скачать ] [ Скрыть ]
bind pub - !ccc colorize
proc colorize {nick uhost hand chan text} {
foreach bukva [split $text ""] {
    set cccolor [lindex "01 02 03 04 05 06 07 08 09 10 11 12 13 14 15" [rand 15]]
    set bukva "\003$cccolor$bukva"
    lappend text2 $bukva
}
putserv "PRIVMSG $chan :[join $text2 ""]"
return
}


<@tvrsh> !load ccc.tcl
<+bionic> -(Load)- Script: ccc.tcl - Size: 0.27734375 Kb - Status: OK -(Info)-
<@tvrsh> !ccc test test
<+bionic> test test
Have fun.
-
Получить помощь можно на каналах #egghelp в сети IrcNet.ru и #eggdrop в сети RusNet(Ключ канала eggdrop).
Перед созданием новой темы внимательно читайте Правила оформления топиков.
Аватара пользователя
tvrsh
 
Сообщения: 1230
Зарегистрирован: 19 авг 2008 16:55
Откуда: Russian Federation, Podolsk
Благодарил (а): 6 раз.
Поблагодарили: 130 раз.
Версия бота: Eggdrop 1.6.20+suzi

Re: Процедура случайной раскраски текста.

Сообщение Vertigo » 10 фев 2011 01:49

Ну и я от себя добавлю. Процедура раскрашивает текст цветами радуги.
|00:45:05| <10Vertigo> .tcl proc rainbow {a} {set b [list]; set c [list 04 07 08 03 12 02 06]; set i -1; foreach _ [split $a ""] {if {[incr i] >= [llength $c]} {set i 0}; lappend b "\003[lindex $c $i]$_"}; return [join $b ""] }
|00:45:06| <09Katrina> Tcl 03(67.00µs03): [no error]
|00:45:16| <10Vertigo> .tcl rainbow "проверочка раскраски"
|00:45:18| <09Katrina> Tcl 03(177.00µs03): 04п07р08о03в12е02р06о04ч07к08а03 12р02а06с04к07р08а03с12к02и

TCL: [ Скачать ] [ Скрыть ]
proc rainbow {a} {
                set b [list]
                set c [list 04 07 08 03 12 02 06]
                set i -1
                foreach _ [split $a ""] {
                        if {[incr i] >= [llength $c]} {
                                set i 0
                        }
                lappend b "\003[lindex $c $i]$_"
                }
        return [join $b ""]
}
Аватара пользователя
Vertigo
 
Сообщения: 107
Зарегистрирован: 20 авг 2008 23:49
Откуда: Москва
Благодарил (а): 0 раз.
Поблагодарили: 37 раз.
Версия бота: Eggdrop 1.8


Вернуться в TCL скрипты

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4

cron