คำถามติดแท็ก ascii-art

ความท้าทายนี้เกี่ยวข้องกับการสร้างหรือแยกภาพโดยใช้ตัวอักษรเป็นสี โดยทั่วไปจะใช้เพียง 95 ตัวอักษรที่พิมพ์ได้ (จากทั้งหมด 128 ตัว) ที่กำหนดโดยมาตรฐาน ASCII จากปี 1963

1
การนับโซ่ของคันนิงแฮม
ตัวเลขที่สำคัญทำให้ผู้คนหลงใหล 2300 ปีที่แล้ว Euclid เขียนใน "Elements" ของเขา จำนวนเฉพาะคือสิ่งที่วัดโดยหน่วยเดียว ซึ่งหมายความว่านายกสามารถหารด้วย1(หรือด้วยตัวเอง) เท่านั้น ผู้คนมักจะมองหาความสัมพันธ์ระหว่างจำนวนเฉพาะและเกิดขึ้นกับบางสิ่งที่แปลก (เช่นใน "น่าสนใจ") ตัวอย่างเช่นนายก Sophie Germainเป็นนายกpที่2*p+1สำคัญเช่นกัน นายกปลอดภัยเป็นนายกpที่(p-1)/2ยังเป็นนายกรัฐมนตรีซึ่งเป็นว่าสภาพข้างหลังของนายกโซฟีต์แชร์กแมง สิ่งเหล่านี้เกี่ยวข้องกับสิ่งที่เรากำลังมองหาในการท้าทายนี้ ห่วงโซ่คันนิงแฮมของประเภทที่เป็นชุดของจำนวนเฉพาะที่องค์ประกอบยกเว้นคนสุดท้ายทุกคนจะเป็นนายกโซฟีต์แชร์กแมงและองค์ประกอบยกเว้นคนแรกที่ทุกคนเป็นนายกปลอดภัย จำนวนขององค์ประกอบในครั้งนี้มีห่วงโซ่ที่เรียกว่ามันยาว ซึ่งหมายความว่าเราเริ่มต้นด้วยการลากและคำนวณp q=2*p+1ถ้าqเป็นไพร์มด้วยเรามี Cunnigham chain ของ type I ที่มีความยาว 2 จากนั้นเราจะทดสอบ2*q+1และต่อไปเรื่อย ๆ จนกระทั่งจำนวนที่สร้างขึ้นถัดไปเป็นคอมโพสิต โซ่คันนิงแฮมประเภทIIสร้างขึ้นตามหลักการเดียวกันเกือบทั้งหมดความแตกต่างเพียงอย่างเดียวคือเราตรวจสอบ2*p-1แต่ละขั้นตอน โซ่คันนิงแฮมสามารถมีความยาว 1ซึ่งหมายความว่า 2 * p + 1 หรือ 2 * p-1 ไม่สำคัญ เราไม่ได้สนใจในสิ่งเหล่านี้ ตัวอย่างบางส่วนของ Cunningham chains 2เริ่มสายโซ่ประเภทที่ฉันมีความยาว …

4
การนับจุดสิ้นสุดของศิลปะ ASCII
คุณควรเขียนโปรแกรมหรือฟังก์ชั่นที่ได้รับสตริงที่แสดงถึง ASCII art เป็น input และ output หรือคืนค่าจำนวน endpoints ใน input อินพุตจะประกอบด้วยอักขระspace - | +(ที่มีจุดปลาย 0, 2, 2 และ 4 ตามลำดับ) และการแบ่งบรรทัด เช่น: -|++- + อักขระสองตัวที่อยู่ติดกันถูกเชื่อมต่อและทำให้สูญเสีย 1 จุดปลายในแต่ละกรณีในกรณีต่อไปนี้: -- -+ +- | | + + ++ | + | + ตัวอย่างแรกมี 2+2+2+2+1+ 3 = 12 ปลายทาง อินพุต การป้อนข้อมูลจะเป็นสตริงที่ประกอบด้วยพื้นที่ตัวอักษร-, |, +และขึ้นบรรทัดใหม่ …

