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

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

27
ระบุตัวตนภาษาของคุณด้วย Golf
Identiconsเป็นรูปภาพขนาดเล็กของรูปแบบทางเรขาคณิตที่แสดงถึงค่าแฮชของสตริง Stack Exchange ใช้ identicons จากGravatarเป็นรูปภาพอวาตาร์เริ่มต้นของผู้ใช้แต่ละคน ในความท้าทายนี้เราจะใช้ข้อมูลประจำตัวของ Gravatar เพื่อสร้างข้อความให้กอล์ฟ ท้าทาย ตัวอย่างสแต็กนี้ (เวอร์ชันย่อของ JSFiddle นี้ ) ให้คุณพิมพ์สตริงและให้กลับ 100 × 100 พิกเซลรุ่นขาวดำของรหัสประจำตัวของสตริงนั้นพร้อมกับรุ่นข้อความที่1เป็นสีดำและ0เป็นสีขาว: <!-- Click "Run code snippet" --> <div style='text-align:center;'> <input id='str' type='text' size='32' value='Python'> <button type='button' onclick='go()'>Go</button><br><br><input id='type1' name='type' type='radio' value='identicon' checked> <label for='type1'>Identicon</label> <input id='type2' name='type' type='radio' value='monsterid'> <label for='type2'>Monster</label> …

27
ฉันรักคุณฉันรักคุณฉันรักคุณ!
XKCD # 99 ที่มีชื่อ "Binary Heart" แสดงภาพง่าย ๆ ของภาพและเลขศูนย์โดยมีตัวเลขสีแดงเป็นตัวเลข หัวใจสีแดงมองเห็นได้ด้วยตาเปล่า แต่ข้อความที่ซ่อนอยู่ในลำดับเลขฐานสองนั้นไม่ใช่ หากคุณลบช่องว่างและบรรทัดใหม่ทั้งหมดและตีความลำดับเลขฐานสองเป็นรหัส ASCII 8 บิตคุณจะได้รับข้อความ: iloveyOuilOveyouiloveyOuilOveyOuiloveyouilOveyouilOveyOuilOv น่ารักใช่มั้ย สดุดี ... สตริงไม่ใช่การทำซ้ำสตริงอย่างแท้จริง ความท้าทายของคุณคือการสร้างภาพไบนารีด้วยตัวเลข 21 หลักและ 23 หลัก ควรมีหนึ่งช่องว่างระหว่างแต่ละหลักในแต่ละแถวและหนึ่งบรรทัดสำหรับแต่ละแถวใหม่ โปรดทราบว่าบิตสุดท้ายเป็นเพียงจุดเริ่มต้นของตัวอักษรeเนื่องจาก21*23ไม่สามารถหารด้วย 8 คุณต้องแก้ไขบิตเหล่านั้นด้วย ฟังก์ชั่นหรือโปรแกรมไม่ควรรับอินพุตใด ๆ ยอมรับช่องว่างนำหน้าและต่อท้ายและขึ้นบรรทัดใหม่ ผลลัพธ์ของรหัสของคุณควรมีลักษณะดังนี้: 0 1 1 0 1 0 0 1 0 1 1 0 1 1 0 0 0 …

30
วาดรูปสามเหลี่ยมดอกจัน
แรงบันดาลใจจากภารกิจในการเขียนโปรแกรม 101 นี่คืองานที่หวังว่าจะไม่ง่ายเกินไปหรือซ้ำซ้อน (ยากที่จะค้นหาสิ่งเช่นนี้) การป้อนข้อมูล: n >= 1เป็นจำนวนเต็มบวก เอาท์พุท: n บรรทัดของเครื่องหมายดอกจันที่ทุกบรรทัดใหม่มีเครื่องหมายดอกจันมากกว่าบรรทัดก่อนหน้าและเริ่มต้นด้วยเครื่องหมายดอกจันหนึ่งตัวในบรรทัดแรก กฎทั่วไป: นี่คือโค้ดกอล์ฟดังนั้นคำตอบที่สั้นที่สุดในหน่วยไบต์ชนะ เนื่องจากหลักสูตรได้รับการสอนใน C ++ ฉันกระตือรือร้นที่จะเห็นวิธีแก้ปัญหาใน C ++ กรณีทดสอบ (n = 5): * ** *** **** *****

