คำถามติดแท็ก game-of-life

สำหรับความท้าทายที่เกี่ยวข้องกับ Game of Life ของ John Conway

6
สร้างเกมทำงานของ Tetris ใน Game of Life ของ Conway
นี่คือคำถามเชิงทฤษฎี - คำถามหนึ่งที่ไม่สามารถหาคำตอบได้ง่ายไม่ว่าในกรณีใด ๆ แม้แต่คำถามเล็กน้อยก็ตาม ใน Game of Life ของ Conway มีการสร้างเช่นmetapixelซึ่งอนุญาตให้ Game of Life จำลองระบบกฎ Game-of-Life อื่น ๆ ได้เช่นกัน นอกจากนี้ยังเป็นที่รู้จักกันว่าเกมแห่งชีวิตนั้นทัวริงสมบูรณ์ งานของคุณคือการสร้างหุ่นยนต์อัตโนมัติโดยใช้กฎของเกมชีวิตของคอนเวย์ที่จะอนุญาตให้เล่นเกม Tetris โปรแกรมของคุณจะได้รับการป้อนข้อมูลโดยการเปลี่ยนสถานะของหุ่นยนต์ด้วยตนเองในรุ่นที่เฉพาะเจาะจงเพื่อเป็นตัวแทนของการขัดจังหวะ (เช่นการย้ายชิ้นส่วนทางซ้ายหรือขวาวางมันหมุนหมุนหรือสร้างชิ้นใหม่เพื่อวางลงบนตะแกรง) จำนวนรุ่นที่เฉพาะเจาะจงเป็นเวลารอคอยและแสดงผลที่ใดที่หนึ่งบนหุ่นยนต์ ผลลัพธ์ที่แสดงต้องคล้ายกับตาราง Tetris จริงอย่างเห็นได้ชัด โปรแกรมของคุณจะได้รับคะแนนตามสิ่งต่าง ๆ ดังต่อไปนี้ตามลำดับ (ด้วยเกณฑ์ที่ต่ำกว่าที่ทำหน้าที่เป็นตัวแบ่งสำหรับเกณฑ์ที่สูงกว่า): ขนาดกล่องที่ถูกผูกไว้ - กล่องสี่เหลี่ยมที่มีพื้นที่ขนาดเล็กที่สุดซึ่งบรรจุโซลูชันที่ให้ไว้ได้รับรางวัลทั้งหมด การเปลี่ยนแปลงเล็ก ๆ น้อย ๆ ในการป้อนข้อมูล - เซลล์ที่น้อยที่สุด (สำหรับกรณีที่แย่ที่สุดในหุ่นยนต์ของคุณ) ที่จะต้องมีการปรับด้วยตนเองสำหรับการชนะการขัดจังหวะ การประมวลผลที่เร็วที่สุด - ชั่วอายุที่น้อยที่สุดเพื่อก้าวไปหนึ่งขีดในการจำลองการชนะ จำนวนเซลล์เริ่มต้นสด - …

1
สร้างนาฬิกาดิจิตอลใน Game of Life ของ Conway
งานของคุณคือสร้างแบบจำลอง Game of Life ซึ่งเป็นตัวแทนของนาฬิกาดิจิตอลซึ่งตอบสนองคุณสมบัติต่อไปนี้: นาฬิกาแสดงชั่วโมงและนาทีในทศนิยม (เช่น12:00, 3:59, 7:24) กับรัฐที่แตกต่างกันสำหรับแต่ละ 1,440 นาทีของวัน - ทั้งชั่วโมงจะไป 0-23 หรือ 1-12 มีตัวบ่งชี้ PM รูปแบบเป็นระยะและรัฐวนรอบโดยไม่มีการโต้ตอบจากภายนอก การอัพเดตนาทีตามช่วงเวลาปกติ - จากการเปลี่ยนหนึ่งนาทีเป็นครั้งต่อไปจะมีจำนวนรุ่นเท่ากัน ผู้สังเกตการณ์ที่ไม่ระบุชื่อสามารถบอกได้ทันทีว่าหน้าจอควรเป็นนาฬิกาดิจิตอล โดยเฉพาะอย่างยิ่งสิ่งนี้ก่อให้เกิด: ตัวเลขสามารถมองเห็นและแยกแยะได้ชัดเจน คุณต้องสามารถบอกด้วยความมั่นใจได้อย่างรวดเร็วว่าจะแสดงเวลาใด มีการอัพเดทตัวเลข หมายเลขใหม่แต่ละหมายเลขจะปรากฏในตำแหน่งเดียวกับหมายเลขก่อนหน้าและไม่มีการเคลื่อนไหวใด ๆ ของกล่องขอบเขตของตัวเลข (โดยเฉพาะอย่างยิ่งตัวเลขไม่ได้มี 10 หลักที่แตกต่างกันในสถานที่ต่าง ๆ ที่ได้รับการเปิดเผยทุกครั้งที่มีการเปลี่ยนแปลงตัวเลข) ตัวเลขจะปรากฏติดกันโดยไม่มีช่องว่างระหว่างกันมากเกินไป โปรแกรมของคุณจะได้คะแนนจากสิ่งต่าง ๆ ดังต่อไปนี้ตามลำดับ (ด้วยเกณฑ์ที่ต่ำกว่าซึ่งทำหน้าที่เป็นตัวแบ่งสำหรับเกณฑ์ที่สูงกว่า): ขนาดกล่องที่ถูกผูกไว้ - กล่องสี่เหลี่ยมที่มีพื้นที่ขนาดเล็กที่สุดซึ่งบรรจุโซลูชันที่ให้ไว้ได้รับรางวัลทั้งหมด การดำเนินการที่เร็วที่สุด - ชั่วอายุคนที่น้อยที่สุดเพื่อความก้าวหน้าหนึ่งนาที จำนวนเซลล์เริ่มต้นสด - จำนวนที่น้อยลงชนะ …

