การเขียนโปรแกรมปริศนา & รหัสกอล์ฟ

คำถาม & คำตอบสำหรับผู้ชื่นชอบการเขียนโปรแกรมปริศนา

1
ค้นหาพื้นที่ของรูปหลายเหลี่ยมนูนที่ใหญ่ที่สุด
รับรายการพิกัดจำนวนเต็มค้นหาพื้นที่ของรูปหลายเหลี่ยมนูนที่ใหญ่ที่สุดที่คุณสามารถสร้างจากรายการดังกล่าวที่ - จุดสุดยอดทุกอันอยู่ในรายการ ไม่มีองค์ประกอบของรายการอยู่ในรูปหลายเหลี่ยม ตัวอย่าง: (0, 0) (8, 0) (0, 1) (3, 1) (7, 1) (1, 2) (5, 2) (9, 2) (9, 2) (2, 3) (5, 3) (7, 3) (3, 4) (5, 5) (11, 5) มองเห็น: o o o o o o o o o o o o o o …

2
แปลง Brainfuck เป็น MarioLANG
MarioLANGเป็นภาษาโปรแกรมสองมิติที่ซอร์สโค้ดคล้ายกับระดับ Super Mario Bros. นอกจากนี้ชุดคำสั่งของมันจะคล้ายกับbrainfuck 's ซึ่งหมายความว่า MarioLANG นั้นเป็นสมอง 2 มิติที่ตัวชี้คำสั่งเคลื่อนไหวเหมือนมาริโอ ดังนั้นเมื่อฉันเขียนการยื่น MarioLANGสำหรับแบบทดสอบภาษาโปรแกรมฉันเริ่มต้นด้วยการแปลง Brainfuck "Hello, World!" โปรแกรมเพื่อ MarioLANG ฉันสังเกตเห็นว่าสิ่งนี้เป็นไปได้ด้วยกระบวนการที่เป็นระบบดังนั้นลองเขียนคอมไพเลอร์ Brainfuck-to-MarioLANG กัน! หมายเหตุ: MarioLANG สเปคไม่ได้เป็นที่ชัดเจนอย่างสิ้นเชิงดังนั้นฉันสมมติว่าการตีความของการดำเนินงานทับทิม ฉันจะอธิบายกระบวนการด้วยโปรแกรม Brainfuck ต่อไปนี้: ++[>+++++[>+++++++>++++++++++>+++>+<<<<-]<-]>>++.>+.+++++++..+++.>+++.>. มันพิมพ์Hello!และขึ้นบรรทัดใหม่ต่อท้าย แปลง<และ>เป็น(และ)ตามลำดับ: ++[)+++++[)+++++++)++++++++++)+++)+((((-](-]))++.)+.+++++++..+++.)+++.). เพิ่มพื้นสำหรับมาริโอเพื่อเดินบน: ++[)+++++[)+++++++)++++++++++)+++)+((((-](-]))++.)+.+++++++..+++.)+++.). ======================================================================== ตอนนี้ปัญหาคือ MarioLANG ไม่ได้มีลูปเช่นและ[ ]แต่เราต้องใช้ลิฟต์และคำแนะนำเพื่อให้มาริโอเดินวนเป็นวงกลม ครั้งแรกที่เราเข้ามาแทนที่[ด้วยและเปลี่ยนไปที่พื้น> "และเรายังแทนที่]ด้วย[!และเปลี่ยนพื้นเพื่อ=#: ++>)+++++>)+++++++)++++++++++)+++)+((((-[!(-[!))++.)+.+++++++..+++.)+++.). =="======"===============================#===#============================ "และ#สามารถสร้างลิฟท์ (เริ่มต้นจาก#ตอนจบที่") ดังนั้นตอนนี้สิ่งที่เราต้องการจะเสริมชั้นสำหรับมาริโอที่จะเดินกลับมาที่ การเริ่มต้นด้วย!และสิ้นสุดด้วย<: ++>)+++++>)+++++++)++++++++++)+++)+((((-[!(-[!))++.)+.+++++++..+++.)+++.). =="======"===============================#===#============================ ! < …

