그 당시에는 1337 명의 아이들이 모두 대화방에서 텍스트 페이더를 사용했습니다. 나는 너희들에 대해 모른다. 그러나 나는 그들이하는 것처럼 시원하게 느끼고 싶다. 유일한 문제는 이전 스크립트와 응용 프로그램이 만들어진 소프트웨어에 크게 연결되어 있기 때문에 원하는 곳에서이 놀라운 기능을 사용할 수 없다는 것입니다. 또한 솔루션을 쉽게 이식 할 수 있기를 원하므로 플로피 디스크에 맞게 코드를 최대한 작게 만들어야합니다 (플로피 디스크는 한 개만 가지고 있지만 소스 코드가 너무 큰 경우 나는 하나 이상을 운반 할 수 있습니다 : P ).
입력
- 색상 목록 (rgb, hex, names 등)
- 서식을 지정할 텍스트
프로그램은 색상 목록에 최소한 2 개의 색상이 포함되어 있어야합니다.
형식화 할 텍스트는 0보다 길 수 있으며 문자는 인쇄 가능한 ASCII로 제한됩니다. (힌트 : 텍스트를 길게 입력하면 연속 문자에 중간 색상을 재사용해야 할 수 있습니다)
산출
출력 텍스트는 글꼴 및 / 또는 마크 업 / 스타일 이외의 방식으로 입력 텍스트와 다르지 않아야합니다 (참고 : 출력에 html 마크 업이 포함 된 경우 입력을 html 인코딩해야합니다). 마크 업 / 스타일링 (html 스타일 태그, 콘솔 색상 등) 또는 희미한 텍스트 그림이있는 텍스트를 출력 할 수 있습니다. 입력에이 요구 사항을 충족시키기에 충분한 문자가 포함되어 있지 않으면 모든 색상 헥스가 출력에 있어야합니다. 이 경우 우선 순위 규칙을 참조하여 출력에 표시 할 색 헥스를 결정하십시오. 출력의 순서 또는이 색상은 여전히 입력 순서 여야합니다.
색상 우선 순위 규칙
- 입력이 하나의 문자 인 경우 첫 번째 색상이 사용됩니다
- 문자가 두 개인 경우 첫 번째 색과 마지막 색이 사용됩니다
- 문자보다 3 개 이상의 색상과 더 많은 색상이있는 경우 첫 번째 색상과 마지막 색상이 우선 순위를 정한 다음 나머지 색상은 입력 된 순서대로 지정해야합니다.
- 색상보다 많은 문자가있는 경우 중간 색상을 사용하여 문자가 한 색상에서 다음 색상으로 페이드되어야합니다.
예 (각각 우선 순위 규칙 1-3) :
# 색상 | 색 0 | ... | 색 n | 텍스트
3 ff0000 0000ff ffff00 M-> -> ->
3 ff0000 0000ff ffff00 hi
4 ff0000 0000ff ffff00 0fff00 sup
명확하게하려면 텍스트 색상이 한 색상 16 진에서 다음 16 진으로 페이드되어야합니다. 페이드가 완벽하게 균일 할 필요는 없지만 멋지게 페이드 할 수있는 문자가 충분하지 않은 한 급격한 색상 변경이어서는 안됩니다. 일반적으로이 페이드는 작업해야하는 문자 수와 색의 차이에 의해 결정된 간격으로 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, 콘솔, 이미지 등).
* 모든 검정색 배경은 색상을 강조하기위한 것이며 필수는 아닙니다
채점
이것은 code-golf 이므로 가장 짧은 답변 (바이트)이 이깁니다.
개별 캐릭터에 페이드를 추가하면 영원히 멋지다고 생각합니다 (그러나 일부 언어에서는 불공평하므로 점수를 매기는 보너스는 없습니다)
000000과는 ff0000해야한다 b40000( 255*sqrt((0+1)/2))

#000000과는#ff0000아닙니다#800000.