16
ใช้เกมแห่งชีวิตกับอะไรก็ได้ แต่กริดปกติ
เกมแห่งชีวิตของ Conway นั้นเล่นได้เกือบทุกตารางสี่เหลี่ยม แต่ไม่จำเป็นต้องเป็น เขียนโปรแกรมที่ใช้กฎมาตรฐานเซลล์ใกล้เคียงจากเกมแห่งชีวิตของคอนเวย์บนกระเบื้องสองมิติของระนาบแบบยุคลิดที่ไม่ได้เรียงเป็นรูปสี่เหลี่ยมจตุรัสสามเหลี่ยมหรือรูปหกเหลี่ยมเป็นประจำ โดยเฉพาะการปูกระเบื้องที่คุณเลือก ... ต้องมีอย่างน้อย 2 ( แต่หลายขีด) มีรูปทรงที่แตกต่างกันprototiles รูปร่างที่แตกต่างกันอาจถูกปรับขนาดหรือหมุนเวอร์ชั่นของกันและกัน พวกเขาจะต้องสามารถต่อระนาบทั้งหมดได้โดยไม่ต้องออกจากรู พวกเขาจะต้องเป็นรูปหลายเหลี่ยมอย่างง่ายที่มีขอบเขต จำกัด (อาจไม่ง่ายอย่างอ่อน) จะต้องไม่แตกต่างจากกริดสี่เหลี่ยมสามเหลี่ยมและหกเหลี่ยม ไม่อนุญาตให้ปูกระเบื้องใด ๆ ที่เป็นรูปสี่เหลี่ยมจัตุรัสสามเหลี่ยมหรือหกเหลี่ยมแบบปกติ (คุณยังสามารถใช้สี่เหลี่ยม / สามเหลี่ยม / หกเหลี่ยมในการเอียงอื่น ๆ ) เส้นขอบระหว่างสอง prototiles อาจมีหลายขอบและจุดยอด แต่มันจะต้องต่อเนื่อง การปูกระเบื้องของคุณอาจเป็นระยะหรือเป็นช่วง ๆ แต่เมื่อขยายให้ครอบคลุมทั่วทั้งระนาบโปรโตไทล์แต่ละอันจะต้องปรากฏขึ้นหลายครั้งอย่างไม่สิ้นสุด (ดังนั้นไม่มี "hardcoding" บางส่วนของกระเบื้องของคุณเพื่อช่วยให้ได้คะแนนพิเศษด้านล่าง) prototiles ของคุณแต่ละเซลล์จะแสดงเซลล์ Game of Life หนึ่งเซลล์ซึ่งอยู่ใกล้เคียงเซลล์อื่น: เซลล์ที่ใช้ขอบหรือจุดยอดใด ๆถือเป็นเพื่อนบ้าน เซลล์ที่แบ่งปันขอบหรือจุดยอดหลาย ๆ เส้นจะยังคงนับรวมอยู่ที่เพื่อนบ้านอื่น ๆ …

30
เกมที่สั้นที่สุดของชีวิต
เกมแห่งชีวิตของ Conwayเป็นตัวอย่างคลาสสิกของระบบเซลลูลาร์อัตโนมัติ เซลล์ก่อตัวเป็นตารางสี่เหลี่ยมจัตุรัสและแต่ละเซลล์มีสองสถานะ: มีชีวิตอยู่หรือตายไป ในแต่ละตาแต่ละเซลล์จะอัปเดตพร้อมกันตามสถานะและของแปดประเทศเพื่อนบ้าน: เซลล์ที่มีชีวิตยังคงมีชีวิตอยู่ถ้ามันมีเพื่อนบ้านอยู่สองหรือสามคน เซลล์ที่ตายแล้วจะมีชีวิตถ้ามันมีเพื่อนบ้านอยู่สามคน ภารกิจของคุณหากคุณเลือกที่จะยอมรับมันคือการกำหนดรหัสเกมที่สั้นที่สุดในการใช้ภาษาที่คุณชื่นชอบ กฎระเบียบ: ตารางต้องมีอย่างน้อย 20x20 ตารางจะต้องพันรอบ (ดังนั้นกริดจึงเหมือนกับผิวของทอรัส) การใช้งานของคุณต้องอนุญาตให้ผู้ใช้ป้อนรูปแบบเริ่มต้นของตนเอง GoL นั้นไม่มีจุดหมายหากคุณไม่เห็นสิ่งที่เกิดขึ้นดังนั้นจะต้องมีการแสดงผลภาพของการทำงานของออโตเมติกโดยผลการเลี้ยวของแต่ละรอบจะแสดงให้เห็นนานพอที่จะมองเห็น!