30
พิมพ์ N Squared
เขียนโปรแกรมหรือฟังก์ชั่นที่รับจำนวนเต็ม N ที่ไม่เป็นลบจาก stdin หรือเป็นอาร์กิวเมนต์ของฟังก์ชัน มันจะต้องพิมพ์หรือส่งกลับสตริงของตารางศิลปะ ASCII กลวงซึ่งแต่ละด้านทำด้วย N สำเนาของหมายเลข N โดยเฉพาะ: ถ้า N คือ0ไม่ใช้สำเนาของ N ดังนั้นจึงไม่ควรมีเอาต์พุต (หรือขึ้นบรรทัดใหม่เพียงบรรทัดเดียว) ถ้า N คือ1ผลลัพธ์คือ: 1 ถ้า N คือ2: 22 22 ถ้า N คือ3: 333 3 3 333 ถ้า N คือ4: 4444 4 4 4 4 4444 ถ้า N คือ5: 55555 5 5 5 …

8
ทำให้จูบงูยืด
งูยืดมีลักษณะบางอย่างเช่นนี้ <||=|||:)~ แต่ละลำดับของแถบแนวตั้ง ( |) ในงูที่ยืดออกซึ่งรู้จักกันในชื่อส่วนยืดนั้นสามารถขยายความกว้างเป็นสองเท่าแยกจากกันและถูกวาดด้วยเครื่องหมายสแลช ( /, \) เมื่อขยายออก งูข้างต้นโดยเฉพาะมีสองส่วนที่ยืดได้ทำให้มีสี่ท่าที่เป็นไปได้: <||=|||:)~ </\/\=|||:)~ <||=/\/\/\:)~ </\/\=/\/\/\:)~ รูปแบบทั่วไปของงูถ่างในท่ายืดน้อยที่สุดถูกกำหนดโดยregex นี้ : <(\|+=)*\|+:\)~ ซึ่งสามารถระบุไว้ในคำว่า: <ตามด้วยหมายเลขของลำดับใด ๆ|'s เข้าร่วมกับอาการตามมาด้วย=:)~ ดังนั้น<|:)~และ<||:)~และ<|=|:)~และ<|=|=||=|||||=||:)~เป็นงูยืด แต่<=:)~และ<=|:)~และ<||=:)~และ<|==||:)~ไม่ใช่ ~(:|||=||>งูยืดยังสามารถเผชิญซ้ายแทนขวาเช่น แบบฟอร์มเหมือนกันเพียงมิร์เรอร์ ท้าทาย เขียนโปรแกรมที่ใช้ในสตริงบรรทัดเดียวของงูยืดสองตัวที่หันเข้าหากันโดยมีช่องว่างจำนวนหนึ่งอยู่ระหว่างนั้น งูทั้งสองจะอยู่ในท่ายืดน้อยที่สุด (แถบแนวตั้งทั้งหมดไม่มีสแลช) สตริงจะเริ่มต้นด้วยหางของงูที่หันไปทางขวาและจบลงด้วยหางของงูที่หันไปทางซ้าย ตัวอย่างเช่นต่อไปนี้เป็นข้อมูลป้อนเข้าที่มีห้าช่องว่างระหว่างงู: <|=||:)~.....~(:||||> ฉันกำลังใช้เครื่องหมายจุด ( .) แทนอักขระช่องว่างจริงเพื่อความชัดเจน ช่องว่างระหว่างงูยังเป็นอินพุตที่ถูกต้อง: <|=||:)~~(:||||> เราพูดว่างูกำลังจูบกันเมื่อลิ้นของพวกมันสัมผัสเช่นนี้ โปรแกรมของคุณต้องการที่จะขยายการรวมกันของส่วนขยายของทั้งสองของงูเช่นงูบางอย่างที่มีจำนวนน้อยที่สุดของช่องว่างระหว่างพวกเขาไปได้ (โดยไม่ทับซ้อนกัน) เช่นดังกล่าวว่างูมีความใกล้เคียงกับการจูบที่เป็นไปได้ หางทั้งสองของงูนั้นได้รับการแก้ไข แต่หัวและลำตัวของมันสามารถเคลื่อนที่ได้ - เหมาะสำหรับงูที่หันไปทางขวา, ซ้ายสำหรับงูที่หันไปทางซ้าย - …

