Wyzwanie
Biorąc pod uwagę dwa wielkie ciągi szesnastkowe (oba o długości 6 znaków, XXXXXX i RRRRRR) reprezentujące wartości RGB (od 000000
do FFFFFF
włącznie) oraz dodatnią niezerową liczbę całkowitą N, wyświetl liniowe przejście kolorów N + 2 wygenerowanych z XXXXXX na RRRRRR spowoduje to gradient kolorów.
Przykład
Wejście
FF3762
F08800
9
Wynik
Uwaga: w naszym przykładzie poprosiłem o 9 pośrednich kroków między dwoma kolorami, dlatego 11 linii zostanie wyświetlonych od koloru początkowego do koloru końcowego
FF3762
FD3F58
FC474E
FA4F44
F9573A
F75F31
F66727
F46F1D
F37713
F17F09
F08800
Ostrzeżenia
Chociaż przeszedłem prosty liniowy proces wyprowadzania wartości liczb całkowitych dla kolorów tymczasowych przed przekształceniem ich z powrotem w szesnastkowy, twoje metody mogą się różnić. Proszę rozważyć różne sposoby odpowiedniego zaokrąglania liczb w górę / w dół .
Testowanie
Aby uczynić to interesującym, udostępniłem fragment kodu umożliwiający testowanie kodu, w tym przycisk zapewniający dwa losowe kolory do testowania kodu. Wyświetlanie wyników jest opcjonalne, ale zalecane!
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) Możesz uzyskać dostęp do dwóch losowych kolorów do testu, klikając przycisk „Twoje dwa kolory”. 2) Liczba kroków pośrednich będzie taka sama jak liczba znaków w nazwie użytkownika PPCG łącznie ze spacjami, w przypadku „WallyWest” będzie to 9 (jak w moim przykładzie powyżej). 3) Uruchom kod z dwoma kolorami i liczbą, a kiedy już utworzysz listę, możesz wkleić dane wyjściowe do obszaru tekstowego i tabulować je, aby uzyskać wygenerowany gradient kolorów.
Mój przykład pokazano tutaj:
Muszę przyznać, że wygląda to niesamowicie!
Uwaga: jak już wspomniałem, pokazanie testowania wyników za pomocą fragmentu kodu jest opcjonalne, ale zalecane! :)
Wynik
Dane wyjściowe listy muszą mieć postać N + 2 zestawów 6-cyfrowych liczb szesnastkowych oddzielonych wierszami (\ n), jak pokazano w moim przykładzie powyżej. Wyjście może być w formie oddzielnych linii, przestrzeń / oddzielonych przecinkami listę, tablicą lub cokolwiek jest najlepsza dla danego języka ... (Dzięki @nimi do głów w górę) Proszę pamiętać, że jeśli plan testowania kodu z fragment kodu, niezależnie od tego, jak rozdzielisz każdy „kolor”, zależy od Ciebie.
Zasady
To jest golf golfowy, więc zwycięzca otrzyma najkrótsze rozwiązanie w bajtach. Naturalnie brak luk . Dane wejściowe muszą akceptować dwa ciągi i liczbę (która, jak powiedziałem, będzie równoważna liczbie liter w nazwie użytkownika na PPCG, a zatem wynikowy wynik zawsze będzie miał co najmniej trzy linie.