คำถามติดแท็ก code-golf

Code-golf เป็นการแข่งขันเพื่อแก้ไขปัญหาเฉพาะในส่วนที่น้อยที่สุดของซอร์สโค้ด

30
แปลงตัวเลขเป็นเลขฐานสิบหก
ท้าทาย นี่คือหนึ่งที่เรียบง่าย เขียนฟังก์ชั่นหรือโปรแกรมเมื่อได้รับตัวเลขในฐาน 10 เป็น input ก็จะกลับหรือพิมพ์ค่าตัวเลขนั้นในเลขฐานสิบหก ตัวอย่าง 15 -> F 1000 -> 3E8 256 -> 100 กฎระเบียบ ไม่มีเลขฐานสิบหกในตัวทำหน้าที่ใด ๆ ตัวอักษรอาจเป็นตัวพิมพ์เล็กหรือตัวพิมพ์ใหญ่ คุณจะต้องกังวลเกี่ยวกับจำนวนเต็มที่ไม่เป็นลบไม่มีเชิงลบหรือทศนิยมที่น่ารำคาญ ควรทำงานกับจำนวนที่มากตามอำเภอใจจนถึงข้อ จำกัด ประเภทเริ่มต้นของภาษา ขึ้นบรรทัดใหม่ไม่บังคับ ตามปกตินี่คือcode-golfดังนั้นโค้ดที่สั้นที่สุดที่วัดเป็นไบต์จะเป็นผู้ชนะ!

1
สามควายซึ่งกันและกัน
งาน ในความท้าทายนี้งานของคุณคือการเขียนโปรแกรมสามโปรแกรมที่ก่อให้เกิดระบบที่คล้ายกันซึ่งกันและกัน ขอเรียกโปรแกรมA, และB Cหากโปรแกรมใดโปรแกรมหนึ่งได้รับซอร์สของโปรแกรมอื่นเป็นอินพุตโปรแกรมนั้นจะส่งออกซอร์สของโปรแกรมที่สาม ตัวอย่างเช่นถ้าAจะได้รับBเป็น input Cมันจะออกผลลัพธ์ หากโปรแกรมจะได้รับแหล่งที่มาของตัวเองเป็น input เขาจะเอาท์พุทสามสาย"three", "mutual"และ"quines"(ไม่ทราบราคา) ในทุกกรณีพวกเขาอาจส่งออกขึ้นบรรทัดใหม่อีกหนึ่งบรรทัด สำหรับอินพุตอื่นโปรแกรมอาจทำอะไรก็ได้รวมถึงข้อขัดข้อง ตัวอย่าง ตัวอย่างเช่นสมมติว่ารหัสแหล่งที่มาของA, BและCมีaSdf, และghJk zxcVจากนั้นโปรแกรมควรปฏิบัติดังนี้ Source Input Output -------------------- aSdf aSdf three aSdf ghJk zxcV aSdf zxcV ghJk ghJk aSdf zxcV ghJk ghJk mutual ghJk zxcV aSdf zxcV aSdf ghJk zxcV ghJk aSdf zxcV zxcV quines …
23 code-golf  quine 