7
มันคือชีวิตจิม แต่ไม่ใช่อย่างที่เรารู้
คุณอาจรู้จักเกมแห่งชีวิตของ Conwayหุ่นยนต์เซลลูล่าร์ชื่อดังที่ประดิษฐ์โดย John Conway นักคณิตศาสตร์ Lifeเป็นชุดของกฎที่ช่วยให้คุณสามารถจำลองกระดานสองมิติได้ กฎจะตัดสินว่าเซลล์ใดบนกระดานอยู่และเซลล์ใดจะตาย ด้วยจินตนาการคุณสามารถพูดได้ว่าLifeเป็นเกมที่ไม่มีผู้เล่นคนหนึ่ง: เกมที่มีวัตถุประสงค์เพื่อค้นหารูปแบบที่มีพฤติกรรมที่น่าสนใจเช่นเครื่องร่อนที่มีชื่อเสียง เกมที่ไม่มีผู้เล่น ... จนถึงทุกวันนี้ คุณต้องเขียนโปรแกรมที่เล่น Game of Life - และเล่นเพื่อให้ชนะ King of the Hill-style แน่นอนว่าคู่ต่อสู้ของคุณพยายามทำเช่นเดียวกัน ผู้ชนะคือทั้งบ็อตสุดท้ายที่มีเซลล์ใด ๆ สดหรือผู้เล่นที่มีเซลล์สดมากที่สุดหลังจาก 10,000 รุ่น กฎของเกม กฎนั้นใกล้เคียงกับชีวิตปกติ (B3 / S23): เซลล์มีชีวิตที่มีเพื่อนบ้านที่เป็นมิตรน้อยกว่าสองคนเสียชีวิตจากความอดอยาก เซลล์ที่มีชีวิตซึ่งมีเพื่อนบ้านที่เป็นมิตรสองหรือสามคนยังมีชีวิตอยู่ เซลล์ที่มีชีวิตซึ่งมีเพื่อนบ้านที่เป็นมิตรมากกว่าสามคนเสียชีวิตเนื่องจากมีประชากรมากเกินไป เซลล์ที่ตายแล้วตรงกับสามเพื่อนบ้านของผู้เล่นคนเดียวกันมามีชีวิตอยู่เพื่อต่อสู้กับผู้เล่นที่มีให้ไม่มีเพื่อนบ้านศัตรู ... แต่หลังจากแต่ละรุ่นทั้งคุณและคู่ต่อสู้จะมีโอกาสเข้าแทรกแซง คุณสามารถตื่นได้มากถึง 30 เซลล์เพื่อต่อสู้เพื่อคุณ (ผู้ที่ไปก่อนจะถูกตัดสินใจโดยเซิร์ฟเวอร์) กระดานเป็นเซลล์สี่เหลี่ยมจัตุรัส (x, y) ช่องสี่เหลี่ยมทั้งหมดจะเริ่มตาย เส้นขอบไม่พันกัน (นี่ไม่ใช่โลกที่มีรูปทรงพรู) และตายอย่างถาวร …

30
แสดงโลโก้ Hacker
คุณอาจเคยได้ยิน "Hacker Logo" หรือที่เรียกว่า "Hacker Emblem" ดูเหมือนว่านี้: นี่คือรูปแบบจากการจำลองทางคณิตศาสตร์ที่เรียกว่า Game of Life เครื่องร่อนเป็นรูปแบบชีวิตที่ง่ายที่สุดที่เคลื่อนไหวและเป็นที่จดจำได้ทันทีในทุกรูปแบบชีวิต ความท้าทาย ความท้าทายนั้นง่ายมาก: แสดงโลโก้ของแฮ็กเกอร์ สิ่งนี้ถูกกำหนดเป็น: ตาราง 3x3 ที่มีเส้นขอบพื้นหลังสีขาวและเส้นกริดสีเทา จุดสีดำห้าจุดจัดเรียงในรูปแบบเครื่องร่อน GoL ไม่มีอะไรอีกแล้ว. กฎระเบียบ จุดสีดำจะต้องเติม40% - 80%ของกล่องกริดแต่ละอัน คุณจะแสดงสัญลักษณ์ที่มีผลกราฟิก แต่ไม่มีศิลปะ ASCII การส่งออกต้องมีอย่างน้อย30x30 พิกเซล ผลลัพธ์จะต้องมีสีเทาดำและขาวเท่านั้น กล่องกริดแต่ละตัวในกริดจะมีขนาดเท่ากัน ตารางจะเป็นตาราง 3x3 ปกติ คุณไม่สามารถดึงโลโก้จากอินเทอร์เน็ตหรือระบบไฟล์ของคุณ โปรแกรมของคุณจะแสดงโลโก้บนหน้าจอ / หน้าต่างว่าง ถ้ามันยุติก็ต้องทำตามปกติ โปรดทราบว่า "จุด" ไม่ได้แปลว่า "แวดวง" "จุด" เป็นรูปทรงเรขาคณิตเดียวที่อยู่ตรงกลางของกล่องตารางที่มีพื้นผิวเดียว ตัวอย่างเช่นในขณะที่วงกลมหรือสี่เหลี่ยมจะมีคุณสมบัติเป็นจุดสองสามเหลี่ยมหรือกระดานหมากรุกจะไม่ ผู้ชนะ เนื่องจากนี่คือcode-golfคำตอบที่สั้นที่สุดในแต่ละภาษาจะเป็นผู้ชนะ! …

