挑战
给定两个表示RGB值的大写十六进制字符串(长6个字符,XXXXXX和YYYYYY)(范围从000000
到FFFFFF
包括)和一个正非零整数N,显示从XXXXXX到YYYYYY生成的N + 2种颜色的线性过渡这会导致颜色渐变。
例
输入值
FF3762
F08800
9
输出量
请注意,在我们的示例中,我请求了两种颜色之间的9个过渡步骤,因此从初始颜色到最终颜色将显示11行
FF3762
FD3F58
FC474E
FA4F44
F9573A
F75F31
F66727
F46F1D
F37713
F17F09
F08800
注意事项
虽然我已经进行了一个简单的线性过程,即在将中间颜色转换回十六进制之前导出中间值的整数值,但是您的方法可能会有所不同。请考虑可以采用多种方式对数字进行四舍五入的方法。
测试中
为了使这一点有趣,我提供了一个片段来测试您的代码,其中包括一个按钮,为您提供两种随机颜色来测试您的代码。显示结果是可选的,但鼓励您!
c1=()=>('00000'+(Math.random()*(1<<24)|0).toString(16)).slice(-6);
$("#col").click(function(){
alert("Your two colors are: "+c1()+" and "+c1()+".");
});
$("#colors").blur(function(){
$("#test").empty();
var colArr = $("#colors").val().split("\n");
for(c in colArr){
$("#test").append('<div class="tester" style="background-color:#'+colArr[c]+';">'+colArr[c]+'</div>')
}
});
.tester{height: 20px;
width: 60px;padding: 4px;border: 1px solid black;}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button id="col">Your two colors</button><br />
<textarea id="colors"></textarea>
<div id="test">
</div>
1)您可以通过单击“您的两种颜色”按钮来访问两种随机颜色进行测试。2)临时步骤数将与PPCG用户名中的字符数(包括空格)相同,在“ WallyWest”的情况下将为9(根据我上面的示例)。3)用两种颜色和数字运行代码,一旦有了生成的列表,就可以选择将输出粘贴到textarea中,然后移开它,以获取生成的颜色渐变。
我的示例如下所示:
我必须承认,这看起来很棒!
请注意:如前所述,使用代码段显示对输出的测试是可选的,但鼓励您!:)
输出量
列表输出必须采用N + 2组6位十六进制数字的形式,由换行符(\ n)分隔,如上面的示例所示。输出可以采用单独的行,空格/逗号分隔的列表,数组或最适合您的语言的形式... (感谢@nimi提醒),请记住,如果您打算使用代码段,但是您可以将每个“颜色”分开,具体取决于您。
规则
这是代码高尔夫球,因此最短的字节解决方案将成为赢家。自然没有漏洞。输入必须接受两个字符串和一个数字(正如我所说,这将等效于您在PPCG上用户名中的字母数,因此您得到的输出将始终至少为三行。