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

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

1
ร่าเริงร่าเริง
พื้นหลัง สหรัฐอเมริกามีความรักที่ไม่เหมือนใครของ gerrymandering - การจัดการโดยเจตนาของเขตการเลือกตั้งเพื่อทำนายผลการลงคะแนนบางอย่าง เมื่อไม่นานมานี้มีคดีฟ้องร้องดำเนินคดีต่อศาลฎีกา Gerrymandering โดยเฉพาะอย่างยิ่งเมื่อเกี่ยวข้องกับการแข่งขันถูกปกครองอย่างผิดกฎหมายและส่งผลให้มีความต้องการที่จะวาดเส้นเขต ให้แผนที่เป็นรูปสี่เหลี่ยมผืนผ้าของเทศบาล (อาร์เรย์ 2d) คุณจะวาดเส้นเขตเพื่อช่วยให้พรรคของคุณได้รับการแสดงมากที่สุด นั่นคือคุณจะร่าเริง ทุกเขตเทศบาลมีสองฝ่าย0และ1. แผนที่จะประกอบด้วยสี่เหลี่ยมที่มีอย่างใดอย่างหนึ่ง0หรือ1อยู่บนนั้น นี่คือแผนที่ตัวอย่าง: ท้าทาย คุณจะจัดกลุ่มแผนที่เป็นอำเภอเพื่อให้1ปาร์ตี้ได้รับจำนวนอำเภออย่างน้อยตามที่กำหนดโดยอินพุต อินพุต ข้อมูลที่ป้อนจะประกอบด้วยแผนที่จำนวนอำเภอที่จะจั่วและจำนวนเขตขั้นต่ำที่1พรรคต้องชนะ (คะแนนขั้นต่ำ) เอาท์พุต ผลลัพธ์จะเป็นแผนที่ของอำเภอ แต่ละเขตจะประกอบด้วยตัวอักษรตัวพิมพ์ใหญ่ที่ไม่ซ้ำกัน ใช่นี่หมายความว่าจะไม่เกิน 26 เขต หากไม่มีผลลัพธ์ที่เป็นไปได้เมื่อฝ่ายที่ป้อนเข้าชนะหัวเมืองมากพอ: พิมพ์“ เราพยายาม ... ” ข้อผิดพลาดร้ายแรงเนื่องจากพรรคได้รับบาดเจ็บอย่างไม่สามารถแก้ไขได้โดยผลการเลือกตั้ง หรือทั้งคู่ กฎ (สำคัญมากเช่นกัน) ทุกอำเภอจะต้องต่อเนื่องกัน เขตอาจไม่มีหัวเมืองอื่นในนั้น แต่ละอำเภอจะต้องมีอย่างน้อยสี่โหนดในนั้น อินพุตจะสอดคล้องกับกฎซึ่งหมายความว่าจะมีnumber_of_districts * 4โหนดอย่างน้อยในแผนที่ คะแนนของแต่ละฝ่ายคือจำนวนเขตที่มีส่วนใหญ่ หากเขตมีจำนวน0s และ1s เท่ากันก็จะไม่ได้รับประโยชน์ใด ๆ กฎไม่โกงปกติ นี่คือcode-golfดังนั้นรหัสที่สั้นที่สุดในหน่วยไบต์ชนะ กรณีทดสอบ …