5
กำหนดขนาดของสี่เหลี่ยมผืนผ้าที่หมุน
ตัวอย่างสแต็กนี้วาดสี่เหลี่ยมสีขาวที่มีนามแฝงบนพื้นหลังสีดำที่กำหนดพารามิเตอร์สำหรับขนาดตำแหน่งมุมและขนาดกริด: <style>html *{font-family:Consolas,monospace}input{width:24pt;text-align:right;padding:1px}canvas{border:1px solid gray}</style><p>grid w:<input id='gw' type='text' value='60'> grid h:<input id='gh' type='text' value='34'> w:<input id='w' type='text' value='40'> h:<input id='h' type='text' value='24'> x:<input id='x' type='text' value='0'> y:<input id='y' type='text' value='0'> θ:<input id='t' type='text' value='12'>° <button type='button' onclick='go()'>Go</button></p>Image<br><canvas id='c'>Canvas not supported</canvas><br>Text<br><textarea id='o' rows='36' cols='128'></textarea><script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script><script>function toCart(t,a,n,r){return{x:t-n/2,y:r/2-a}}function vtx(t,a,n){return{x:n.x+t*Math.cos(a),y:n.y+t*Math.sin(a)}}function sub(t,a){return{x:t.x-a.x,y:t.y-a.y}}function dot(t,a){return t.x*a.x+t.y*a.y}function inRect(t,a,n,r){var …

4
วาดการเดินสุ่มด้วยสแลช
เขียนโปรแกรมหรือฟังก์ชั่นที่รับจำนวนเต็มบวก N (ผ่าน stdin / command line / function arg) และพิมพ์หรือคืนค่าการแทนค่าสตริงของการเดินแบบสุ่มสองมิติที่มีความยาว N ก้าวยาวออกจากสแลช: / \(บวกช่องว่างและ บรรทัดใหม่สำหรับการเว้นวรรค) 2 มิติเดินสุ่มเริ่มต้นที่ต้นกำเนิดของอนันต์ขัดแตะจำนวนเต็ม จากนั้น N คูณซ้ำ ๆ ทิศทางที่สำคัญ (ขึ้น, ลง, ซ้าย, ขวา) จะถูกเลือกอย่างสม่ำเสมอโดยการสุ่มและวอล์คเกอร์เคลื่อนที่หนึ่งหน่วยในทิศทางนั้น เส้นทางที่เกิดขึ้นคือการเดินแบบสุ่ม นี่คือการเดินแบบสุ่มสำหรับ N = 6 โปรดสังเกตว่ามันเคลื่อนที่ย้อนกลับไปที่ตัวเองเมื่อถึง (-1, 3) ในการวาดด้วยสแลชเราต้องหมุนทั้งหมดตามเข็มนาฬิกา 45 ° แกนและจุดเริ่มต้นและจุดสิ้นสุดไม่ถูกวาดในเวอร์ชันสแลช / \ \ /\ การเดินที่ซับซ้อนมากขึ้นเช่นนี้ (N = 20 แม้ว่าจะไม่มีทางบอก): จะกลายเป็นสิ่งนี้: …

1
ค้นหาสมมาตรในกำลังสอง
เขียนโปรแกรมหรือฟังก์ชั่นที่ใช้ในรายการจำนวนเต็มบวก จำนวนเต็มแต่ละจำนวนเหล่านี้แสดงความยาวด้านของสี่เหลี่ยมจัตุรัสบนระนาบ 2D แต่ละสี่เหลี่ยมสามารถเคลื่อนย้ายไปยังพิกัดจำนวนเต็มใด ๆ ในระนาบ แต่มันไม่สามารถหมุนได้และไม่สามารถซ้อนทับสี่เหลี่ยมอื่น ๆ ได้ การใช้อักขระ ASCII ที่พิมพ์ได้ที่แตกต่างกันสำหรับแต่ละตาราง (ไม่รวมพื้นที่ซึ่งใช้สำหรับความว่างเปล่า) โปรแกรม / ฟังก์ชันของคุณจำเป็นต้องพิมพ์การจัดเรียงสี่เหลี่ยมจัตุรัสใด ๆ ที่มีเส้นแนวนอนหรือแนวตั้งของสมมาตรสะท้อน หากไม่มีข้อตกลงดังกล่าวอยู่ก็ไม่ควรพิมพ์สิ่งใด สี่เหลี่ยมเป็นตัวละครที่แตกต่างกันเพื่อให้พวกเขาสามารถแยกออกจากกัน เฉพาะรูปร่างที่ทำโดยสหภาพของสี่เหลี่ยมทั้งหมดจะต้องมีความสมมาตร คุณสามารถสันนิษฐานได้ว่ารายการจะไม่มีองค์ประกอบมากกว่า 94 องค์ประกอบ (เนื่องจากมี 94 ตัวอักษร) ตัวอย่างเช่นถ้าอินพุต[2, 1, 2, 2, 2]เป็นเอาต์พุตที่เป็นไปได้คือ: DD-- DD-- Z FFPP FFPP รูปร่างนี้มีเส้นแนวนอนของสมมาตรการสะท้อนแสง ครึ่งบนและล่างของมันเป็นภาพสะท้อน นี่คือความเป็นไปได้อื่น ๆ : (โปรดทราบว่าช่องสี่เหลี่ยมไม่จำเป็นต้องสัมผัสและสามารถใช้อักขระใด ๆ ได้ตราบใดที่ไม่มีช่องสี่เหลี่ยมสองช่องที่สร้างด้วยอักขระตัวเดียวกัน) 55 55 %% %% @ …

7
การเรียงตาราง 2 ^ N คูณ 2 ^ N ด้วย Trominoes รูปตัว L
เมื่อนักเรียนได้รับการสอนครั้งแรกเกี่ยวกับเทคนิคการพิสูจน์การอุปนัยทางคณิตศาสตร์ตัวอย่างทั่วไปคือปัญหาของการเรียงตัวกันของตาราง 2 N × 2 N ที่มีรูปตัวTrominoesรูปตัว L ทิ้งไว้หนึ่งช่องว่างที่กำหนดไว้ล่วงหน้า (N เป็นจำนวนเต็มที่ไม่ใช่ค่าลบ) ฉันจะปล่อยให้คุณข้ามไปพิสูจน์ถ้าคุณยังไม่รู้ มีทรัพยากรมากมายที่กล่าวถึง งานของคุณที่นี่คือการเขียนโปรแกรมที่รับค่า N รวมถึงพิกัดของพื้นที่กริดเพื่อปล่อยให้ว่างเปล่าและพิมพ์การแทนค่า ASCII ของกริด tromino ที่เป็นผลลัพธ์ ตัวละครOจะเติมเต็มพื้นที่ว่างและการหมุนของ tromino ของเราทั้ง 4 จะมีลักษณะดังนี้: | +- | -+ -+ | +- | (ใช่มันอาจจะไม่ชัดเจนที่+จะไปกับที่-และ|สำหรับการเตรียมการบางอย่าง แต่ที่ ok.) โปรแกรมของคุณจะต้องทำงานกับ N = 0 (สำหรับ 1 × 1 grid) อย่างน้อย N = 8 (สำหรับ …

4
การเขียนโปรแกรมแบบเกลียว
เขียนฟังก์ชั่นที่มีชื่อหรือโปรแกรมที่รับจำนวนเต็ม N ตัวเดียวและพิมพ์ (ไปยัง STDOUT) หรือส่งคืน (เป็นสตริง) แถบ N แรกของเกลียวด้านล่างเริ่มต้นด้วยแถบแนวตั้งตรงกลางและหมุนวนตามเข็มนาฬิกาออกไปด้านนอก _______________ / _____________ \ / / ___________ \ \ / / / _________ \ \ \ / / / / _______ \ \ \ \ / / / / / _____ \ \ \ \ \ / / / / …

6
สร้างสี่เหลี่ยมผืนผ้าจากสเปค
บทนำ ความท้าทายนี้ได้รับแรงบันดาลใจจากGrimeซึ่งเป็นภาษาจับคู่รูปแบบ 2D ของฉัน โดยทั่วไปคุณจะได้รับ "ไวยากรณ์" ที่อธิบายกริดสองมิติของตัวอักษรและงานของคุณคือการสร้างกริดตามไวยากรณ์ นอกจากนี้ตารางควรมีขนาดเล็กที่สุดเท่าที่จะเป็นไปได้ในแง่อ่อน อินพุต ข้อมูลของคุณเป็นสตริงที่มีอักขระตัวพิมพ์เล็ก ASCII และสัญลักษณ์และ| -เพื่อความเรียบง่ายอินพุตไม่มีอักขระตัวพิมพ์เล็กซ้ำ ๆ สตริงเป็นข้อมูลจำเพาะสำหรับคลาสของกริดสี่เหลี่ยมของอักขระและแยกวิเคราะห์จากซ้ายไปขวาโดยใช้สแต็กดังนี้ กำหนดอักขระตัวพิมพ์เล็กcกดไปที่สแต็กm×nกริดของอักขระcสำหรับใด ๆm, n ≥ 1สำหรับการใด ๆ ได้รับท่อ|, pop สองกริดAและBจากสแต็ค ( Bอยู่ชั้นบนสุด) และผลักดันตารางABได้โดยการเชื่อมโยงไปทางขวาของB Aสิ่งนี้ต้องการAและBมีความสูงเท่ากัน ได้รับยัติภังค์-, pop สองกริดAและBจากสแต็ค ( Bอยู่ชั้นบนสุด) และผลักดันตารางA/Bได้โดยการเชื่อมโยงที่ด้านล่างของB Aสิ่งนี้ต้องการAและBมีความกว้างเท่ากัน รับประกันได้ว่าสำหรับตัวเลือกบางอย่างmและnทำในระหว่างกระบวนการแยกวิเคราะห์ (ซึ่งอาจแตกต่างกันสำหรับตัวอักษรแต่ละตัว), ข้อกำหนดการป้อนข้อมูลอย่างถูกต้องอธิบายสี่เหลี่ยมผืนผ้าบางอย่างซึ่งถูกทิ้งไว้บนกองในตอนท้าย เอาท์พุต เอาต์พุตของคุณเป็นตารางสี่เหลี่ยมของอักขระที่ระบุโดยอินพุต กริดต้องมีขนาดเล็กที่สุดในแง่ที่ว่าการลบแถวหรือคอลัมน์ใด ๆ จะทำให้มันไม่ถูกต้อง คุณสามารถส่งคืนสตริงที่คั่นด้วยการขึ้นบรรทัดใหม่ (โดยมีหรือไม่มีการขึ้นบรรทัดใหม่), อาร์เรย์ของอักขระ 2 มิติหรืออาร์เรย์ของสตริงแล้วแต่จำนวนใดจะเป็นรูปแบบที่สะดวกที่สุด โปรดทราบว่าคุณไม่จำเป็นต้องดำเนินการอินพุตตามที่อธิบายไว้ข้างต้น สิ่งสำคัญเพียงอย่างเดียวคือผลลัพธ์ของคุณถูกต้อง …

11
ทำให้ฉันเป็นต้นไม้ตัวอักษร
Intro ในแบบอักษรที่ส่วนใหญ่ทั้งหมดของตัวละครตัวอักษรตัวพิมพ์ใหญ่นอกเหนือจากการมีสายเดียวประมาณสัมผัสบางส่วนของมุมทั้งสี่ของตัวละครวิ่งสี่เหลี่ยมผืนผ้า:BDOACEFGHIJKLMNPQRSTUVWXYZ ตัวอย่างเช่นสองขาของA"แตะ" ที่มุมล่างซ้ายและขวาล่างของตัวละคร ในทำนองเดียวกันให้Cสัมผัสที่มุมด้านบนและด้านล่างขวา (มันโค้งเล็กน้อย แต่ใกล้พอ) Lเพียงสัมผัสมันเป็นมุมบนซ้ายและขวาล่างที่มีบรรทัดเดียว มุมซ้ายล่างของLคือจุดยอดไม่ใช่จุดสิ้นสุดของบรรทัดเดียว นี่คือตารางของสิ่งที่ตัวละครสัมผัสมุมที่ตามตัวอักษรกองแลกเปลี่ยนฉัน (และหวังว่าคุณ) เห็น 1สำหรับซ้ายบน2คือซ้ายขวา3ล่างซ้าย4ล่างขวา A: 3 4 C: 2 4 E: 2 4 F: 2 3 G: 2 H: 1 2 3 4 I: 1 2 3 4 J: 1 3 K: 1 2 3 4 L: 1 4 M: 3 …

3
ทำให้ฉันเป็นผู้จัดการหน้าต่าง!
ฉันเกลียดรหัสขยายตัว! ดังนั้นฉันจึงตัดสินใจแทนที่ระบบ Windows 7 ของฉันเป็นเวอร์ชั่น golfed อย่างไรก็ตามฉันรู้ว่ามันไม่ง่ายดังนั้นเรามาสร้างต้นแบบก่อน จะใช้รายการหน้าต่างจากผู้ใช้และแสดงโดยใช้จอแสดงผลแบบกราฟิกเทียมบนเอาต์พุตมาตรฐาน ตัวอย่างเช่น: อินพุตของผู้ใช้: 0,0,15,10 15,10,20,15 10,13,15,15 9,1,16,3 17,5,20,7 11,2,17,4 15,4,19,6 13,3,18,5 เอาต์พุต Code Golf® Window Manager ™: ┌──────────────┐ │ :::::::: ┌─────┴┐ ││ ::::::::: ┌────┴┐ │ :::::::: └─┤: ┌───┴┐ │ :::::::::: └─┤ :::: ├┐ │ :::::::::::: └─┬──┘├┐ │ :::::::::::::: ├─┬─┘│ │ :::::::::::::: │ ││ …

1
Code Golf: ชะตากรรมของยานอวกาศคืออะไร? [เวอร์ชันศิลปะ ASCII]
พื้นหลัง ในกาแลคซี (และอาจเป็นจักรวาล) ไกลออกไป ... มียานอวกาศและดาวเคราะห์จำนวนหนึ่ง การทำงานผิดพลาดบนเรือทำให้ยานอวกาศหมดเชื้อเพลิง ตอนนี้มันเคลื่อนที่ด้วยความเร็วช้าที่อันตรายใกล้กับกลุ่มดาวเคราะห์ซึ่งมันจะต้องหลบหนี! ชะตากรรมของลูกเรือจะเป็นอย่างไร ความท้าทาย คุณเป็นโปรแกรมเมอร์นำใน USS StackExchange เช่นนี้คุณต้องการที่จะเขียนโปรแกรมจำลองที่จะเปิดเผยหรือไม่ว่าคุณกำลังถูกโจมตีจากพื้นดินบนดาวเคราะห์หรือไม่ก็จะหนีออกจากระบบดาวเคราะห์หรือจะติดอยู่ในวงโคจรตลอดกาล อย่างไรก็ตามการระเบิดบนยานอวกาศของคุณหมายความว่ามีทรัพยากรการคำนวณ จำกัด มาก โปรแกรมของคุณจะต้องเล็กที่สุดเท่าที่จะทำได้ นอกจากนี้หมายความว่าวิธีเดียวที่เป็นไปได้ในการป้อนข้อมูลการจำลองเพื่อเรียกใช้คือผ่าน ASCII art การจำลองสถานการณ์ ในจตุภาคของลิขสิทธิ์นี้กฎของฟิสิกส์มีการเปลี่ยนแปลงเล็กน้อยเพื่อรองรับศิลปะ ASCII ซึ่งหมายความว่าจักรวาลแบ่งออกเป็นเซลล์ การเคลื่อนไหวจะถูกอธิบายในหน่วยของเซลล์และเวลาจะอยู่ในหน่วยของขั้นตอนเวลา ตัวเรือเองมีโมเมนตัม ถ้าเรือรบเคลื่อนที่ +2 เซลล์บนแกน x และ -1 เซลล์บนแกน y (ย่อมาจาก (2, -1)) ในขั้นตอนก่อนหน้านี้และไม่มีสนามแรงโน้มถ่วงจากนั้นเรือจะเคลื่อนที่ด้วยความแม่นยำ ความเร็วเดียวกันในขั้นตอนต่อไป จะมีดาวเคราะห์หลายดวงซึ่งทั้งหมดนี้มีสนามแรงโน้มถ่วงอยู่ในแปดเซลล์รอบ ๆ มันซึ่งจะส่งผลต่อความเร็วของเรือและจะดึงเรือเข้ามาใกล้ดาวเคราะห์มากขึ้น การเป็นแค่ "ทิศเหนือ" ของดาวเคราะห์จะส่งผลให้มีการดึงเรือหนึ่งเซลล์ไปยัง "ทิศใต้" ด้วยแรง (-1,0) การเป็นแค่ …


6
พิมพ์คลื่นสามเหลี่ยมของตัวเลข
กำหนดขนาดและระยะเวลาของคลื่นให้พิมพ์คลื่น ดูตัวอย่างผลลัพธ์สำหรับรายละเอียดเพิ่มเติม จำนวนรูปแบบคลื่นทั้งหมดเท่ากับระยะเวลาและความสูงของแต่ละคลื่นเท่ากับความกว้าง ความกว้างและระยะเวลาน้อยกว่า 10 คุณสามารถละเว้นช่องว่างต่อท้าย แต่ไม่ใช่ช่องว่างนำหน้า Sample Input 3 2 Sample Output 3 3 232 232 12321 12321 12321 12321 232 232 3 3

18
วอล์กเกอร์เข้าร่วม! - โลโก้อลันวอล์คเกอร์
คุณอาจรู้จัก Alan Walker จากเพลงยอดนิยม Faded ของเขา ตอนนี้ "ผู้ติดตาม" ของเขาเรียกว่าวอล์กเกอร์และมีโลโก้นี่เป็นเวอร์ชั่นที่เรียบง่าย: \\ \\ //\\ \\ // \\ // \\ // \\ // \\ // \\ // \\ // \\ // \\ // \\ // \\ // //\\ \\ // \\// // \\ \\// // // \\ \\ //\\ // \\ //\\ \\// …

30
ASCII Meme Arrow Generator
ข้อมูลจำเพาะ ได้รับหมายเลขn, เอาท์พุท ASCII "ลูกศรมส์" (สูงกว่าสัญลักษณ์>) nขนาด n จะเป็นจำนวนเต็มบวกเสมอมากกว่า 0 ตัวอย่าง n = 2 \ \ / / n = 5 \ \ \ \ \ / / / / / โค้ดตัวอย่าง นี่คือตัวอย่างโปรแกรมที่เขียนใน Crystal ซึ่งส่งคืนผลลัพธ์ที่ถูกต้อง ./arrow 10เรียกว่ามันเป็น arrow.cr: def f(i) i.times { |j| j.times { print ' ' } puts …

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