10
เทียนน้อยเป็นเรื่องน่าเศร้า วาดเขาเป็นก้อนเมฆเพื่อให้กำลังใจเขา
เทียนน้อยเป็นเรื่องน่าเศร้า วาดเขาเป็นก้อนเมฆเพื่อให้กำลังใจเขา หมายเหตุ: การวาดภาพบนคลาวด์จะไม่ทำให้เขามีกำลังใจ วงกลมสามารถนิยามเป็น 3-tuple (x,y,r)โดยที่xตำแหน่ง x ของวงกลมบนระนาบคาร์ทีเซียนyคือตำแหน่ง y ของวงกลมบนระนาบคาร์ทีเซียนและrเป็นรัศมีของวงกลม xและyอาจเป็นลบ rเป็นบวกเสมอ อินพุตเป็นรายการของวงกลมในรูปแบบของช่องว่างคั่น 3-tuples ตัวอย่างเช่น 3,1,1 3,2,1.5 1,2,0.7 0.9,1.2,1.2 1,0,0.8 3,1,1หมายถึง "วงกลมที่มีจุดศูนย์ที่3,11 รัศมี. 3,2,1.5หมายความว่า" วงกลมที่มีจุดศูนย์กลางที่ A 3,2พร้อมกับ 1.5 รัศมี หากเราวาดวงกลมทั้งหมดของอินพุตบนกราฟดูเหมือนว่านี้ (ฉันได้รวมเส้นกริดและป้ายกำกับเพื่อความชัดเจนเท่านั้นพวกเขาไม่จำเป็นต้องใช้): สังเกตว่าวงกลมทั้งหมดกลมกลืนกันอย่างไร นั่นคือพวกเขาทั้งหมดซ้อนทับกันเพื่อให้เกิดกลุ่มใหญ่กลุ่มหนึ่งโดยไม่มีกลุ่มวงกลมเล็ก ๆ แยกออกจากส่วนที่เหลือ อินพุตรับประกันว่าจะเหนียวแน่น สมมติว่าตอนนี้เราวาดเส้นที่เดินทางรอบ "เส้นขอบ" ที่เกิดจากวงกลมเหล่านี้โดยไม่มีเส้นอื่นใด มันจะเหมือนกับการวาดเส้นขอบของเงาที่เกิดจากวงกลมทั้งหมด เมฆที่เกิดขึ้นจะมีลักษณะเช่นนี้: ดังนั้นคลาวด์นี้จึงถูกสร้างขึ้นโดยการวาดเฉพาะส่วนโค้งของวงกลมในอินพุตที่ก่อตัวเป็นเส้นขอบ กล่าวอีกนัยหนึ่งระบบคลาวด์เกิดจากการวาดส่วนโค้งที่ไม่ได้อยู่ในวงกลมอื่น โปรแกรมของคุณจะป้อนข้อมูลในแบบฟอร์มที่อธิบายข้างต้นและส่งภาพที่แสดงคลาวด์ที่เกิดขึ้น รูปร่างโดยรวมของคลาวด์จะต้องถูกต้อง แต่ขนาดสีความหนาของเส้นและลักษณะของจุดยอดนั้นขึ้นอยู่กับคุณ โปรดทราบว่าคลาวด์ต้องสามารถมองเห็นได้ดังนั้นคุณไม่สามารถดึงบางสิ่งบางอย่างเช่น "โปรแกรมนี้วาดคลาวด์สีขาวบนพื้นหลังสีขาว", "โปรแกรมนี้วาดคลาวด์ในระดับที่เล็กที่สุด", …