3
เครื่องทำถั่วที่มีความหมายและผอม
ตัวอย่างคลาสสิกที่จะแนะนำคนกับแนวคิดของการกระจายความน่าจะเป็นที่ไม่ต่อเนื่องเป็นเครื่องถั่ว เครื่องนี้มีลูกหินจำนวนมากตกลงมาจากทางเดินแคบ ๆ ที่ด้านบนหลังจากนั้นพวกเขาก็ตีพินอินเทอร์เลซเป็นแถวซึ่งในแต่ละครั้งที่หินอ่อนพุ่งชนมันอาจตกไปทางซ้ายหรือทางขวาของพิน ในที่สุดหมุดจะถูกรวบรวมในถังขยะแนวตั้งที่ด้านล่างของเครื่อง แผนภาพง่าย ๆ ของเครื่องนี้มีลักษณะดังนี้: | O | | ^ | | ^ ^ | | ^ ^ ^ | | ^ ^ ^ ^ | | ^ ^ ^ ^ ^ | |_|_|_|_|_|_| ในแผนภาพนี้Oหมายถึงตำแหน่งที่หินอ่อนตกลงมา แต่ละอัน^คือพินที่หินอ่อนมีโอกาส 50% ที่จะย้ายไปที่จตุรัสไม่ว่าจะทางซ้ายหรือทางขวาของพิน จากนั้นหินอ่อนจะรวมตัวกันที่ถังขยะที่ด้านล่างของอุปกรณ์และสำหรับหินอ่อนจำนวนมากพอความสูงของกองหินอ่อนในถังขยะจะมีลักษณะคล้ายกับการแจกแจงแบบทวินาม ท้าทาย สำหรับความท้าทายนี้คุณจะคำนวณการกระจายความน่าจะเป็นที่ได้รับของเครื่องทำถั่วตามแผนภาพดังกล่าวข้างต้น ไดอะแกรมถูกตีความว่าเป็น 'โปรแกรม' สองมิติที่หินอ่อนผ่านไปไม่ว่าจะทางด้านข้างหรือด้านล่างของเขตข้อมูลปัจจุบัน เมื่อลูกหินมาถึงด้านล่างของเครื่องพวกเขาจะถูกนับสำหรับการแจกแจงความน่าจะเป็น เพื่อให้มันน่าสนใจไดอะแกรมเหล่านี้จะมีฟิลด์เพิ่มเติมอีกสองสามรายการมากกว่าเพียงแค่แหล่งข้อมูลและพินที่เรียบง่าย แผนภาพตัวอย่างคือ: …

30
ตัวอักษรแนวทแยงมุมกับอินพุต
แรงบันดาลใจจากโพสต์นี้ สำหรับผู้ที่ทำเครื่องหมายคำถามนี้ว่าเป็นคำซ้ำฉันขอให้คุณอ่านคำถามเพื่อดูว่าของฉันเป็นการดัดแปลงของลิงค์ที่เชื่อมโยง หนึ่งที่เชื่อมโยงไม่ได้ขอให้ป้อนข้อมูลและเป็นเพียงพิมพ์ตัวอักษรแนวทแยงมุม ความท้าทาย กำหนดอินพุตระหว่าง 1-26 โดยรวมให้พิมพ์ตัวอักษรแนวทแยงมุม แต่เริ่มพิมพ์ในแนวตั้งที่ดัชนีของอินพุตที่กำหนด ตัวอย่าง รับอินพุต: 16 โปรแกรมของคุณควรส่งออก: a b c d e f g h i j k l m n o p q r s t u v w x y z การป้อนข้อมูล: 4 เอาท์พุท: a b c d e f g h i …

7
ทำธงคลื่น
ใช้ธงแบบนี้: ----------------------------- | | | | | | |=============+=============| | | | | | | ----------------------------- และใส่ตัวเลข: "ความยาวของคลื่น" สมมติว่าความยาวของคลื่นเท่ากับ 5 จากนั้นทุก ๆ 5 ตัวอักษรตามเส้นจากจุดเริ่มต้นให้แทนที่อักขระถัดไป-ด้วยa \และเลื่อนอักขระทั้งหมดหลังจากแถวหนึ่งลงมา ทำซ้ำจนกว่าจะหมด คุณท้ายด้วย: -----\ | -----\ | -----\ |===== | -----\ | ====== | ----- | ==+=== | -----\ | ====== | -----\ | ====| -----\ …