3
รหัสที่ใช้ Game of Life ด้วยตัวเอง
เขียนโค้ดสี่เหลี่ยมสองบล็อกแต่ละตัวกว้างwและสูงhซึ่งใช้Game of Life ของ Conwayเมื่อจัดเรียงในตาราง ( wและhอาจเป็นจำนวนเต็มบวกใด ๆ ) ตัวอย่างเช่นบล็อกโค้ดสองตัวอาจเป็น: ( w = 3, h = 2 ไม่ใช่โค้ดจริง) XX| --+ และ | --+ ปฏิบัติต่อบล็อกแรกราวกับว่ามันเป็นเซลล์ "มีชีวิต" ในเกมแห่งชีวิตและบล็อกที่สองราวกับว่ามันเป็นเซลล์ "ตาย" ตอนนี้จัดเรียงสำเนาของบล็อกทั้งสองนี้เป็นโปรแกรมขนาดใหญ่ที่แสดงถึงตารางเกมแห่งชีวิตเช่นเครื่องร่อนนี้: | | | | | --+--+--+--+--+ | |XX| | | --+--+--+--+--+ | | |XX| | --+--+--+--+--+ |XX|XX|XX| | --+--+--+--+--+ | | | …

3
วาดภาพนิ่ง (หรือภาพเคลื่อนไหว) - วาดภาพในเกมแห่งชีวิต
คุณได้รับเมื่อป้อนรูปภาพ greyscale งานของคุณคือการหารูปแบบสแตติกหรือวนลูปในเกมแห่งชีวิตของคอนเวย์ที่มีลักษณะคล้ายกับภาพอินพุตให้ใกล้เคียงที่สุด เอาต์พุตของคุณอาจเป็นภาพนิ่งหรือภาพเคลื่อนไหววนซ้ำในบางรูปแบบที่สามารถแปลงเป็น gif ขนาดภาพที่ส่งออกควรจะเหมือนกับอินพุทและจะต้องมีเพียงพิกเซลขาวดำ หากเอาต์พุตเป็นภาพเคลื่อนไหวแต่ละเฟรมจะต้องสร้างขึ้นจากเฟรมก่อนหน้าตามกฎของเกมแห่งชีวิตโดยมีหนึ่งเซลล์ต่อพิกเซล ภาพเคลื่อนไหวจะต้องวนซ้ำโดยเฟรมแรกจะถูกสร้างจากเฟรมสุดท้ายด้วยกฎเดียวกัน หากผลลัพธ์เป็นภาพนิ่งให้ใช้กฎของเกมแห่งชีวิตกับมันจะต้องผลิตภาพเดียวกัน ซึ่งหมายความว่าไม่มีเซลล์ 'ที่มีชีวิต' อาจมีเพื่อนบ้านที่มีชีวิตมากกว่าสามคนหรือน้อยกว่าสองคนและไม่มีเซลล์ที่ 'ตาย' อาจมีเพื่อนบ้านที่มีชีวิตสามคน (โปรดทราบว่านี่เป็นพื้นเดียวกันกับภาพเคลื่อนไหวตามที่อธิบายไว้ข้างต้น แต่มีเพียงหนึ่งเฟรมเท่านั้น) กฎและการชี้แจงเพิ่มเติม: คุณ (หรือโปรแกรมของคุณ) อาจเลือกว่าเซลล์ 'มีชีวิต' จะแสดงเป็นสีขาวและ 'ตาย' เป็นสีดำหรือในทางกลับกัน นั่นคือคุณสามารถใช้รหัสนี้หรือโปรแกรมของคุณสามารถเลือกได้ตามภาพอินพุต (แต่จะต้องเหมือนกันทุกเฟรมของภาพเคลื่อนไหว) เงื่อนไขขอบเขตควรเป็นระยะซึ่งหมายความว่าเซลล์ในคอลัมน์ขวาสุดมีเพื่อนบ้านในคอลัมน์ซ้ายสุด ฯลฯ สำหรับภาพเคลื่อนไหวอัตราเฟรมขึ้นอยู่กับคุณ (หรือโปรแกรมของคุณ) ฉันจินตนาการว่าอัตราเฟรมที่เร็วจะทำงานได้ดีสำหรับการประมาณพิกเซลสีเทา โปรดโพสต์ผลลัพธ์อย่างน้อยสองรายการที่ฝังอยู่ในคำตอบของคุณ หากคุณสามารถโพสต์ผลลัพธ์จากภาพอินพุตทั้งหมดด้านล่างได้จะดีกว่า สามารถลดขนาดภาพทดสอบได้หากจำเป็นเพื่อให้ได้ gif ที่มีขนาดไฟล์เล็กพอ หากคุณต้องการเชื่อมโยงไปยังไฟล์ที่มีขนาดใหญ่ขึ้นเช่นกันก็ไม่เป็นไร หากคุณต้องการอวดอย่าลังเลที่จะค้นหาไฟล์ต้นฉบับที่มีความละเอียดสูงกว่านี้ โปรดพยายามหลีกเลี่ยงการมีพารามิเตอร์ที่สามารถควบคุมได้มากเกินไปในรหัสของคุณ - จะดีที่สุดถ้าโปรแกรมของคุณใส่ภาพเท่านั้น ข้อยกเว้นคือถ้าคุณต้องการให้พารามิเตอร์สำหรับการควบคุมจำนวนเฟรมภาพเคลื่อนไหวเนื่องจากจะมีผลต่อขนาดไฟล์ คุณสามารถใช้โปรแกรมภายนอกเพื่อเปลี่ยนรูปแบบของไฟล์อินพุตและเอาต์พุตและ / หรือคอมไพล์เฟรมเอาต์พุตเป็นภาพเคลื่อนไหวได้หากคุณต้องการ (นี่ไม่ใช่ความท้าทายในการจัดการรูปแบบไฟล์) นี่คือการประกวดความนิยมดังนั้นคำตอบที่ได้คะแนนมากที่สุดจะเป็นผู้ชนะ นี่คือภาพทดสอบที่เลือกส่วนใหญ่นำมาจากคำถามอื่น ๆ ในเว็บไซต์นี้ …