10
ต้มตุ๋นเป็ดโกรธ
ไม่มีใครค่อนข้างบางสิ่งที่อิโมติคอน>:Uมีจุดมุ่งหมายที่จะเป็นตัวแทน แต่นักวิชาการหลายคนเชื่อว่ามันดูเหมือนโกรธเป็ด สมมติว่าเป็นกรณี งาน รับค่าจำนวนเต็มnระหว่าง 0 ถึง 3 รวมพิมพ์หรือส่งคืน quack ถ้าn = 0 >:U ถ้าn = 1 U U > : U U > U U > : U U UUU ถ้าn = 2 หรือ >:U >:U >:U >:U >:U >:U >:U >:U >:U >:U >:U >:U >:U >:U >:U …

24
ทำชามซุปตัวอักษร
นี่คือสิ่งที่เราจะเรียกซุปชามตัวอักษร - รูปร่าง ASCII ศิลปะวงกลมประมาณกับ 26 ตัวอักษรภาษาอังกฤษตัวพิมพ์ใหญ่ (AZ) จัดเรียงตามเข็มนาฬิกาเพื่อสร้างปริมณฑล: XYZABC VW DE U F T G S H RQ JI PONMLK เขียนโปรแกรมที่ใช้ตัวอักษร AZ และเอาท์พุทซุปตัวอักษรเดียวกันว่า "หมุน" เพื่อที่จะพูดดังนั้นตัวอักษรที่ป้อนจะปรากฏขึ้นเมื่อสิ่งที่Aทำในตัวอย่างด้านบนและรอบตัวอักษรที่เหลือเต็มรอบ ตามเข็มนาฬิกา ดังนั้นเอาท์พุทสำหรับการป้อนข้อมูลAจะเป็นที่เดิมชามซุปตัวอักษร และเอาต์พุตสำหรับอินพุตBจะเป็นอันนี้: YZABCD WX EF V G U H T I SR KJ QPONML เช่นเดียวกันกับผลลัพธ์สำหรับH: EFGHIJ CD KL B M A N Z …

30
วาด ASCII Double Helix
เขียนโปรแกรมที่รับจำนวนเต็ม N ผ่าน stdin หรือบรรทัดคำสั่ง ถ้า N เป็น 0 ตัวอักษรเดียวOจะต้องพิมพ์เป็น stdout ถ้า N เป็นค่าบวก ASCII แนวนอนนี้จะต้องพิมพ์ส่วนที่เป็นเกลียวคู่ที่วาด N ส่วนที่กว้าง ถ้า N คือ 1 เอาต์พุตจะเป็น: /\ O O \/ ถ้า N คือ 2 เอาต์พุตจะเป็น: /\ /\ O / O \/ \/ ถ้า N คือ 3 เอาต์พุตจะเป็น: /\ /\ /\ O / / …

30
ใส่คำลงในตารางตัวอักษร
แรงบันดาลใจจากมส์ที่ฉันเห็นก่อนหน้านี้วันนี้ คำอธิบายการท้าทาย พิจารณากริดตัวอักษรที่ไม่มีที่สิ้นสุด: ABCDEFGHIJKLMNOPQRSTUVWXYZ ABCDEFGHIJKLMNOPQRSTUVWXYZ ABCDEFGHIJKLMNOPQRSTUVWXYZ ABCDEFGHIJKLMNOPQRSTUVWXYZ ABCDEFGHIJKLMNOPQRSTUVWXYZ ... ใช้คำ ( CODEGOLFในตัวอย่างนี้) และทำให้เป็นลำดับของตารางแทนที่ตัวอักษรที่ไม่ได้ใช้ด้วยการเว้นวรรคและลบตัวอักษรที่ท้ายตารางอนันต์ทั้งหมด: C O DE G O L F ตัวอย่าง STACKEXCHANGE ST A C K E X C H A N G E ZYXWVUTSRQPONMLKJIHGFEDCBA Z Y X W V U T S R Q P O N M L …