6
กราฟ Cayley ของ ASCII
ในขณะที่ทำวิจัยบางอย่างสำหรับความท้าทายที่แตกต่างกันฉันกำหนด, ฉันมาข้ามกราฟเคย์ลีโดยเฉพาะคนนี้ ตั้งแต่ฉันหนึ่งในด้านบน ascii-ศิลปะนักเขียนท้าทายแน่นอนผมจะต้องทำให้ความท้าทายศิลปะ ASCII สำหรับเรื่องนี้ ความท้าทายของคุณคือการสร้างผลงานศิลปะ ASCII ของกราฟ Cayley ของกลุ่มฟรีในเครื่องกำเนิดสองเครื่องดังนี้ + +++ + | + ++-+-++ + | + + | + +++ | +++ + | | | + ++-+----+----+-++ + | | | + +++ | +++ + | + + | + +++ | +++ + …

25
Pigeonhole Principle & Code Golf
หลักรังนกพิราบระบุว่า หากมีการใส่รายการNลงในกล่องMโดยมีN > Mอย่างน้อยหนึ่งกล่องจะต้องมีมากกว่าหนึ่งรายการ สำหรับหลาย ๆ คนหลักการนี้มีสถานะพิเศษเมื่อเทียบกับการคำนวณทางคณิตศาสตร์อื่น ๆ ในฐานะที่เป็น EW Dijkstra เขียน , มันถูกล้อมรอบไปด้วยความลึกลับบางอย่าง บทพิสูจน์ที่ใช้มันมักถูกมองว่าเป็นสิ่งที่พิเศษ ความท้าทาย จุดประสงค์ของการท้าทายนี้คือเพื่อแสดงให้เห็นถึงหลักการของนกพิราบในช่องว่างโดยใช้การแทนด้วยศิลปะ ASCII โดยเฉพาะ: ใช้เป็นอินพุตN(จำนวนรายการ) และM(จำนวนกล่อง) โดยNไม่ลบและMบวก Nอาจมีขนาดเล็กกว่าM(แม้ว่าหลักการไม่ได้ใช้ในกรณีนั้น) สุ่มเลือกหนึ่งในการกำหนดรายการที่เป็นไปได้ให้กับกล่อง แต่ละการมอบหมายควรมีความน่าจะเป็นที่ไม่เป็นศูนย์ในการเลือก สร้างการแทนค่า ASCII art ของการมอบหมายดังนี้: มีMเส้นแต่ละเส้นตรงกับกล่อง |แต่ละบรรทัดเริ่มต้นด้วยตัวอักษรที่ไม่ใช่ช่องว่างเช่น การติดตามตัวละครนั้นเป็นอีกตัวที่ไม่ใช่ช่องว่างเช่น#ซ้ำหลายครั้งเนื่องจากมีรายการในกล่องนั้น พิจารณาตัวอย่างเช่น,N = 8 M = 5หาก assigment เลือกของรายการที่จะเป็นกล่อง4, 1, 0, 3, 0ตัวแทนคือ |#### |# | |### | การทำงานที่แตกต่างกัน …