4
ชีวิตอาจมีสีสัน!
แต่ละเซลล์ในหุ่นยนต์เซลลูล่าร์ที่มีชีวิตเหมือนต้องการเพียงหนึ่งบิตในการเป็นตัวแทนเพราะมันจะมีชีวิตอยู่หรือตายไปเท่านั้น นั่นหมายความว่ามีเพียงสองสี; ค่อนข้างน่าเบื่อ. ภาพปกติมี 24 บิตต่อพิกเซล (8 ในแต่ละ RGB) ซึ่งหมายความว่าในภาพปกติที่มีพิกเซลเป็นเซลล์คุณสามารถจำลองเกมเหมือนชีวิต 24 เกมได้ในครั้งเดียว! ท้าทาย งานของคุณคือการเขียนโปรแกรมที่จะใช้กฎหนึ่งรุ่นของหุ่นยนต์เซลลูล่าร์ที่เหมือนสิ่งมีชีวิตกับภาพความลึก 24 บิต (ในรูปแบบที่รู้จักกันดีที่คุณต้องการ) และส่งออกภาพผลลัพธ์ แต่ละเลเยอร์ทั้ง 24 เลเยอร์จะใช้กฏเหมือนเหมือนชีวิตอย่างเคร่งครัดภายในเลเยอร์ของตัวเอง 24 เลเยอร์ไม่โต้ตอบซึ่งกันและกัน ด้วย ศูนย์คือเซลล์ที่ตายแล้วและเซลล์นั้นเป็นเซลล์ที่มีชีวิต เงื่อนไขขอบเขตเป็นระยะ (ก่อตัวพรู) ขนาดรูปภาพใด ๆ ควรใช้งานได้ Input / Output โปรแกรมของคุณต้องใช้เวลา 3 ข้อโต้แย้งผ่าน stdin หรือบรรทัดคำสั่ง (หรือภาษาที่ใกล้เคียงที่สุดของคุณ): ชื่อของไฟล์ภาพอินพุต สตริงของตัวเลข 0 ถึง 8 ตามลำดับที่เพิ่มขึ้นซึ่งหมายถึงเมื่อเกิดเซลล์ใหม่: ถ้าหลักdอยู่ในสตริงแล้วเซลล์ที่ตายแล้วมามีชีวิตอยู่เมื่อพวกเขามีdเพื่อนบ้านที่อยู่อาศัย ตัวอย่าง: 3เป็นเรื่องปกติของชีวิต - เซลล์ที่ตายแล้วพร้อมกับเพื่อนบ้านที่มีชีวิต …

18
ตัวเลขที่มีการหมุนสมมาตร
ได้รับจำนวนเต็มส่งออกtruthyค่าถ้ามันเป็นเช่นเดียวคว่ำลง (หมุน 180 องศา) หรือfalsyคุ้มค่าเป็นอย่างอื่น 0, 1และ8มีความสมมาตรในการหมุน 6กลายเป็น9และในทางกลับกัน ลำดับของตัวเลขที่ให้ผลลัพธ์ที่แท้จริง: OEIS A000787 0, 1, 8, 11, 69, 88, 96, 101, 111, 181, 609, 619, 689, 808, 818, 888, 906, 916, 986, 1001, 1111, 1691, 1881, 1961, 6009, 6119, 6699, 6889, 6969, 8008, 8118, 8698, 8888, 8968, 9006, 9116, 9696, 9886, 9966, …
27 code-golf  number  sequence  decision-problem  code-golf  string  parsing  c  code-golf  sorting  integer  code-golf  number  sequence  rational-numbers  graphical-output  atomic-code-golf  assembly  box-256  code-golf  geometry  tips  python  code-golf  number  sequence  arithmetic  number-theory  code-golf  ascii-art  kolmogorov-complexity  geometry  code-golf  graphical-output  code-golf  math  code-golf  grid  cellular-automata  game-of-life  code-golf  string  subsequence  code-golf  arithmetic  rational-numbers  code-golf  tips  dc  code-golf  ascii-art  kolmogorov-complexity  date  code-golf  string  primes  code-golf  string  natural-language  conversion  code-golf  sequence  code-golf  number-theory  primes  base-conversion  code-golf  math  primes  base-conversion  code-golf  ascii-art  fractal  code-golf  matrix  code-golf  math  tips  geometry  python  string  code-challenge  keyboard  code-golf  graphical-output  code-golf  string  code-golf  number  sequence  cops-and-robbers  number  sequence  cops-and-robbers 