27
สร้าง Wordenticons
Identiconsเป็นภาพที่แสดงให้เห็นถึงค่าแฮชซึ่งมักทำจากการจัดสมมาตรของรูปทรงเรขาคณิต สแต็กการแลกเปลี่ยนสแต็กเริ่มต้นของคุณคือตัวระบุ ความท้าทายนี้เกี่ยวกับการสร้าง"wordenticons"ซึ่งเป็นตัวอักษรเวอร์ชันพื้นฐานที่ใช้ข้อความง่าย ๆ ที่ใช้กับสตริงของตัวอักษรตัวพิมพ์เล็กเช่นคำต่างๆ ท้าทาย เขียนโปรแกรมหรือฟังก์ชั่นที่รับสตริง S และส่งออก wordenticon S รับประกันว่าจะไม่มีข้อยกเว้นและมีตัวอักษรภาษาอังกฤษตัวพิมพ์เล็กเท่านั้น az คุณอาจเลือกที่จะสมมติว่า S มีการขึ้นบรรทัดใหม่ wordenticon ของ S จะเป็นตารางสี่เหลี่ยมของข้อความที่มีความยาวด้านข้าง2*length(S)ประกอบด้วยช่องว่าง ( ) แถบแนวตั้ง ( |) และแถบแนวนอน ( ―) ในการสร้าง wordenticon ของ S ให้สร้างตารางสี่เหลี่ยมที่ทุกคอลัมน์สอดคล้องกับตัวอักษร S (ตามลำดับการอ่านจากซ้ายไปขวาตามปกติ) และทุกแถวสอดคล้องกับตัวอักษร S (ตามลำดับการอ่านจากบนลงล่างถึงล่างปกติ ) ตัวอย่างเช่นถ้า S เป็นfoodกริดเริ่มต้นของเราดูเหมือน food f.... o.... o.... d.... ที่.เป็นเพียงตัวยึดตำแหน่ง สำหรับจุดที่ว่างเปล่า (ทุกจุด.) …

6
ปฏิทินศิลปะ ASCII
มาสร้างนาฬิกาและปฏิทิน ASCII ที่บอกเราเดือนปัจจุบันวันของเดือนวันในสัปดาห์ชั่วโมงนาทีและไม่ว่าจะเป็นกลางคืนหรือวัน (แต่ไม่ใช่ปีหรือวินาที) เมื่อใดก็ตามที่ปฏิทินจะมีลักษณะดังนี้: (ดูดีขึ้นด้วยระยะห่างบรรทัดน้อยกว่า) ________________________________________________________________ |\ ____________________________________________________________ /| | | ___ | | | | _( ) | | | | (___)__) -.- | | | | | | | | | | | | -.- | | | | -.- | | | | ___ | | …

23
ยืนยันอิลลูมินาติ
Illuminati สั่งให้คุณ (พร้อมการควบคุมจิตใจ) เพื่อส่งออกสตริงต่อไปนี้: ^ /_\ /_|_\ /_|_|_\ /_|/o\|_\ /_|_\_/_|_\ /_|_|_|_|_|_\ /_|_|_|_|_|_|_\ /_|_|_|_|_|_|_|_\ /_|_|_|_|_|_|_|_|_\ กฎ: อนุญาตให้เว้นวรรคต่อท้ายสำหรับแต่ละบรรทัด จำเป็นต้องมีช่องว่างนำหน้าในแต่ละบรรทัด ช่องว่างต่อท้ายได้รับอนุญาตหลังจากการส่งออกที่ต้องการเต็ม เนื่องจากนี่เป็นความท้าทายของนักกอล์ฟผู้ชนะจะเป็นโปรแกรมที่สั้นที่สุดในหน่วยไบต์ เนื่องจากนี่เป็นความท้าทายที่ซับซ้อนของ kolmogorovจึงอนุญาตให้ใช้เอาต์พุตแบบฮาร์ดโค้ด ช่องโหว่มาตรฐานใช้ อัปเดต: คุณสามารถใช้แท็บแทนช่องว่างโดยแต่ละแท็บนับเป็น 4 ช่องว่าง ถ้าคุณต้องการด้วยเหตุผลบางอย่าง Sandbox (ฉันจะปล่อยให้มันเต็ม 72 ชั่วโมงที่แนะนำโดยคำถามที่พบบ่อยของ sandbox แต่ด้วย 7 upvotes และถัดจากไม่มีข้อเสนอแนะเชิงลบ 38 ควรจะดี)