20
พิมพ์ตัวพิมพ์ใหญ่โดยไม่ต้องพิมพ์ตัวพิมพ์ใหญ่
Whoa, whoa, whoa ... หยุดพิมพ์โปรแกรมของคุณ ไม่ฉันไม่ได้หมายถึง "พิมพ์ABC..." ฉันกำลังพูดถึงเมืองหลวงของสหรัฐอเมริกา โดยเฉพาะพิมพ์ชุดเมือง / รัฐทั้งหมดที่กำหนดในรายการต่อไปนี้ ในลำดับใด ๆ ด้วยตัวเลือกตัวคั่นของคุณ (เช่นBaton Rouge`LA_Indianapolis`IN_...ยอมรับได้) ตราบใดที่มันไม่ชัดเจนว่าคำใดเป็นเมืองซึ่งเป็นรัฐและเป็นรายการที่แตกต่างกัน โดยไม่ต้องใช้รหัสใด ๆABCDEFGHIJKLMNOPQRSTUVWXYZในซอร์สโค้ดของคุณ เอาต์พุตควรเป็น STDOUT หรือเทียบเท่า แก้ไข - อ๊ะ! <edit> ขณะที่พิมพ์รายการจากหน่วยความจำ (ขอบคุณ Animaniacs ตามที่อธิบายไว้ด้านล่าง) ดูเหมือนว่าฉันจะมองข้ามวอชิงตันดีซีซึ่งไม่ใช่เมืองหลวงของรัฐ แต่อยู่ในเพลงและบางครั้งก็รวมอยู่ใน "รายชื่อเมืองหลวง" ( เช่นคำตอบ Mathematica ด้านล่าง) ฉันตั้งใจจะรวมเมืองนั้นไว้ในรายการนี้ แต่พลาดไปอย่างใด เป็นผลให้คำตอบที่ไม่ได้มีเมืองที่จะไม่ถูกลงโทษและคำตอบที่จะมีเมืองที่จะไม่ถูกลงโทษอย่างใดอย่างหนึ่ง โดยพื้นฐานแล้วขึ้นอยู่กับคุณว่าWashington, DCจะรวมอยู่ใน ouput หรือไม่ ขออภัยด้วย! </edit> Baton Rouge, LA Indianapolis, …