3
เกมแห่ง arrowslits ชีวิต
พื้นหลัง ความท้าทายนี้เป็นเกียรติของapsillersผู้ชนะรางวัลNot as simple ตามหมวดหมู่ Best of PPCG 2016 ด้วยความท้าทายกล่องดนตรี 4 โน้ตของฉันสามารถเล่นเพลงนั้นได้หรือไม่? ขอแสดงความยินดี! ในหน้า "เกี่ยวกับฉัน" ผู้ใช้รายนี้มีตัวจำลองที่ประณีตมากสำหรับออโตเมติกเซลเกมแห่งชีวิต (อย่างจริงจังไปตรวจสอบออก) ในทางกลับกันคำว่าaspilleraเป็นภาษาสเปนสำหรับ "ลูกศรเรืองแสง " จากข้อเท็จจริงเหล่านี้ความท้าทายนี้เกี่ยวกับ arrowslits ใน Game of Life เกมแห่ง arrowslits ชีวิต กอลเราจะเป็นตัวแทนของลูกศรโดยเครื่องร่อนและผนังโดยลำดับของบล็อก ร่อนเดี่ยวเข้าใกล้กำแพงจากด้านบนและพยายามที่จะบินผ่านช่องว่างในกำแพง งานของคุณคือการตรวจสอบว่าเครื่องร่อนผ่านลูกศรไฟหรือชนเข้ากับผนัง อินพุต อินพุตของคุณคือตารางบิตซึ่งแสดงถึงการกำหนดค่า GoL คุณสามารถนำไปใช้ในรูปแบบที่สมเหตุสมผล (สตริงหลายบรรทัดของอักขระ ASCII ที่พิมพ์ได้สองรายการ, รายการสตริง, อาร์เรย์ 2D ของจำนวนเต็ม, อาร์เรย์ 2D ของ booleans ฯลฯ ) เพื่อความชัดเจนฉันจะใช้สตริงหลายบรรทัดของตัวละคร.#ดังต่อไปนี้ …

1
Hello World ของ Conway
มันก็มักจะกล่าวว่าที่โปรแกรมเมอร์ทุกคนควรจะสามารถที่จะเขียนโปรแกรม "Hello World" ในภาษาเขียนโปรแกรมใด ๆ หลังจากที่สายตาไม่กี่ภาษานั้น (และquicksortหลังจากสายตาอีกไม่กี่) ในขณะที่เกมแห่งชีวิตของ Conwayกำลังทัวริงเสร็จสมบูรณ์(ดังนั้นจึงถือว่าเป็นภาษาการเขียนโปรแกรมวัตถุประสงค์ทั่วไป)ปัญหานี้อธิบายได้ด้วยตนเอง: สร้าง "Hello World!" แอปพลิเคชันที่ใช้เฉพาะเกมแห่งชีวิตของ Conway! รายการที่ถูกต้องเพียงอย่างเดียวคือสถานะเริ่มต้นสำหรับเกมแห่งชีวิตของ Conway ซึ่ง: ไม่มีรูปทรงที่รู้จักคล้ายกับข้อความ "Hello World!" จะมีรูปร่างที่รู้จักคล้ายกับข้อความ "Hello World!" ภายในจำนวนรอบที่เหมาะสม (ไม่ควรใช้เวลานานกว่าสองสามนาทีในพีซีที่ดี - สิ่งนี้จะช่วยให้มีรอบพันล้านและควรจะเพียงพอ) บริเวณที่ "Hello World!" ข้อความจะปรากฏขึ้นควรจะว่างเปล่าในสถานะเริ่มต้น! (มิฉะนั้นปัญหาจะง่ายเกินไป) หากไม่มีใครจัดการได้เราอาจลดความต้องการนี้เป็น "ว่างเปล่าเป็นส่วนใหญ่" เกณฑ์การให้คะแนน: ผู้ชนะจะขึ้นอยู่กับจำนวนของการโหวตในเวลาประมาณหนึ่งสัปดาห์หลังจากการส่งครั้งแรกที่ถูกต้อง แนวทางการลงคะแนน: ผลลัพธ์ที่ประณีตและสวยงามมากขึ้นควรคุ้มค่ามากขึ้น เอาต์พุตที่มีความเสถียรในหลายรอบควรมีค่ามากกว่าหนึ่งซึ่งจางหายไปจนไม่สามารถจดจำได้ในรอบถัดไป วิธีการแก้ปัญหาถูกล็อกเข้าสู่วงจรถาวรหรือเริ่มจากรูปแบบที่น่าสนใจมีค่ามากที่สุดเพราะมันพิสูจน์การออกแบบที่ชาญฉลาดของรัฐไม่ใช่แค่การลองผิดลองถูกและข้อผิดพลาดด้วยการจำลองแบบย้อนกลับ รายการควรอยู่ในรูปแบบที่สามารถอ่านได้โดยตัวจำลองอย่างน้อยหนึ่งตัวหรือตัวจำลองออนไลน์ที่ผู้ตอบคำถามเชื่อมโยง ลิงค์ (ไปยังภาพเคลื่อนไหวหรือเครื่องมือจำลองที่ตั้งค่าเป็นสถานะเริ่มต้น) ก็เป็นที่ยอมรับเช่นกัน หากมองไม่เห็นผลลัพธ์ภายในไม่กี่รอบรายการควรระบุหลังจากที่รอบผลลัพธ์จะมองเห็นได้ แก้ไข: อาจมีความอดทนเล็กน้อยในวลีที่จะสร้าง มันอาจเป็น " Hello, …

