ความท้าทาย
กำหนดสตริงเลขฐานสิบหกสองตัวพิมพ์ใหญ่ (ทั้ง 6 ตัวยาว XXXXXX และ YYYYYY) แทนค่า RGB (ตั้งแต่000000
ไปจนถึงFFFFFF
รวม) และเลขจำนวนเต็มบวกที่ไม่เป็นศูนย์บวกแสดงการเปลี่ยนสีเชิงเส้นของสี N + 2 ที่สร้างจาก XXXXXX เป็น YYYYYY ที่จะส่งผลให้การไล่ระดับสี
ตัวอย่าง
อินพุต
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 ดังนั้นผลลัพธ์ที่ได้ของคุณจะต้องมีความยาวอย่างน้อยสามบรรทัด