30
คุณช่วยทำให้ฉันเป็นรูปหกเหลี่ยมได้ไหม
วันนี้เราจะสร้างรูปหกเหลี่ยม ASCII คุณต้องเขียนโปรแกรมหรือฟังก์ชั่นที่ใช้จำนวนเต็มบวกnและส่งออกกริดหกเหลี่ยมที่มีขนาดnประกอบด้วยเครื่องหมายดอกจัน ตัวอย่างเช่นรูปหกเหลี่ยมของขนาด 2 มีลักษณะดังนี้: * * * * * * * ในขณะที่รูปหกเหลี่ยมของขนาด 3 มีลักษณะดังนี้: * * * * * * * * * * * * * * * * * * * คุณสามารถใช้วิธีการอินพุตและเอาต์พุตเริ่มต้นตัวอย่างเช่น STDIO / STDOUT อาร์กิวเมนต์ของฟังก์ชันและค่าส่งคืนหรืออ่าน / เขียนไฟล์ คุณอาจสมมติว่าอินพุตนั้นถูกต้องเสมอดังนั้นหากไม่ใช่จำนวนเต็มบวกโปรแกรมของคุณอาจทำทุกอย่างที่คุณต้องการ คุณไม่แต่มีการจัดการกรณีพิเศษของหกเหลี่ยมขนาด 1 ซึ่งเกิดขึ้นเป็นเครื่องหมายดอกจันเดียว: * ช่องว่างนำหน้าและต่อท้ายได้รับอนุญาตตราบใดที่เอาต์พุตเหมือนกัน ตัวอย่าง: 1: …

21
1P5: กล่องซ้อน
งานนี้เป็นส่วนหนึ่งของครั้งแรกงวดพรีเมียร์โปรแกรมปริศนากด คุณได้รับลำดับชั้นของรายการในรูปแบบต่อไปนี้: 2 Hat 1 Gloves ซึ่งจะต้องใส่ในกล่องเช่น: .------------. | Hat | | .--------. | | | Gloves | | | '--------' | '------------' ในรูปแบบการป้อนข้อมูลตัวเลขเริ่มต้นกล่องที่มีรายการให้มากที่สุดเท่าที่จำนวนที่ระบุ กล่องแรกมีสองรายการอยู่ในนั้น (หมวกและกล่องที่มีถุงมือ) ส่วนที่สองมีเพียงรายการเดียวเท่านั้น - ถุงมือ อย่างที่เห็นกล่องสามารถอยู่ในกล่องได้เช่นกัน และพวกมันจะถูกปัดเศษเสมอ ... เรียงลำดับของ (มุมแหลมเป็นอันตรายจากบาดแผลและเราไม่ต้องการมัน) ด้านล่างนี้มีรายละเอียดที่น่ารังเกียจสำหรับผู้ที่ต้องการใช้ประโยชน์จากทุก ๆ ส่วนที่ข้อกำหนดให้ ใจคุณการไม่อ่านสเป็คนั้นเป็นข้อแก้ตัวสำหรับการส่งคำตอบที่ผิด ในตอนท้ายจะมีสคริปต์ทดสอบและกรณีทดสอบบางกรณี สเปค กล่องถูกสร้างขึ้นจากตัวละครต่อไปนี้: | (U + 007C) ใช้สำหรับสร้างขอบแนวตั้ง - (U + 002D) …

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