2
เส้นทางสุ่มท่อประปา
เขียนโปรแกรมหรือฟังก์ชั่นที่ใช้เวลาในสามจำนวนเต็มความกว้างw, ความสูงและนับขั้นตอนh sคุณจะได้รับการวาดภาพที่ไม่ใช่ตัวเองตัดสุ่มเดิน sก้าวยาว ๆ บน5*wโดย5*hพิกเซลภาพที่ทุก ๆ 5 5 เซลล์พิกเซลเป็นทั้งว่างเปล่า (สีเบจบริสุทธิ์) หรือหนึ่งในสิบสองเหล่านี้ง่าย "ท่อ": ภาพด้านบนถูกขยายเพื่อแสดงรายละเอียด นี่คือขนาดท่อจริง: (เส้นสีเทาเป็นเพียงการแยกประเภทท่อ) การเดินแบบสุ่มจะเป็นเส้นทางไปป์แบบต่อเนื่องเดี่ยวที่เริ่มต้นที่จุดปลายท่อหนึ่ง (หนึ่งในสี่ประเภทท่อด้านล่าง) และสิ้นสุดที่จุดปลายท่ออื่น เริ่มต้นด้วยการเว้นว่างwตามhกริดและสุ่มเลือกเซลล์หนึ่งเซลล์เพื่อเป็นจุดเริ่มต้น จากนั้นสุ่มเลือกหนึ่งในสี่ทิศทางเพื่อเริ่มต้นและวาดจุดปลายท่อที่เกี่ยวข้อง เซลล์เริ่มต้นนี้ทำเครื่องหมายขั้นตอนแรกในการเดินของคุณและทุกครั้งที่คุณวาดเซลล์ใหม่หรือเขียนทับเซลล์ที่มีอยู่เดิมจะนับเป็นขั้นตอนอื่น ทีนี้, ซ้ำ ๆ , เลือกสุ่มไปทางขวา, ซ้าย, หรือตรง, วาดเซลล์ท่อที่เหมาะสมหากทิศทางที่เลือกนั้นถูกต้อง. ย้อนกลับและเลือกใหม่หากทิศทางไม่ถูกต้องจนกว่าsเส้นทางขั้นตอนทั้งหมดจะเกิดขึ้น เส้นทางควรลงท้ายด้วยจุดปลายท่อซึ่งอาจอยู่ที่ใดก็ได้บนกริดขึ้นอยู่กับเส้นทางที่ใช้ มันสำคัญมากที่จะต้องทราบว่ามีเพียงเซลล์ท่อตรงสองเส้นเท่านั้นที่สามารถเขียนทับได้และเซลล์ท่อตรงที่มีทิศทางตรงข้ามเท่านั้นผลลัพธ์ที่ได้คือเซลล์แยก มิฉะนั้นจะต้องวางท่อทั้งหมดไว้ในเซลล์ว่าง เมื่อวาดทางแยกส่วนหนึ่งของเส้นทางที่อยู่ถัดจากเซลล์เริ่มต้นจะถูกวาดไว้ด้านบน มันขึ้นอยู่กับคุณหรือไม่ว่ากริดนั้นมีเงื่อนไขขอบเขตเป็นระยะ (PBC) หรือไม่เช่นว่าท่อที่ออกด้านหนึ่งของกริดจะออกมาในอีกด้านหนึ่งหรือไม่ หากไม่มี PBC ขอบเขตของกริดจะนับว่าเป็นสิ่งกีดขวางที่คุณสามารถวิ่งเข้าไปในท่อได้ กรณีพิเศษ เมื่อsเป็น 0 ไม่มีท่อควรจะวาดและผลผลิตที่ควรจะเป็นที่ว่างเปล่า5*wโดย5*hภาพ (เช่นสีเบจทั้งหมด) เมื่อsคือ 1 ท่อต้นขั้วเดียว (ขนาดจริง: …

5
การแปลงอย่างราบรื่นจากสแควร์ถึงหกเหลี่ยม
สำหรับเกมจำนวนมากที่เล่นบนกริดรูปหกเหลี่ยมคือ Clearly Superior Choice ™ น่าเสียดายที่เว็บไซต์ศิลปะเกมฟรีหลายแห่งมีชุดไพ่เรียงต่อเนื่องสำหรับแผนที่สี่เหลี่ยมเท่านั้น ในโครงการที่ผ่านมาฉันใช้สิ่งเหล่านี้และแปลงเป็นรูปหกเหลี่ยมด้วยตนเอง อย่างไรก็ตามฉันขี้เกียจในวัยชราของฉัน มันควรจะง่ายต่อการทำให้เป็นกระบวนการอัตโนมัติด้วยสคริปต์ขนาดเล็ก อย่างไรก็ตามฉันขี้เกียจในวัยชราของฉัน ดังนั้นฉันจ้างให้คุณและปลอมมันเป็นความท้าทายรหัสกอล์ฟ1 อินพุต อินพุตเป็นรูปภาพสี่เหลี่ยมจัตุรัสในรูปแบบภาพทั่วไปที่สามารถใช้สี RGB 24 บิต คุณอาจใช้ชื่อไฟล์เป็นอินพุตแทนข้อมูลภาพเอง คุณอาจจะถือว่าภาพเป็นรูปสี่เหลี่ยมจัตุรัสและความยาวด้านนั้นเป็นเท่าของสี่ เอาท์พุต เอาท์พุทเป็นไทล์ของอินพุต แต่แปลงเป็นรูปหกเหลี่ยม (รูปภาพเองจะเป็นสี่เหลี่ยมจัตุรัสมีพื้นที่โปร่งใส) คุณสามารถบันทึกเป็นไฟล์หรือแสดงไปที่หน้าจอ รูปแบบภาพทั่วไปจะทำเช่นเดียวกัน หากรูปแบบที่คุณใช้สนับสนุนความโปร่งใสพื้นที่พื้นหลังจะต้องโปร่งใส หากไม่เป็นเช่นนั้นคุณอาจใช้ color # FF00FF (สีแดงอมม่วงอันน่ากลัว) เป็นสแตนอิน วิธี แล้วเราจะทำอย่างไร วิธีที่ฉันใช้2ทำให้ภาพแตกในแนวตั้งเล็กน้อย แต่โดยรวมแล้วมันดูค่อนข้างดีสำหรับทุกสิ่ง เราจะทำตัวอย่างกับภาพอินพุตนี้: มาตราส่วน:ปรับอัตราส่วนภาพเป็นอัตราส่วน 3: 2 เนื่องจากรูปภาพของเราจะเป็นสี่เหลี่ยมจัตุรัสหมายความว่าคุณเพียงแค่ปรับให้กว้างถึง 75% และสูง 50% ตัวอย่างอินพุตของเราคือ 200x200 ดังนั้นเราจึงจบด้วยรูปภาพ 150x100 นี้: ไทล์:วางสำเนาของภาพที่ปรับขนาดของคุณลงในตาราง 2x2: …

10
* * * * * * * * Overwrit ป้าย
หากคุณเคยลองเพิ่มป้ายกำกับในพล็อตที่มีความหนาแน่นจริง ๆ คุณจะรู้ว่าบางครั้งป้ายกำกับอาจทับซ้อนกันทำให้อ่านได้ยาก เรากำลังจะทำสิ่งที่คล้ายกัน แต่ใน 1D อินพุตจะเป็นลำดับของ(label, x-coordinate)คู่และเอาต์พุตจะเป็นผลลัพธ์ของการวาดแต่ละจุดและฉลากตามลำดับที่กำหนด เครื่องหมายดอกจันที่*เป็นตัวแทนของจุดควรอยู่ที่พิกัด x ที่กำหนดและฉลากควรเป็นไปตาม อักขระที่มีอยู่ใด ๆ จะถูกเขียนทับ ตัวอย่างเช่นถ้าอินพุตเป็น Hello 0 World 8 Fizz 3 Buzz 5 PPCG 16 X 9 จากนั้นต่อไปนี้จะเกิดขึ้น: *Hello *Hello *World *He*Fizz*World *He*F*Buzzorld *He*F*Buzzorld *PPCG *He*F*Buz*Xrld *PPCG บรรทัดสุดท้ายควรถูกเอาท์พุท กฎ I / O อินพุตอาจประกอบด้วยจำนวนคู่ใด ๆ แต่ละป้ายจะประกอบด้วยตัวอักษรตัวพิมพ์ใหญ่และตัวพิมพ์เล็กเท่านั้นและความยาวของฉลากจะมีได้ไม่เกิน 127 ตัวอักษร แต่ละพิกัด x จะอยู่ระหว่าง …
23 code-golf  string 

5
แปลง Chevrons เป็น Soliduses
เขียนโปรแกรมที่ใช้ในสตริงที่มีช่องว่างเฉพาะบรรทัดใหม่และวงเล็บเหลี่ยม: <, >( เครื่องหมายบั้ง ) เอาท์พุทสตริงของช่องว่างการขึ้นบรรทัดใหม่และทับ: /, \( โซลิด ) ที่มีรูปร่างสอดคล้องกับอินพุตแต่หมุนหนึ่งในสี่รอบตามเข็มนาฬิกาโดยมีคอลัมน์ของช่องว่างที่แทรกระหว่างแต่ละแถวของอินพุตต้นฉบับ (เพื่อความสวยงาม) ตัวอย่างเช่นหากอินพุตคือ: <> ผลลัพธ์จะเป็นดังนี้: /\ \/ หากอินพุตคือ: ><<<> <>< ผลลัพธ์จะเป็นดังนี้: \/ /\ /\ \/ /\ /\ /\ \/ หากอินพุตคือ: >> << <> <> < >< ผลลัพธ์จะเป็นดังนี้: /\ \/ \/ \/ \/ /\ /\ /\ /\ \/ /\ สังเกตว่ามีช่องว่างคอลัมน์เดียวระหว่างแถวอินพุตต้นฉบับในสองตัวอย่างสุดท้ายอย่างไร คุณสามารถเขียนโปรแกรมเต็มรูปแบบที่รับอินพุตด้วยวิธีปกติ …

20
N Slab Slanted Slash Cake
เขียนโปรแกรมหรือฟังก์ชั่นที่รับจำนวนเต็มบวก N เมื่อ N คือ 1 เอาต์พุต /\ \/ เมื่อ N คือ 2 เอาต์พุต /\/\ \/ / / / \/ เมื่อ N คือ 3 เอาต์พุต /\/\/\ \/ / / / / / \/ / / / \/ เมื่อ N คือ 4 เอาต์พุต /\/\/\/\ \/ / / / / / / …

30
สร้างกระดานหมากรุก
เห็นสิ่งนี้ในความท้าทาย PHP มีวัตถุประสงค์เพื่อสร้างกระดานหมากรุกที่มี 64 ช่องสี่เหลี่ยม (8 * 8) ด้วยรหัสขั้นต่ำ ง่ายพอฉันสร้างของฉันใน PHP ที่ 356 ไบท์ (ไม่น่าประทับใจฉันรู้) และฉันอยากจะเห็นเรื่องอื่น ๆ สิ่งนี้สามารถทำในภาษาที่คุณเลือกตราบใดที่คุณเก็บมันวานิลลาดังนั้นจึงไม่มีการนำเข้า จำนวนไบต์ที่เล็กที่สุดชนะ ผลลัพธ์ควรมีลักษณะดังนี้: และรหัสของฉัน: <table><?php $c='black';function p($c,$n){echo'<td style="width:50px;height:50px;background:'.$c.'"></td>';if($n==1){echo"<tr>";}}for($i=1;$i<=64;$i++){if($i%8==0&&$c=="black"){$c="white";$n=1;}elseif($i%8==0&&$c=="white"){$c="black";$n=1;}elseif(isset($n)&&$n==1){$n=0;}elseif($c=="black"){$n=0;$c="white";}elseif($c=="white"){$n=0;$c="black";}p($c,$n);} หรืออ่านได้: <table><tr> <?php $color = 'black'; function printcolor($color, $nl) { echo '<td style="width:50px; height:50px; background:' . $color . '"></td>'; if ($nl == true) { echo …

18
ลูกศรพิมพ์ง่าย
สำหรับการฝึกตีกอล์ฟฉันได้ทำภารกิจในอินโทร Intro ของชั้นแฟนของฉัน ฉันพบว่าสำหรับการมอบหมายนี้มีหลายกลยุทธ์ที่เข้ามาใกล้มากในการนับตัวละครและฉันแน่ใจว่าผู้คนที่นี่สามารถหาวิธีที่ดียิ่งขึ้น แม้ว่าฉันจะสนใจวิธีการทำสิ่งนี้มากที่สุดใน Python ฉันต้องการทราบว่าโปรแกรมนี้สามารถรับ golfed ได้มากที่สุดดังนั้นนี่คือ code golf และคำตอบที่สั้นที่สุดชนะ กฎระเบียบ: งานที่ได้รับมอบหมายระบุไว้ด้านล่าง ผู้ใช้ควรได้รับการขอให้ป้อนข้อมูลสองครั้งแม้ว่าข้อความแจ้งไม่จำเป็นต้องพูดอะไรและสามารถเรียงลำดับอื่นได้ ช่องโหว่มาตรฐานใช้ การบ้าน 3: ลูกศร เขียนโปรแกรมที่พร้อมท์ให้ผู้ใช้ใส่จำนวนคอลัมน์และพิมพ์ลวดลายตามที่เห็นด้านล่าง คุณสามารถสันนิษฐานได้ว่าผู้ใช้จะใส่ตัวเลขบวก โปรแกรมของคุณควรจัดการกับลูกศรซ้ายและขวา นี่คือตัวอย่างการทดสอบสองสามตัวอย่าง: How many columns? 3 Direction? (l)eft or (r)ight: r * * * * * How many columns? 5 Direction? (l)eft or (r)ight: l * * * * …


23
ค้นหาโดยไม่มีข้อความสั่งแบบมีเงื่อนไข
ความท้าทายนี้ได้รับแรงบันดาลใจจากการเขียนโปรแกรมไมโครคอนโทรลเลอร์ Arduino ฉันมีไฟ LED 6 ดวงและปุ่ม 6 ปุ่มเชื่อมต่อกับหมุดต่าง ๆ บนกระดาน ในรหัสแต่ละปุ่มและ LED จะถูกกำหนดหมายเลข ID (1-6) หมายเลขพิน (ตั้งแต่ 0-13) ที่สอดคล้องกับหมายเลข ID จะค้นหาโดยใช้switchคำสั่ง เพื่อความสนุกฉันสงสัยว่าswitches เหล่านี้สามารถหลบเลี่ยงด้วยฟังก์ชันเลขคณิต / ฟังก์ชันอื่น ๆ เพื่อผู้ดูแลรหัสในอนาคตที่น่ากลัว ความท้าทาย จัดเตรียมฟังก์ชัน / ฟังก์ชั่นที่ใช้หมายเลข ID (จำนวนเต็ม) เป็นพารามิเตอร์และส่งกลับหมายเลขพิน (จำนวนเต็ม) สำหรับปุ่ม LED 6 ดวงและ / หรือปุ่ม 6 โดยไม่ต้องใช้คำสั่งแบบมีเงื่อนไข (no if, no switchand no ternary) คืนค่าสำหรับไฟ …

14
สีสันของสี
คุณจะได้รับค่า RGB ของสี งานของคุณง่ายมาก: เพื่อคำนวณค่าในคำจำกัดความที่ง่ายที่สุด พูดว่าช่องที่มีค่าสูงสุดกลางและต่ำสุดคือ X, Y, Z (ซึ่งมีทั้งสีแดงสีเขียวหรือสีน้ำเงิน) และค่าของมันคือ x, y, z สีสันของสีนี้คือ (h (X) -h (Y)) * (1 + (xy) / (xz)) / 2 + h (Y) โดยที่: h(red) = 0 (or 360 if one of X or Y is blue) h(green) = 120 h(blue) = 240 …
23 code-golf 

18
รูปร่างคล้ายกัน
ตัวเลขที่คล้ายกัน สี่เหลี่ยมสองรูปนั้นคล้ายกันถ้าอัตราส่วนของด้านเท่ากัน ลองพิจารณาสี่เหลี่ยมสองรูปนี้ สี่เหลี่ยมผืนผ้าสูง 5 เส้นและกว้าง 11 ตัวอักษร: =========== =========== =========== =========== =========== และสี่เหลี่ยมผืนผ้าสูง 10 เส้นและกว้าง 22 ตัวอักษร: ====================== ====================== ====================== ====================== ====================== ====================== ====================== ====================== ====================== ====================== รูปร่างเหล่านี้คล้ายกันเพราะอัตราส่วนของด้านข้างเท่ากัน ที่จะนำมันอย่างเป็นทางการ (กับเป็นด้านที่สั้นที่สุดและเป็นด้านที่ยาวที่สุด):hhhwww h1w1=h2w2h1w1=h2w2 \frac{h_1}{w_1} = \frac{h_2}{w_2} คุณยังสามารถทำสิ่งต่อไปนี้ h1h2=w1w2h1h2=w1w2 \frac{h_1}{h_2} = \frac{w_1}{w_2} ความท้าทาย เขียนโปรแกรมหรือฟังก์ชั่นที่ใช้สี่เหลี่ยม "หลัก" และสี่เหลี่ยมบางอัน "อื่น ๆ " และพิมพ์ที่ "อื่น ๆ …

7
งูที่ถูกต้องบนเครื่องบิน
แรงบันดาลใจจากหนึ่งในวิดีโอของ Vi Hart (ซึ่งเป็นขุมสมบัติที่เต็มไปด้วยความคิดที่ท้าทาย) งูประกอบด้วยส่วนที่มีความยาวเท่ากันและการเชื่อมต่อระหว่างแต่ละส่วนนั้นอาจจะตรงหรือเลี้ยว 90 ° เราสามารถเข้ารหัสเช่นงู (ได้ถึงการหมุนซึ่งขึ้นอยู่กับทิศทางเริ่มต้น) โดยการเขียนลงเลื้อยทิศทางของการผลัด (ตรง / ซ้าย / ขวา) ที่ใช้ใน อันนี้เริ่มจากซ้ายบนและชี้ไปทางขวา -+ +--+ SR RSSR | +-+ | S RSL S +--+ --+ LSSL SSR จะถูกแสดงโดย slither SRSLSSLRLRSSRSRSS และแน่นอนว่างูระนาบไม่สามารถตัดกัน (เหมือนในSSSSLLLSS) ซึ่งจะส่งผลให้เกมโอเวอร์พิกเซล งานของคุณคือการตรวจสอบว่า slither ถูกต้องหรือไม่ (ผลในการแยกตนเองอย่างน้อยหนึ่งครั้ง) อินพุต สตริงที่ทำจากตัวอักษรSLRด้วย2 < length < 10000 Output Something Truthy …

2
เชื่อมต่อตัวอักษร
คุณควรเขียนโปรแกรมหรือฟังก์ชั่นที่ได้รับบล็อกของตัวอักษรที่แสดงเป็นสตริงและเอาท์พุทหรือส่งกลับสตริงที่คล้ายกันซึ่งตัวอักษรที่อยู่ติดกันในตัวอักษรมีการเชื่อมต่อ ตัวอย่างภาพ (ในรูปแบบของinput => output): b d b d |\ /| | \ / | => | X | | / \ | e |/ \e c a c a รายละเอียด ข้อมูลที่ป้อนจะเป็นสตริงที่มีช่องว่างบรรทัดใหม่และNตัวอักษรตัวพิมพ์เล็กตัวแรกของอักขระ1 <= N <= 26 เส้นของอินพุตจะถูกเสริมด้วยช่องว่างที่สร้างบล็อกสี่เหลี่ยมเต็ม \ / | or -คู่ของตัวอักษรที่อยู่ติดกันในตัวอักษรทุกคนจะอยู่ในแถวเดียวกันคอลัมน์หรือเส้นทแยงมุมและควรจะเชื่อมต่อกับเส้นตรงโดยใช้ ASCII (บรรทัดอาจมีความยาว 0) ควรจัดการเหลื่อมทับสองบรรทัดต่อไปนี้: / and \ become …

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.