15
โค่นล้มโดมิโน!
ขอบคุณคำถามนี้สำหรับแรงบันดาลใจบางอย่าง ในความท้าทายนี้เราจะเป็นตัวแทนของสายของแต้มเป็นสตริงของที่|, และ/ \คุณจะได้รับสายอักขระโดมิโนเป็นอินพุตและคุณต้องพิจารณาสิ่งที่พวกเขาดูเหมือนเมื่อพวกเขาได้ตัดสิน นี่คือกฎสำหรับแต้มที่ตกลงมา โดมิโนที่ยืนอยู่|, ซ้ายของโดมิโนที่ล้มลงทางซ้าย\, จะกลายเป็นโดมิโนที่ล้มลงด้วยเช่นกัน โดมิโนที่ยืนอยู่|ด้านขวาของโดมิโนที่ถูกตก/จะกลายเป็นโดมิโนที่ตกลงมาอย่างถูกต้องเช่นกัน หากโดมิโนยืนอยู่ระหว่างซ้าย\และขวาตก/โดมิโนมันจะยังคงยืนอยู่ กฎเหล่านี้จะถูกนำมาใช้ซ้ำ ๆ จนกระทั่งข้อตกลงไม่เปลี่ยนแปลงอีกต่อไป นี่คือตัวอย่างของวิธีการป้อนข้อมูลเดียวอาจมาถึงข้อสรุปของมัน |||||||\/|||||||\||\|||/||||||\||||| ||||||\\//|||||\\|\\|||//||||\\||||| |||||\\\///|||\\\\\\|||///||\\\||||| ||||\\\\////|\\\\\\\|||////\\\\||||| |||\\\\\////|\\\\\\\|||////\\\\||||| ||\\\\\\////|\\\\\\\|||////\\\\||||| |\\\\\\\////|\\\\\\\|||////\\\\||||| \\\\\\\\////|\\\\\\\|||////\\\\||||| งานของคุณคือการเขียนโค้ดที่ค้นหาและแสดงผลลัพธ์สุดท้ายของอินพุต คุณอาจสมมติว่าอินพุตนั้นถูกต้องเสมอและมีอย่างน้อย 2 ตัวอักษร นี่คือcode-golfดังนั้นคำตอบจะได้คะแนนเป็นไบต์ด้วยจำนวนไบต์ที่น้อยกว่าจะดีกว่า กรณีทดสอบ |||/|||| -> |||///// |||\|||| -> \\\\|||| |/||||\| -> |///\\\| ||/|||\| -> ||//|\\| ||\|||/| -> \\\|||//