25
พิมพ์คิวบ์ตาข่ายขนาดที่ระบุ
ท้าทาย เมื่อกำหนดขนาด s ให้พิมพ์ลูกบาศก์สุทธิของขนาดนั้นที่ทำจากสัญลักษณ์แฮช ( #) และช่องว่าง ( ) ตัวอย่าง: 1: # # # # # # 2: # # # # # # # # # # # # # # # # # # # # # # # # 3: # # # # # # # …

28
สร้างตาราง ASCII ขึ้นมาใหม่เป็นตาราง ASCII
บ่อยครั้งในขณะที่ฉันเล่นกอล์ฟฉันจะต้องการทราบว่าค่า ASCII ของอักขระบางตัวคืออะไร หนึ่งในแหล่งข้อมูลที่ชื่นชอบได้อย่างรวดเร็วมองขึ้นทั้งหมดของตัวอักขระ ASCIIเป็นASCIItable.com นี่เป็นภาพที่ดีมากที่ไม่เพียง แต่แสดงตัวอักษร ASCII ที่พิมพ์ได้และค่าของมัน แต่ยังรวมถึงตัวอักษรที่ไม่สามารถพิมพ์ได้และส่วนขยายและค่าเป็นเลขฐานสิบหกฐานแปดและ HTML: ความท้าทายในวันนี้คือการสร้างตาราง ASCII นั้นใหม่เป็นตาราง ASCII แทนภาพ เพื่อให้สิ่งต่าง ๆ ง่ายขึ้นเราจะไม่ใช้ตัวควบคุม (ตัวละครต่ำกว่า 32) และเราจะแสดงเฉพาะค่าทศนิยมและตัวอักษร ในคำอื่น ๆ ความท้าทายของคุณคือการเขียนโปรแกรมเต็มรูปแบบหรือฟังก์ชั่นที่พิมพ์หรือส่งกลับข้อความต่อไปนี้: Dec Chr | Dec Chr | Dec Chr ---------------------------------- 32 Space | 64 @ | 96 ` 33 ! | 65 A | 97 a …

8
เห็นภาพอาร์เรย์
กำหนดความลึกใด ๆ ให้วาดเนื้อหาด้วยเส้นขอบ+-|รอบ ๆ แต่ละ subarray สิ่งเหล่านี้คืออักขระ ASCII สำหรับเครื่องหมายบวกลบและแนวตั้ง ตัวอย่างเช่นถ้าอาร์เรย์คือ[1, 2, 3]วาด +-----+ |1 2 3| +-----+ สำหรับอาร์เรย์ที่ซ้อนกันเช่น[[1, 2, 3], [4, 5], [6, 7, 8]]วาด +-----------------+ |+-----+---+-----+| ||1 2 3|4 5|6 7 8|| |+-----+---+-----+| +-----------------+ สำหรับอาเรย์แบบขาด ๆ เช่น[[[1, 2, 3], [4, 5]], [6, 7, 8]]วาด +-------------------+ |+-----------+-----+| ||+-----+---+|6 7 8|| …

10
เครื่องกำเนิดไฟฟ้าสี่แยก
นี่คือ ASCII-art ของสี่แยกสี่ทาง: | | | | | | | | | | | | | -----+-----+----- | | - - -| |- - - | | -----+-----+----- | | | | | | | | | | | | | (โปรดสังเกตว่าถนนในแนวนอนมีความสูง 3 แถวในขณะที่ถนนแนวตั้งมีความกว้าง 5 คอลัมน์เพื่อเหตุผลด้านสุนทรียภาพเนื่องจากตัวอักษรรูปสี่เหลี่ยมผืนผ้า) ความท้าทายของคุณคือการผลิตงานศิลปะ ASCII นี้ อย่างไรก็ตามอย่างที่ฉันแน่ใจว่าทุกคนรู้ว่าไม่ใช่ทุก …

18
วาดสตริงที่เป็นหลุมเป็นบ่อ
( ได้รับแรงบันดาลใจจากการท้าทายนี้) ABBCBAสมมติว่าเรามีสตริง เราสามารถพูดได้ว่ามีการเพิ่มขึ้นระหว่างAและBสำหรับBต่อไปนี้A; เราสามารถพูดได้ว่ามีการเรียกใช้ระหว่างBและBสำหรับการเปลี่ยนแปลงอะไร; และในที่สุดเราสามารถพูดได้มีฤดูใบไม้ร่วงระหว่างและC Bเราสามารถวาดกราฟดังนี้: A B B C B A Rising: o o Continuing: o Falling: o o ไม่มีฉลากและลดช่องว่างให้เหลือน้อยที่สุด: o o o oo ABBCBAนี่คือการส่งออกที่คาดว่าสำหรับการป้อนข้อมูล คุณสามารถใช้อักขระที่ไม่ใช่ช่องว่างเพื่อแทนที่oในเอาต์พุต นอกจากนี้แต่ละคอลัมน์อาจมีช่องว่างพิเศษระหว่างคอลัมน์เหล่านั้นเช่น: o o o o o ข้อมูลที่ป้อนจะประกอบด้วยอักขระอย่างน้อยสามตัว สตริงจะประกอบด้วยตัวอักษรตัวพิมพ์ใหญ่ทั้งหมด แต่คุณอาจใช้อักษรตัวพิมพ์เล็กแทนได้ กรณีทดสอบ TEST CASE LINE 1 LINE 2 LINE 3 HELLOWORLD o oo o …

22
ภาพสะท้อนศิลปะ ASCII
ในการท้าทายนี้คุณจะได้รับบล็อคข้อความและคุณต้องทำการไตร่ตรองข้อความ การป้อนข้อมูล: สตริงที่จะสะท้อนให้เห็น ข้อความอาจไม่ได้รับการจัดเป็นอาร์เรย์ที่มีองค์ประกอบเป็นบรรทัดข้อความ ตัวอย่างเช่น"ab\ncd"และ['a','b','\n','c','d']ได้รับอนุญาต แต่['ab','cd']หรือ[['a','b'],['c','d']]ไม่ คุณสามารถสันนิษฐานได้ว่าทุกบรรทัดมีจำนวนอักขระเท่ากัน (เพิ่มด้วยช่องว่างเมื่อจำเป็น) บูลีนที่Trueระบุการสะท้อน Y และFalseบ่งชี้การสะท้อน X อินพุตทั้งสองสามารถส่งผ่านในลำดับใดก็ได้ เอาท์พุท: สตริงที่สะท้อนกลับ ตัวละครจะไม่เปลี่ยนแปลงเฉพาะตำแหน่งของพวกเขา บล็อกรูปภาพที่ได้ควรจัดชิดซ้ายบนสุด (แถวและคอลัมน์แรกจะต้องมีอักขระที่ไม่ใช่ช่องว่าง) อนุญาตให้ใช้ช่องว่างต่อท้าย (บนบรรทัดใดก็ได้) กรณีทดสอบ: False o / --|/ | / \ / o /|-- | \ / True o / --|/ | / \ / \ | --|/ o / True text text …

8
แปลงวันที่เป็นสัญกรณ์ xkcd
ใน xkcd ของเขาเกี่ยวกับรูปแบบวันที่มาตรฐาน ISO 8601 Randall ดักในสัญกรณ์ทางเลือกที่ค่อนข้างอยากรู้: ตัวเลขขนาดใหญ่คือตัวเลขทั้งหมดที่ปรากฏในวันที่ปัจจุบันตามลำดับปกติและตัวเลขขนาดเล็กเป็นดัชนีที่อิงกับ 1 ครั้งของการเกิดขึ้นของตัวเลขนั้น 2013-02-27ดังนั้นตัวอย่างข้างต้นหมายถึง ลองกำหนดการแสดง ASCII สำหรับวันดังกล่าว บรรทัดแรกมีดัชนี 1 ถึง 4 บรรทัดที่สองประกอบด้วยตัวเลข "ใหญ่" บรรทัดที่สามประกอบด้วยดัชนี 5 ถึง 8 หากมีดัชนีหลายรายการในสล็อตเดียวรายการเหล่านั้นจะอยู่ติดกันตั้งแต่ขนาดเล็กที่สุดไปหามากที่สุด หากมีmดัชนีมากที่สุดในช่องเดียว (เช่นในหลักเดียวกันและในแถวเดียวกัน) แต่ละคอลัมน์ควรมีm+1อักขระกว้างและจัดชิดซ้าย: 2 3 1 4 0 1 2 3 7 5 67 8 ดูความท้าทายสำหรับคู่หูสำหรับการแปลงฝั่งตรงข้าม ความท้าทาย ให้วันที่ ISO 8601 ( YYYY-MM-DD) ส่งออกสัญกรณ์วันที่ xkcd ที่เกี่ยวข้อง …

3
ดื่มเบียร์ด้วยตัวเอง
มันเป็นวันศุกร์! ซึ่งหมายความว่าถึงเวลาเบียร์แล้ว! น่าเศร้าที่วันนี้เราจะเล่นเบียร์แทนที่จะดื่ม :( ท้าทาย เอาท์พุทเบียร์แล้วดื่ม จำนวนจิบที่คุณเปลี่ยนแปลงการส่งออก จิบ โปรแกรมของคุณควรใช้สตริงอินพุตหนึ่งรายการ สายนี้ แต่เพียงผู้เดียวสามารถประกอบด้วยออกจากการตัดแบ่งsips หากอินพุตเป็นสตริงว่างคุณควรส่งเบียร์แก้วเต็มรวมถึงโฟม ยิ่งคุณดื่มมากเท่าไหร่แก้วเบียร์ของคุณก็จะยิ่งมีมากขึ้นเท่านั้น หากคุณใช้เวลา 0 จิบเบียร์ของคุณยังมีฟองอยู่ ผลลัพธ์ของโฟมนี้จะเหมือนกันเสมอ (ดูตัวอย่าง) หากคุณใช้เวลา 1 Yuck, foam.จิบคุณควรส่งออกแก้วเบียร์ตามด้วยการขึ้นบรรทัดใหม่และสตริง หากคุณเลือกจิบ 1 ขวดขึ้นไปบีชของคุณไม่ควรมีโฟมอีกต่อไป แต่ควรแสดงส่วนบนของแก้ว การดื่มโฟมนับเป็นหนึ่งจิบ ถ้าคุณใช้เวลาจิบ 6 Burpหรือมากกว่าคุณควรออกแก้วเบียร์เปล่าตามด้วยการขึ้นบรรทัดใหม่และสตริง ในแต่ละครั้งที่จิบแก้วเบียร์ของคุณควรจะว่างเปล่า ความเต็มของบีชนั้นขึ้นอยู่กับปริมาณฟอง°( °) ในเบียร์ของคุณ สำหรับการจิบแต่ละครั้งที่คุณทำหลังจากฟองโฟมเส้นของฟองควรจะถูกลบออก เบียร์แต่ละสายสามารถบรรจุฟองอย่างน้อย1และสูงสุด 5ตำแหน่งของฟองเหล่านี้ควรเป็นแบบสุ่ม 100% ตัวอย่าง อินพุต empty input string, or no input at all เอาท์พุต oo …

5
โค้งมังกรของ ASCII
บทนำ The Dragon's Curveเป็นเส้นโค้งแฟร็กทัลที่สะดุดตาปรากฏบนหน้าชื่อส่วนของนวนิยาย Jurassic Park มันสามารถอธิบายได้ง่าย ๆ ว่าเป็นกระบวนการของการพับแถบกระดาษตามที่อธิบายไว้ในบทความ Wikipedia เกี่ยวกับเส้นโค้งนี้ การทำซ้ำสองสามครั้งแรกของการสร้างเส้นโค้งนี้จะมีลักษณะเช่นนี้ (ให้เครดิตกับ Wikipedia สำหรับรูปภาพ) ความท้าทาย เขียนโปรแกรมหรือฟังก์ชั่นที่กำหนดให้เป็นจำนวนเต็ม n เป็นอินพุทเอาท์พุทซ้ำที่ n ของเส้นโค้งมังกรเป็นศิลปะ ASCII โดยใช้สัญลักษณ์_และ| คุณมีการส่งออกรูปโดยใช้เพียง|, _และช่องว่าง คุณไม่สามารถส่งออกเส้นโค้งเป็นพล็อตหรืออะไรก็ได้ คุณสามารถรับอินพุตเป็นอาร์กิวเมนต์โปรแกรมใน STDIN หรือเป็นพารามิเตอร์ฟังก์ชัน อินพุตจะเป็นจำนวนเต็ม> = 0 โปรแกรมของคุณควรทำงานกับค่าอินพุตที่เหมาะสมโดย 12 เป็นค่าสูงสุดในกรณีทดสอบที่เสนอ การวนซ้ำครั้งแรกจะมีลักษณะเช่นนี้ การทำซ้ำ 0 คือ _ การวนซ้ำ 1 คือ _| การทำซ้ำ 2 คือ |_ _| หนึ่งบรรทัดต่อท้ายที่สิ้นสุดก็โอเค …

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