26
ตัวเลขไบนารีที่แยกไม่ออก
หากคุณแสดงจำนวนเต็มบวกบางส่วนในไบนารีโดยไม่มีเลขศูนย์นำหน้าและแทนที่ทุกค่า1ด้วย a (และทุก ๆ0ด้วย a )แล้ววงเล็บทั้งหมดจะตรงกันหรือไม่ ในกรณีส่วนใหญ่พวกเขาจะไม่ ตัวอย่างเช่น 9 อยู่1001ในไบนารีซึ่งกลายเป็น())(โดยที่วงเล็บสองรายการแรกเท่านั้นที่ตรงกัน แต่บางครั้งพวกเขาจะจับคู่ ตัวอย่างเช่น 44 อยู่101100ในรูปของเลขฐานสองซึ่งกลายเป็น()(())โดยที่วงเล็บซ้ายทั้งหมดมีวงเล็บขวาตรงกัน เขียนโปรแกรมหรือฟังก์ชั่นที่ใช้จำนวนเต็มฐานสิบจำนวนเต็มบวกและพิมพ์หรือส่งกลับค่าความจริงหากเวอร์ชันไบนารี - วงเล็บของตัวเลขนั้นมีวงเล็บที่ตรงกันทั้งหมด ถ้ามันไม่ได้พิมพ์หรือกลับfalsyค่า รหัสที่สั้นที่สุดในหน่วยไบต์ชนะ ลำดับ OEIS ที่เกี่ยวข้อง ตัวอย่างความจริงต่ำกว่า 100: 2, 10, 12, 42, 44, 50, 52, 56 ตัวอย่างเท็จต่ำกว่า 100: 1, 3, 4, 5, 6, 7, 8, 9, 11, 13, 14, 15, 16, 17, 18, 19, …

4
pangolin กลายพันธุ์
นี่คือความท้าทายในการเล่นกอล์ฟซึ่งคุณต้องคิดโปรแกรมที่ทำหน้าที่เหมือนควินินหรือควินินที่ปรับเปลี่ยนตัวเองเพื่อแสดงการเรียนรู้ของเครื่อง พื้นหลัง มีโปรแกรมปัญญาประดิษฐ์พื้นฐานที่เรียกว่า 'เกมลิ่น' ซึ่งจะอธิบายเป็นที่นี่ แนวคิดพื้นฐานคือโปรแกรมเมื่อเรียกใช้ในครั้งแรกที่ถาม: ตกลงได้โปรดคิดถึงบางสิ่ง มันเป็นลิ่นหรือ? จากนั้นคุณสามารถตอบกลับอย่างใดอย่างหนึ่ง: ใช่ ในกรณีนี้มันบอกว่า: ดี. นั่นเป็นเรื่องง่ายมาก หรือถ้าไม่มันบอกว่า: โอ้ ถ้างั้นคุณก็ชนะ - คุณคิดอะไรอยู่ ซึ่งคุณอาจพูดว่า: สุนัข ซึ่งมันจะบอกว่า กรุณาให้คำถามกับฉันเกี่ยวกับสุนัขดังนั้นฉันสามารถบอกความแตกต่างระหว่างสุนัขกับ pangolin ได้ คุณอาจตอบกลับ กินมดไหม จากนั้นจะถาม: คำตอบสำหรับสุนัขคืออะไร? ที่คุณจะพูดว่า ไม่ และมันจะบอกว่า ขอบคุณ ครั้งต่อไปที่มันทำงานมันจะถามคำถามข้างต้นและจะสร้างต้นไม้ไบนารีของคำถามดังกล่าว ความท้าทาย พอพื้นหลัง ความท้าทายนี้คือการเขียนโปรแกรม pangolin ที่ดัดแปลงด้วยตนเอง กฎมีดังนี้: เอาท์พุท Program (ตามที่อธิบายไว้ข้างต้น) STDERRควรจะ คำตอบสุดท้ายจะเป็น "ดีนั่นเป็นเรื่องง่ายมาก" หรือ "ขอบคุณ" หลังจากนี้ควรส่งออกทั้งเวอร์ชันปัจจุบันของโปรแกรมหรือเวอร์ชันใหม่ของโปรแกรมที่รวมคำถามไว้STDOUTด้วย ไม่มีคำตอบที่เขียนในภาษาที่ไม่สนับสนุนการเขียนSTDOUTและSTDERRหรือการอ่านจากSTDINจะถูกต้อง กล่าวอีกนัยหนึ่งภายใต้ …
28 code-golf  quine 

5
เอามันหรือทิ้งมัน: เกมโชว์สำหรับคอมพิวเตอร์
บริบท: มหาเศรษฐีสันโดษได้สร้างรายการเกมเพื่อดึงดูดโปรแกรมเมอร์ที่ดีที่สุดและสว่างที่สุดในโลก ในวันจันทร์เวลาเที่ยงคืนเขาเลือกบุคคลหนึ่งคนจากกลุ่มผู้สมัครเป็นผู้แข่งขันในสัปดาห์และมอบเกมให้พวกเขา คุณเป็นผู้โชคดีในสัปดาห์นี้! เกมของสัปดาห์นี้: โฮสต์ให้คุณเข้าถึง API เพื่อเข้าถึงซองจดหมายดิจิทัลจำนวน 10,000 ซอง ซองจดหมายเหล่านี้จะถูกเรียงลำดับแบบสุ่มและมีค่าเงินดอลลาร์อยู่ในนั้นระหว่าง $ 1 ถึง $ 10,000 (ไม่มีซองจดหมายสองซองที่มีค่าเงินดอลลาร์เดียวกัน) คุณมี 3 คำสั่งในการกำจัดของคุณ: อ่าน (): อ่านตัวเลขดอลลาร์ในซองจดหมายที่ด้านบนของสแต็ก ใช้ (): เพิ่มตัวเลขดอลลาร์ในซองจดหมายลงในกระเป๋าเงินโชว์เกมของคุณและป๊อปอัพซองจดหมายออกจากสแต็ค ผ่าน (): เปิดซองจดหมายที่ด้านบนของสแต็ก กฎระเบียบ: หากคุณใช้ Pass () บนซองจดหมายเงินภายในจะหายไปตลอดกาล หากคุณใช้ Take () บนซองจดหมายที่มี $ X จากจุดนั้นไปข้างหน้าคุณจะไม่สามารถใช้ Take () บนซองจดหมายที่มี <$ X ใช้ () บนหนึ่งในซองจดหมายเหล่านี้จะเพิ่ม $ …

11
พระคาร์ดินัลและเลข 1 ถึง 100
นี่คือวิธีง่ายๆในการยืดกล้ามเนื้อการบีบอัดของคุณ รหัสของคุณ (โปรแกรมที่สมบูรณ์) จะต้องแสดงผลลัพธ์เป็นตัวเลขภาษาอังกฤษทั้งหมดที่สะกดออกมาจาก 1 ถึง 100 จากนั้นตัวเลขลำดับทั้งหมดจาก 1 ถึง 100 ตัวเลขในแต่ละรายการควรคั่นด้วยเครื่องหมายจุลภาคและช่องว่างและเหมาะสม ยัติภังค์ แต่ละรายการควรเริ่มต้นด้วยอักษรตัวใหญ่และสรุปด้วยจุด ทั้งสองรายการควรถูกคั่นด้วยบรรทัดใหม่ เพื่อประโยชน์ของความชัดเจนคุณต้องสร้างกระแสไบต์ที่แน่นอนนี้: One, two, three, four, five, six, seven, eight, nine, ten, eleven, twelve, thirteen, fourteen, fifteen, sixteen, seventeen, eighteen, nineteen, twenty, twenty-one, twenty-two, twenty-three, twenty-four, twenty-five, twenty-six, twenty-seven, twenty-eight, twenty-nine, thirty, thirty-one, thirty-two, thirty-three, thirty-four, …

19
Monday Mini-Golf # 1: Reverse Fibonacci Solver
Monday Mini-Golf:ชุดของความท้าทายรหัสสั้น ๆกอล์ฟโพสต์ (หวังว่า!) ทุกวันจันทร์ Fibonacci เหมือนลำดับจะได้รับโดยใช้วิธีการเดียวกับที่มีชื่อเสียงลำดับฟีโบนักชี ; นั่นคือแต่ละหมายเลขF (n)ถูกค้นพบโดยการเพิ่มตัวเลขสองตัวก่อนหน้านี้ในลำดับ ( F (n) = F (n-1) + F (n-2) ) หรือโดยการลบตัวเลขสองตัวถัดไป ( F (n) = F (n + 2) - F (n + 1) ) ความแตกต่างที่สำคัญคือลำดับเหล่านี้สามารถเริ่มต้นด้วยตัวเลขสองตัวใด ๆ การจัดทำดัชนีเป็นศูนย์ของลำดับเหล่านี้ไม่แน่นอน แต่สำหรับตอนนี้เราจะใช้กฎนี้: หมายเลขที่ 0 ในลำดับที่เหมือน Fibonacci คือหมายเลขสุดท้ายซึ่งเล็กกว่าหมายเลขก่อนหน้า ตัวอย่างเช่นลำดับฟีโบนักชีอาจจะเขียนเป็น1, 0, 1, 1, 2, 3, …

10
การคูณด้วยสายตายาว
มีวิธีที่ดีในการดำเนินการคูณแบบยาวสำหรับจำนวนเต็มสองจำนวนโดยไม่ต้องทำอะไรนอกจากนับซึ่งบางครั้งจะมีการแชร์ผ่านอินเทอร์เน็ต คุณเขียนตัวเลขของแต่ละหมายเลขเป็นจำนวนบรรทัดเอียงโดยมีตัวเลขสองตัวทำมุม 90 องศา จากนั้นคุณสามารถนับการแยกในคอลัมน์แยกที่เกิดขึ้นได้ ไดอะแกรมอาจอธิบายสิ่งนี้ได้ นี่คือตัวอย่างสำหรับการคำนวณ21 * 32: หากคุณ google สำหรับ "การคูณด้วยภาพ / กราฟิกแบบยาว" คุณจะพบตัวอย่างอีกมากมาย ในการท้าทายนี้คุณต้องสร้างไดอะแกรมเหล่านี้โดยใช้ ASCII art สำหรับตัวอย่างเดียวกันเอาต์พุตจะมีลักษณะดังนี้: \ / X / \ / X / \ X / X X X / \ / / X X X / / X \ / X / \ X …

20
ข้อความที่ทำให้งงงวยโดยการขี่ตัวเลขที่ประกอบไปด้วยหลัก
เป้าหมายของความท้าทายนี้คือการเขียนฟังก์ชั่น / โปรแกรมที่สั้นที่สุดในการป้อนข้อความเข้ารหัสโดยใช้วิธีการด้านล่างและส่งกลับผลลัพธ์ hello worldเป็นตัวอย่างที่ผมจะใช้สตริง ขั้นแรกรับข้อความอินพุต hello world ประการที่สองแปลงสตริงเป็นไตรภาค (ฐาน 3) ใช้รหัสนี้: a = 000 b = 001 c = 002 d = 010 e = 011 f = 012 g = 020 ... w = 211 x = 212 y = 220 z = 221 [space] = 222 ด้วยกุญแจนี้hello …

3
ด่วน! หลบหนีหลุมดำ!
มันเป็นปีที่ 87,539,319 และการเดินในอวกาศเป็นเรื่องธรรมดาตอนนี้หลาย ๆ คนเดินทางไปในอวกาศด้วยตัวเองขับเคลื่อนโดยไม่มีอะไรเลยนอกจาก jetpack ที่ด้านหลังเขียนโปรแกรมด้วยคอมพิวเตอร์และคีย์บอร์ดส่วนตัว คุณเป็นหนึ่งคนนั้น คุณออกไปบนทางเดินอวกาศที่เงียบสงบและน่ารักเมื่อทันใดนั้นคุณถูกจับด้วยแรงโน้มถ่วงของหลุมดำ! เมื่อคุณดิ่งลงสู่หลุมดำนี้หมุนวนเข้ามาเร็วขึ้นคุณจะรู้ว่าโอกาสในการเอาชีวิตรอดของคุณคือการถ่ายทอดข้อความความทุกข์และหวังว่าเรือใกล้เคียงจะมาช่วยคุณ ดังนั้นคุณต้องแยกแป้นพิมพ์ออกและเริ่มพิมพ์โปรแกรม โปรแกรมของคุณสามารถใช้ภาษาใดก็ได้และต้องพิมพ์HELP!ไปที่ stdout (พีซีของคุณจะออกอากาศ stdout ทั้งหมดในพื้นที่ส่วนลึก) อย่างไรก็ตามเมื่อคุณอยู่ใกล้หลุมดำแป้นพิมพ์ของคุณจะถูกฉีกเป็นชิ้นเล็กชิ้นน้อย! สมมติว่าคุณกำลังใช้แป้นพิมพ์ QWERTY เหมือนด้านล่างและ Blackhole อยู่ทางซ้ายของคุณ จำไว้ว่าการเลื่อนซ้ายและขวาเป็นสองปุ่มที่แตกต่างกัน หลังจากกดปุ่มทุกครั้งแถวซ้ายสุดของแป้นพิมพ์ของคุณ (ปุ่มที่ครอบคลุมด้วยเส้นสีแดงซ้ายสุด) จะถูกคัดลอกและเหวี่ยงลงในหลุมดำ! ดังนั้นปุ่มกดครั้งแรกของคุณอาจเป็นกุญแจสำคัญใด ๆ บนแป้นพิมพ์ แต่จากนั้นเป็นต้นมาไม่มีของซ้ายสุด Tab , Caps, Shift, Ctrlหรือ`ปุ่มอาจถูกนำไปใช้ในทุก (ยังสามารถใช้ r-shift และ r-ctrl ได้) หลังจากกดปุ่มถัดไปกุญแจ1, Q, A, ZและAltถูกโยนลงไปในเหวและไม่อาจนำมาใช้นั้นไม่นาน หลังจากนั้นคุณจะสูญเสียSpace, X, S, W, 2และอื่น ๆ …

19
จัดรูปแบบไมโครวินาทีเป็นชั่วโมง: นาที: วินาที ฯลฯ
ต่อไปนี้เป็นแรงบันดาลใจจากคำถามที่ขึ้นมาบนกองมากเกินในวันนี้ ได้รับหมายเลขของไมโคร0 <= n <= 86400000000(เช่น12345678900) เอาท์พุทสตริงรูปแบบเช่นhh:mm:ss:000:00003:25:45:678:900 0 -> '00:00:00:000:000' 12345678900 -> '03:25:45:678:900' 86400000000 -> '24:00:00:000:000' ฉันมีวิธีแก้ปัญหาใน Python ขนาด 209 ไบต์ แต่มันลดลงได้ไหม
28 code-golf  date 

30
คนที่น่าสนใจ
พื้นหลัง บุคคลที่น่าสนใจคือละครเรื่องอาชญากรรมใน CBS และรายการทีวีที่ฉันโปรดปรานในช่วงปลายปี การแสดงเป็นเรื่องเกี่ยวกับชายคนหนึ่งชื่อแฮโรลด์ฟินช์โปรแกรมเมอร์มหาเศรษฐีและหุ้นส่วนของเขาจอห์นรีสซึ่งเป็นทหารผ่านศึกกองกำลังพิเศษและอดีตซีไอเอ โปรแกรมเมอร์คนนี้ได้สร้างไอซีที่เรียกว่า "เครื่องจักร" ซึ่งจะทำนายอาชญากรรมที่รุนแรงก่อนที่จะเกิดขึ้น ติดตามทุกคนบนโลกได้ตลอดเวลาโดยตรวจสอบและวิเคราะห์กล้องวงจรปิดและการสื่อสารทางอิเล็กทรอนิกส์ทั่วโลก Harold ได้สร้าง The Machine ให้กับรัฐบาลสหรัฐอเมริกาเพื่อตรวจจับการก่อการร้ายก่อนหน้าความจริง มันแบ่งอาชญากรรมที่คาดการณ์ไว้เป็นรายการตามความเกี่ยวข้องกับความมั่นคงของชาติหรือไม่ รัฐบาลจัดการคดีที่เกี่ยวข้องในขณะที่รายการ "ไม่เกี่ยวข้อง" ถูกตั้งโปรแกรมให้ลบทุกวัน แฮโรลด์ทำแบ็คดอร์เล็ก ๆ เพื่อหวังว่าจะจัดการกับรายการ "ไม่เกี่ยวข้อง" ด้วยตัวเอง แบ็คดอร์ตัวนี้ทำให้เครื่องโทรหาแฮ็คโฟนที่ใกล้ที่สุด (ทุกวันหรือมากกว่านั้น) และอ่านหมายเลขประกันสังคมให้เขา SSN นี้เป็นของใครบางคนที่มีชีวิตอยู่ในอันตรายซึ่งเป็นส่วนหนึ่งของอาชญากรรมที่ไตร่ตรองไว้ล่วงหน้าหรือจากคนที่กำลังวางแผนอาชญากรรมดังกล่าว ความท้าทาย เขียนโปรแกรมที่ไม่มีอินพุตและส่งออกหมายเลขโทรศัพท์สุ่ม 30 หมายเลข & SSN เอาท์พุต มีข้อความสองบรรทัดที่จะพิมพ์ทุก ๆ "วัน" Crime predicted: 555-55-5555 Calling: 1-555-555-5555 ตามด้วยการขึ้นบรรทัดใหม่ กระบวนการนี้ควรทำซ้ำเป็นเวลาหนึ่ง "เดือน" (30 "วัน") เบอร์โทรศัพท์ หมายเลขโทรศัพท์ทุกหมายเลขจะต้องมีองค์ประกอบต่อไปนี้: …
28 code-golf  random 

8
ASCII topology pt 1: ฉันไว้ใจคุณได้ไหม?
ฉันมีปัญหาร้ายแรง ฉันมีไฟล์ข้อความที่ฉันเก็บหมายเลขที่สำคัญของฉัน - ทั้งหมดที่สำคัญ! และสองและสาม .. ตัวเลขเหล่านี้สำคัญมากที่ฉันไม่สามารถมอบความไว้วางใจให้กับระบบทศนิยมหรือไบนารีเลขใหม่ ฉันเก็บรหัสแต่ละหมายเลขไว้ด้วยกันโดยไม่ระมัดระวังดังนี้: +--+ | | +---+ +----+ | | | | | +---+ +-------+ ~/two.txt ง่ายและน่าเชื่อถือ: ASCII สองลูปสำหรับหมายเลข 2 โชคไม่ดีสิ่งเหล่านี้มักจะยุ่งเหยิงเมื่อเวลาผ่านไปและตอนนี้ฉันมีเวลายากที่จะทราบว่ามีกี่ลูปในแต่ละไฟล์ นี่คือตัวอย่างบางส่วนที่ฉันทำงานด้วยมือ: หนึ่ง: +---+ | | +--+ | | | +--+ | | | | | | | +--+ +--+ | | +---------+ สาม: +---------+ …

23
Asciimation แจ็คกระโดด
นี่เป็นความท้าทายครั้งแรกของฉันดังนั้นฉันจึงทำให้มันค่อนข้างง่าย หากคุณเคยพิมพ์telnet towel.blinkenlights.nlบนบรรทัดคำสั่งของคุณและกด Enter คุณจะได้สัมผัสกับความปิติ Asciimation ค่อนข้างง่ายทำแอนิเมชั่นด้วยศิลปะ ASCII วันนี้เราจะทำ asciimation ขั้นพื้นฐานมากของคนที่ทำแจ็คกระโดด จะมีภาพ ASCII สองภาพที่เราจะรวมเข้าด้วยกันเป็นภาพเดียว หมายเลข 1: _o_ 0 / \ หมายเลข 2: \o/ _0_ <blank line> โปรดทราบว่าบรรทัดที่สองมีบรรทัดว่างที่ท้าย ดังนั้นโปรแกรมของคุณควรทำตามขั้นตอนเหล่านี้: ล้างหน้าจอคอนโซล พิมพ์ภาพ ASCII ที่ถูกต้อง ตั้งค่าสถานะหรือบางสิ่งบางอย่างเพื่อให้คุณรู้ว่าจะทำภาพอื่นในครั้งต่อไป รอสักครู่ (ประมาณหนึ่งวินาที) ดำเนินการต่อที่ 1 กฎระเบียบ โปรแกรมของคุณจะต้องเป็นวงวนไม่ จำกัด (ตามหลักวิชา) ภาษาการเขียนโปรแกรมที่คุณใช้จะต้องสร้างขึ้นก่อนที่จะมีการโพสต์สิ่งท้าทายนี้ นี่คือcode-golfดังนั้นรหัสที่สั้นที่สุดในหน่วยไบต์ชนะ ช่องโหว่มาตรฐานใช้ สนุก!

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