1
นับรูปแบบเกมแห่งชีวิตทั่วไป
ภารกิจที่นี่คือการอ่านจาก.rleไฟล์Golly หรือข้อความธรรมดา (ตัวเลือกของคุณ) ที่มีชื่อไฟล์ให้ (บน STDIN หรือเป็นอาร์กิวเมนต์บรรทัดคำสั่ง) และระบุและนับรูปแบบทั่วไปในตารางที่เข้ารหัสในนั้น หรือคุณอาจเลือกที่จะมีเนื้อหาของไฟล์ที่ให้โดยตรงผ่าน STDIN แทน โปรแกรมของคุณควรจะสามารถระบุและเห็นความแตกต่างอย่างน้อยสิบห้าร่วมกับสิ่งมีชีวิตยังคงเข้มงวดและห้า oscillators ที่พบมากที่สุดรวมทั้งร่อน ขั้นตอนทั้งหมดของออสซิลเลเตอร์เหล่านี้ควรได้รับการยอมรับเช่นเดียวกับขั้นตอนทั้งสี่ของเครื่องร่อน มันควรจะออกรายการที่มีการนับครั้งสุดท้ายของแต่ละรูปแบบที่มีชื่อและปริมาณของแต่ละรูปแบบในบรรทัดที่แยกต่างหาก โปรแกรมของคุณอาจรวมอยู่ในรายการ ouput ทั้งรูปแบบเหล่านี้ทั้งหมดหรือเฉพาะรูปแบบที่พบอย่างน้อยหนึ่งรายการ รูปแบบที่เป็นส่วนหนึ่งของรูปแบบอื่น ๆ ที่นับไม่ควรนับ (ตัวอย่างเช่น 8-cell phase ของสัญญาณไม่ควรนับเป็นสองช่วงตึกและไม่ควรนับ tie-ship เป็นสองเรือรบ) คุณอาจสมมติว่าอินพุตมีความเสถียรแล้วและไม่มีรูปแบบใดที่ไม่อยู่ในชุดที่กำหนด คุณอาจสมมติว่ากริดอินพุตจะพอดีภายในกล่อง 1024x1024 นี่คือรหัสกอล์ฟดังนั้นโปรแกรมที่สั้นที่สุดชนะ คำอธิบายรูปแบบไฟล์ RLE ไฟล์ RLE มีกริดไลฟ์แบบเข้ารหัสความยาววิ่ง บรรทัดทั้งหมดที่ขึ้นต้นด้วย#ความคิดเห็นและควรละเว้น x=<width>,y=<height>,rule=<rule>ครั้งแรกที่สายไม่ว่างเปล่าที่ไม่แสดงความคิดเห็นเป็นของแบบฟอร์ม B3/S23สำหรับจุดประสงค์ของงานนี้กฎจะเป็น มันอาจมีช่องว่างที่ควรถอดก่อนประมวลผลบรรทัดนี้ (แน่นอนว่าไม่จำเป็นต้องประมวลผลบรรทัดนี้เลย) บรรทัดที่ไม่ใช่ความคิดเห็นหลังจากบรรทัดแรกควรถูกใช้เป็นสตริงเดี่ยว นี้ควรมีเพียงตัวเลขทศนิยม, ตัวละคร$, bและoและแบ่งบรรทัดและจะไม่จบลงด้วยหลัก การขึ้นบรรทัดใหม่นั้นจะถูกเพิกเฉย แต่คุณอาจคิดว่าการขึ้นบรรทัดใหม่นั้นจะไม่รบกวนสตริงของตัวเลข !นี้อาจถูกยกเลิกโดยเป็นหนึ่งเดียว bหมายถึงเซลล์ที่ตายแล้วoหมายถึงเซลล์ที่มีชีวิตและ$แสดงถึงจุดสิ้นสุดของแถว …

5
มีวัตถุแข็งหรือวัตถุนิ่ม ๆ หรือไม่
ได้รับแรงบันดาลใจจากการเปิดหนังสือ What-If อินพุตเป็นสี่เหลี่ยมผืนผ้าของช่องว่างในรูปของสตริงรายการของสตริง ฯลฯ โดยมีวัตถุที่ทำจาก#ภายใน: ######## # # ######## ### #### ### #### ### วัตถุจะไม่ตัดกันไม่สัมผัสสี่เหลี่ยม วัตถุนุ่มถูกกำหนดให้เป็นวัตถุที่ไม่ได้#อยู่ตรงกลางและเป็นเพียงเส้นขอบวัตถุแข็งคือวัตถุที่เต็มไป วัตถุที่มีความกว้างหรือความสูง<=2ถือว่ายาก วัตถุทั้งหมดมีความแข็งหรืออ่อน หากมีวัตถุแข็งมากขึ้นในการป้อนข้อมูลการส่งออก"Hard"ถ้ามากขึ้นนุ่มผลผลิต"Soft"ถ้าพวกเขามีค่าเท่ากัน, "Equal"เอาท์พุท นี่คือรหัส - กอล์ฟดังนั้นรหัสที่สั้นที่สุดในหน่วยไบต์ชนะ! กรณีทดสอบ กรณีเหล่านี้ไม่ได้ป้อนข้อมูลเต็ม แต่ควรระบุว่าแต่ละวัตถุควรเป็นอย่างไร การป้อนข้อมูลจริงจะเป็นแบบ ascii-art ที่ด้านบนของคำถาม ยาก # #### ## ## ########## ########## ########## อ่อนนุ่ม ### # # ### ################### # # # # # # ################### …
19 code-golf  ascii-art  counting  code-golf  number  grid  decision-problem  chess  code-golf  grid  graph-theory  chess  code-golf  math  geometry  code-golf  arithmetic  roman-numerals  fastest-code  code-golf  math  geometry  code-golf  string  cryptography  code-golf  number  sequence  decision-problem  code-golf  string  parsing  c  code-golf  sorting  integer  code-golf  number  sequence  rational-numbers  graphical-output  atomic-code-golf  assembly  box-256  code-golf  geometry  tips  python  code-golf  number  sequence  arithmetic  number-theory  code-golf  ascii-art  kolmogorov-complexity  geometry  code-golf  graphical-output  code-golf  math  code-golf  grid  cellular-automata  game-of-life  code-golf  string  subsequence  code-golf  arithmetic  rational-numbers  code-golf  tips  dc  code-golf  ascii-art  kolmogorov-complexity  date  code-golf  string  primes  code-golf  string  natural-language  conversion  code-golf  sequence  code-golf  number-theory  primes  base-conversion  code-golf  math  primes  base-conversion  code-golf  ascii-art  fractal  code-golf  matrix  code-golf  math  tips  geometry  python  string  code-challenge  keyboard  code-golf  graphical-output  code-golf  string  code-golf  number  sequence  cops-and-robbers  number  sequence  cops-and-robbers 

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