过去,所有1337个孩子在聊天室中都使用了文本推子。我不了解你们,但是我想像他们一样感到很酷。唯一的问题是,它们的旧脚本和应用程序与所创建的软件紧密耦合,因此我不能随便在任何地方使用这一惊人的功能。我还希望该解决方案易于移植,因此您需要使代码尽可能小,以使其适合我的软盘(我只希望携带一张软盘,但是如果您的源代码太大,我可以携带多个:P)。
输入值
- 颜色列表(RGB,十六进制,名称等)
- 文字格式
您的程序应该期望颜色列表至少包含2种颜色。
要格式化的文本可以是大于零的任何长度,并且字符将限于可打印的ascii。(提示:较长的文本输入可能要求您将中间颜色重新用于连续字符)
输出量
除了字体和/或标记/样式外,输出文本应与输入文本没有任何不同(注意:如果输出包含html标记,则需要对输入进行html编码)。您可以输出带有标记/样式的文本(html样式标签,控制台颜色等)或褪色文本的图片。除非输入中没有足够的字符来满足此要求,否则所有彩色十六进制应出现在输出中。如果是这种情况,请查阅优先级规则,以确定输出中应显示哪些颜色的十六进制。输出中的顺序或这些颜色仍应为输入顺序。
颜色优先规则
- 如果输入是一个字符,将使用第一种颜色
- 如果只有两个字符,将使用第一个和最后一个颜色
- 如果存在三种以上的颜色,并且多于一种字符,则应优先使用第一种和最后一种颜色,然后按输入顺序排列其余颜色。
- 如果字符多于颜色,则字符应使用中间颜色从一种颜色淡入另一种颜色
示例(优先级规则分别为1-3):
#颜色| 颜色0 | ... | 颜色n | 文字
3 ff0000 0000ff ffff00 M-> -> ->
3 ff0000 0000ff ffff00 hi
4 ff0000 0000ff ffff00 0fff00 sup
为了清楚起见,文本颜色应从一种颜色的十六进制逐渐淡入另一种颜色。淡变不必完全均匀,但是除非字符不足以使淡变好,否则淡变不应是突然的。通常,此淡入淡出是通过为rgb值增加/减少一定间隔来为每个字符选择中间颜色来实现的,该间隔由必须使用的字符数和颜色之间的差异决定。例如,如果我们需要介于
(#ff0000)和
(#000000)之间的单一颜色,则可以选择
它位于中间的颜色。最佳输出将看起来很漂亮。
示例(优先级规则4):
3 ff0000 ff7f00 f0ff00 To be or not to be, that is the question...->
-OR-
<span style="color:#ff0000;">T</span><span style="color:#ff0600;">o</span><span style="color:#ff0c00;"> </span><span style="color:#ff1200;">b</span><span style="color:#ff1800;">e</span><span style="color:#ff1e00;"> </span><span style="color:#ff2400;">o</span><span style="color:#ff2a00;">r</span><span style="color:#ff3000;"> </span><span style="color:#ff3600;">n</span><span style="color:#ff3c00;">o</span><span style="color:#ff4300;">t</span><span style="color:#ff4900;"> </span><span style="color:#ff4f00;">t</span><span style="color:#ff5500;">o</span><span style="color:#ff5b00;"> </span><span style="color:#ff6100;">b</span><span style="color:#ff6700;">e</span><span style="color:#ff6d00;">,</span><span style="color:#ff7300;"> </span><span style="color:#ff7900;">t</span><span style="color:#ff7f00;">h</span><span style="color:#fe8500;">a</span><span style="color:#fe8b00;">t</span><span style="color:#fd9100;"> </span><span style="color:#fc9700;">i</span><span style="color:#fb9d00;">s</span><span style="color:#fba400;"> </span><span style="color:#faaa00;">t</span><span style="color:#f9b000;">h</span><span style="color:#f9b600;">e</span><span style="color:#f8bc00;"> </span><span style="color:#f7c200;">q</span><span style="color:#f6c800;">u</span><span style="color:#f6ce00;">e</span><span style="color:#f5d400;">s</span><span style="color:#f4da00;">t</span><span style="color:#f4e100;">i</span><span style="color:#f3e700;">o</span><span style="color:#f2ed00;">n</span><span style="color:#f1f300;">.</span><span style="color:#f1f900;">.</span><span style="color:#f0ff00;">.</span>
在您的答案中,请指定输出的显示方式(以html,在控制台中,以图像等形式)。
*所有黑色背景仅用于强调颜色,并非必需
计分
这是代码高尔夫球,因此最短的答案(以字节为单位)获胜。
如果您设法为单个角色添加淡入淡出,那么我会永远认为您很酷(但是没有得分的奖励,因为这对某些语言不公平)
000000和ff0000应为b40000(255*sqrt((0+1)/2))

#000000而#ff0000不是#800000。