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

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

5
เส้นทางของแผนที่ที่ถูกเนรเทศ
คำถามนี้จะมีกลไกจากเกม "Path Of Exile" ในเกมนี้มีสิ่งที่เรียกว่าMAPSพวกเขาเป็นไอเท็มที่คุณสามารถใช้เพื่อเปิดพื้นที่ระดับสูงคุณสามารถรวม 3 คนเพื่อรับการอัปเกรดซึ่งจะเป็น ภารกิจของการท้าทายนี้ ชุดการอัพเกรดมีดังนี้: A Crypt Map 68 -> Sewer Map E Dungeon Map 68 -> Channel Map I Grotto Map 68 -> Thicket Map O Dunes Map 68 -> Mountain Ledge Map U Pit Map 68 -> Cemetery Map T Tropical Island Map 68 …

2
เล่นเกม 4x4 Hex สมบูรณ์แบบ
พื้นหลัง Hexเป็นเกมกลยุทธ์นามธรรมผู้เล่นสองคนที่เล่นบนK×Kรูปสี่เหลี่ยมขนมเปียกปูนของแผ่นกระเบื้องหกเหลี่ยม สองฝั่งตรงข้ามของรูปสี่เหลี่ยมขนมเปียกปูนเป็นสีขาวและอีกสองสีดำและผู้เล่นสองคนสีดำและสีขาวผลัดกันวางสัญลักษณ์ของสีของพวกเขาบนกระเบื้องที่ว่าง ผู้เล่นคนแรกที่สร้างเส้นทางระหว่างฝั่งตรงข้ามของสีเป็นผู้ชนะ เป็นที่ทราบกันดีว่าเกมไม่สามารถจบด้วยการเสมอกันและผู้เล่นคนแรกมีกลยุทธ์ในการชนะโดยไม่คำนึงถึงขนาดของบอร์ด (ดูรายละเอียดในหน้า Wikipedia) งาน ในความท้าทายนี้เราจะกำหนดขนาดกระดานที่K = 4และแสดงกระดานเป็นตารางต่อไปนี้ เส้นหนาแสดงถึงกระเบื้องที่อยู่ติดกัน งานของคุณคือสร้างกลยุทธ์ที่ชนะสำหรับผู้เล่นคนแรกซึ่งคุณสามารถเลือกให้เป็นสีดำหรือขาว ซึ่งหมายความว่าสิ่งใดก็ตามที่ผู้เล่นฝ่ายตรงข้ามทำตามกฏหมายการเล่นของคุณจะต้องได้รับชัยชนะ การป้อนข้อมูลของคุณคือตำแหน่งเกม (การจัดเรียงโทเค็นบนกระดาน) และผลลัพธ์ของคุณเป็นการเคลื่อนไหวที่ถูกกฎหมายในรูปแบบที่ระบุด้านล่าง หากคุณต้องการค้นหากลยุทธ์การชนะด้วยตัวคุณเองอย่าอ่านสปอยเลอร์นี้: โครงร่างของกลยุทธ์การชนะที่เป็นไปได้โดยสมมติว่าสีขาวเป็นอันดับแรก ขั้นแรกให้เลือก 5. หลังจากนั้นหากคุณมีเส้นทางจาก 5 ไปยังแถวด้านล่างหรือสีดำเลือก 0 หรือ 1 ที่จุดใดก็ได้ให้ตอบกลับโดยเลือกว่า 0 หรือ 1 ว่างเท่าไร หากสีดำเลือก 9 หรือ 13 ให้เลือก 10 จากนั้นค่าใดก็ตามที่ 14 หรือ 15 จะว่าง หากสีดำไม่ได้เลือก 9, 13 หรือ 14 ให้เลือก 9 …

8
พิมพ์ธงอังกฤษ!
แรงบันดาลใจจากการพิมพ์ธงชาติอเมริกัน! นี่เป็นสำเนาโดยตรง แต่มีธงชาติอังกฤษเนื่องจากมีความสมมาตร แต่ยังซับซ้อนอยู่! ความท้าทายของคุณคือการผลิต ASCII-Art ดังต่อไปนี้ในเวลาไม่กี่ไบต์! หมุนหัว / หน้าจอ (ไม่ใช่ทั้งคู่!) 90 องศาเพื่อดูอย่างถูกต้อง __________________________________________ |\ \XXXXXXXXXXXX 000000 XXXXXXXXXXXX//0/| |0\ \XXXXXXXXXXX 000000 XXXXXXXXXXX//0/ | |\0\ \XXXXXXXXXX 000000 XXXXXXXXXX//0/ | |\\0\ \XXXXXXXXX 000000 XXXXXXXXX//0/ /| |X\\0\ \XXXXXXXX 000000 XXXXXXXX//0/ /X| |XX\\0\ \XXXXXXX 000000 XXXXXXX//0/ /XX| |XXX\\0\ \XXXXXX 000000 XXXXXX//0/ /XXX| |XXXX\\0\ \XXXXX …

2
ความน่าจะเป็น - คุณไปได้สูงแค่ไหน?
ก่อนหน้านี้ฉันถามคำถามเกี่ยวกับวิธีคำนวณความน่าจะเป็นได้อย่างรวดเร็วและแม่นยำ อย่างไรก็ตามเห็นได้ชัดว่ามันง่ายเกินไปที่จะให้โซลูชันแบบปิด! นี่คือรุ่นที่ยากขึ้น งานนี้เป็นเรื่องเกี่ยวกับการเขียนโค้ดเพื่อคำนวณความน่าจะเป็นตรงและรวดเร็ว ผลลัพธ์ควรเป็นความน่าจะเป็นที่แม่นยำที่เขียนเป็นเศษส่วนในรูปแบบที่ลดลงมากที่สุด นั่นคือไม่ควรเอาท์พุท4/8แต่จะดี1/2กว่า สำหรับจำนวนเต็มบวกnพิจารณาสตริงสุ่มอย่างสม่ำเสมอของ 1s และ -1s ของความยาวnและเรียกมันว่า A ตอนนี้เชื่อมต่อกับAสำเนาของตัวเอง นั่นคือA[1] = A[n+1]ถ้าการจัดทำดัชนีจาก 1 A[2] = A[n+2]และอื่น ๆ ตอนนี้มีความยาวA 2nทีนี้ลองพิจารณาความยาวสตริงที่สองแบบสุ่มnซึ่งมีnค่าแรกคือ -1, 0 หรือ 1 ที่มีความน่าจะเป็น 1/4, 1/2, 1/4 แต่ละอันและเรียกมันว่า B ตอนนี้พิจารณาสินค้าด้านในของBที่มีแตกต่างกันA[1+j,...,n+j]j =0,1,2,... n=3ตัวอย่างเช่นพิจารณา ค่าที่เป็นไปได้AและBอาจจะเป็นและA = [-1,1,1,-1,...] B=[0,1,-1]ในกรณีนี้เป็นครั้งแรกผลิตภัณฑ์ชั้นสองเป็นและ02 งาน สำหรับแต่ละjเริ่มต้นด้วยj=1รหัสของคุณควรส่งออกน่าจะเป็นที่ทุกคนแรกผลิตภัณฑ์ภายในเป็นศูนย์สำหรับทุกj+1n=j,...,50 คัดลอกตารางที่ผลิตโดย Martin Büttnerเพราะj=1เรามีผลลัพธ์ตัวอย่างต่อไปนี้ n P(n) 1 1/2 2 …

5
นับจำนวนคำไขว้
พิจารณากริดปริศนาอักษรไขว้มาตรฐาน 15 × 15 ต่อไปนี้ เราสามารถแสดงสิ่งนี้ในรูปแบบ ASCII โดยใช้#สำหรับบล็อกและ(ช่องว่าง) สำหรับสี่เหลี่ยมสีขาว # # # # # # # ### ## ## ## # # # # ## ## ## ### # # # # # # # ให้กริดไขว้ในรูปแบบศิลปะ ASCII ด้านบนกำหนดจำนวนคำ (ตารางด้านบนมี 78 คำเกิดขึ้นเป็นปริศนานิวยอร์กไทม์สของวันจันทร์ ) คำคือกลุ่มของช่องว่างที่ต่อเนื่องกันสองช่องขึ้นไปที่ทำงานในแนวตั้งหรือแนวนอน คำเริ่มต้นและสิ้นสุดด้วยทั้งบล็อกหรือขอบของตารางและมักจะวิ่งจากบนลงล่างหรือจากซ้ายไปขวาไม่เคยทแยงมุมหรือย้อนหลัง โปรดทราบว่าคำต่างๆสามารถขยายความกว้างทั้งหมดของตัวต่อปริศนาได้เช่นเดียวกับในแถวที่หกของตัวต่อด้านบน คำไม่จำเป็นต้องเชื่อมต่อกับคำอื่น รายละเอียด ข้อมูลที่ป้อนจะเป็นรูปสี่เหลี่ยมผืนผ้าที่มีอักขระ#หรือ(ช่องว่าง) โดยมีแถวคั่นด้วยบรรทัดใหม่ ( …

5
คำนวณความน่าจะเป็นอย่างแน่นอนและรวดเร็ว
[นี่เป็นคำถามจากคู่ค้าเพื่อคำนวณความน่าจะเป็น ] งานนี้เป็นเรื่องเกี่ยวกับการเขียนโค้ดเพื่อคำนวณความน่าจะเป็นตรงและรวดเร็ว ผลลัพธ์ควรเป็นความน่าจะเป็นที่แม่นยำที่เขียนเป็นเศษส่วนในรูปแบบที่ลดลงมากที่สุด นั่นคือไม่ควรเอาท์พุท4/8แต่จะดี1/2กว่า สำหรับจำนวนเต็มบวกnพิจารณาสตริงสุ่มอย่างสม่ำเสมอของ 1s และ -1s ของความยาวnและเรียกมันว่า A ตอนนี้เชื่อมต่อกับAค่าแรก นั่นคือA[1] = A[n+1]ถ้าการจัดทำดัชนีจาก 1. ในขณะนี้มีความยาวA n+1ทีนี้ลองพิจารณาความยาวสตริงที่สองแบบสุ่มnซึ่งมีnค่าแรกคือ -1, 0 หรือ 1 ที่มีความน่าจะเป็น 1/4, 1/2, 1/4 แต่ละอันและเรียกมันว่า B ตอนนี้พิจารณาผลิตภัณฑ์ภายในA[1,...,n]และBและสินค้าภายในของและA[2,...,n+1]B n=3ตัวอย่างเช่นพิจารณา ค่าที่เป็นไปได้AและBอาจจะเป็นและA = [-1,1,1,-1] B=[0,1,-1]ในกรณีนี้ผลิตภัณฑ์ทั้งสองด้านมีและ02 รหัสของคุณจะต้องแสดงผลความน่าจะเป็นที่ผลิตภัณฑ์ทั้งสองนั้นมีค่าเป็นศูนย์ คัดลอกตารางที่ผลิตโดย Martin Büttnerเรามีผลลัพธ์ตัวอย่างต่อไปนี้ n P(n) 1 1/2 2 3/8 3 7/32 4 89/512 5 269/2048 …

4
เบี้ยมากเกินไปบนกระดานหมากรุก
เมื่อกำหนดจำนวนเต็ม 2n ให้ค้นหาจำนวนวิธีที่เป็นไปได้ที่เบี้ยสีดำ 2n ^ 2 และเบี้ยสีขาว 2n ^ 2 สามารถจัดวางบนกระดานหมากรุก 2n โดย 2n โดยที่จำนำไม่ได้โจมตีอีก โรงรับจำนำสีดำสามารถโจมตีโรงรับจำนำสีขาวเท่านั้นและในทางกลับกัน กฎการโจมตีตามปกติของหมากรุกคือจำนำสีขาวจู่โจมในแนวทแยงมุมด้านหน้าทันทีและจำนำโจมตีสี่เหลี่ยมจัตุรัสสีดำทันทีทแยงมุมย้อนหลัง (เท่าที่เห็นโดยผู้สังเกตการณ์สีขาว) การหมุนทั้งหมดการสะท้อนกลับนับเป็นความแตกต่าง โปรแกรมที่สามารถส่งออกการกำหนดค่าที่เป็นไปได้ทั้งหมดสำหรับค่าสูงสุด 2n ใน 120 วินาทีชนะ (ยินดีต้อนรับทุกโปรแกรม) ตัวอย่างเช่นโปรแกรมของอลิซสามารถจัดการได้มากถึง n = 16 ภายใน 120 วินาทีในขณะที่บ๊อบสามารถจัดการได้มากถึง n = 20 ภายในเวลาเดียวกัน บ๊อบชนะ แพลตฟอร์ม: Linux 2.7GHz @ 4 CPUs

2
เยี่ยมชมตัวติดตามการดริฟท์แต่ละตัว
งานของคุณคือการเปลี่ยนแบตเตอรี่ในอุปกรณ์ติดตามปลาที่ลอยอยู่ในเวลาอันสั้น คุณต้องออกจากฐานของคุณในเฮลิคอปเตอร์ฐานและเยี่ยมชมแต่ละตัวติดตามหนึ่งครั้งจากนั้นกลับไปที่ฐาน การค้นหาเส้นทางที่เหมาะสมนั้นเป็นที่รู้กันดีว่ายาก แต่ก็มีความยากลำบากเพิ่มขึ้น! ตัวติดตามแต่ละตัวจะมีความเร็วลอย (ซึ่งจะถือว่าเป็นค่าคงที่สำหรับวัน) นี่คือปัญหาพนักงานขายเดินทางมาตรฐานที่เพิ่มความท้าทายในการย้ายโหนด มันควรจะง่ายต่อการค้นหาทัวร์ที่ถูกต้อง ความท้าทายหลักคือการพัฒนาอัลกอริทึมเพื่อค้นหาทัวร์ที่เหมาะสมที่สุด ฉันคาดการณ์ว่าจะไม่สามารถหาทัวร์ที่สมบูรณ์แบบด้วยปัจจุบัน N = 300 (แต่ฉันชอบที่จะพิสูจน์ว่าผิด) กฎระเบียบ โปรแกรมของคุณจะได้รับสตริงข้อมูลตัวติดตามใน STDIN หรือผ่านอาร์กิวเมนต์บรรทัดคำสั่ง คุณควรค้นหาเส้นทางที่เข้าชมแต่ละตัวติดตามอย่างแน่นอนหนึ่งครั้งและกลับไปที่ฐาน ผลลัพธ์ควรเป็นรายการที่คั่นด้วย white space ของ tracker ID: เวลาคู่ ตำแหน่งจะถูกระบุในหน่วยเซนติเมตร (ซม.) เวลาถูกวัดในหน่วยวินาทีที่เริ่มต้นด้วย t = 0 ความเร็วจะถูกกำหนดในหน่วยเซนติเมตร / วินาที รหัสติดตามแต่ละอันคือ 1 ถึง 8 ตัวอักษรตัวพิมพ์ใหญ่ ฐานที่มี ID "ฐาน" (0,0)ตั้งอยู่ที่ ค่าตัวเลขทั้งหมดสำหรับอินพุตและเอาต์พุตใช้จำนวนเต็มที่ลงนามแล้ว อินพุตเป็นช่องว่างอย่างน้อยหนึ่งรายการหรือตัวแยกแทร็คสแลช แต่ละติดตามจะมีID:x,y,vx,vyรูปแบบ (เช่นA:566,-344,-5,11) ที่เวลา t, …

3
โดมิโนเอียงเหนือ
งาน เขียนโปรแกรมที่อ่านจำนวนเต็มสามจำนวนm , nไม่ว่าจาก STDIN หรือเป็นอาร์กิวเมนต์บรรทัดคำสั่งพิมพ์การเอียงที่เป็นไปได้ทั้งหมดของขนาดสี่เหลี่ยมผืนผ้าm × nคูณ2 × 1และ1 × 2และในที่สุดก็ถึงจำนวนการเอียงที่ถูกต้อง Dominos ของแต่ละการเรียงต่อกันจะต้องมีเครื่องหมายสองขีด ( -) สำหรับ2 × 1และสองแถบแนวตั้ง ( |) สำหรับ1 × 2 Dominos แต่ละการเรียงต่อกัน (รวมถึงอันสุดท้าย) จะต้องตามด้วยตัวป้อนบรรทัด เพื่อจุดประสงค์ในการให้คะแนนคุณต้องยอมรับการตั้งค่าสถานะจาก STDIN หรือเป็นอาร์กิวเมนต์บรรทัดคำสั่งที่ทำให้โปรแกรมของคุณพิมพ์เฉพาะจำนวนการเอียงที่ถูกต้อง แต่ไม่ใช่การเอียง โปรแกรมของคุณอาจมีขนาดไม่เกิน 1024 ไบต์ มันจะต้องมีการทำงานสำหรับปัจจัยการผลิตทั้งหมดเช่นว่าม. × n ≤ 64 (ได้แรงบันดาลใจจากพิมพ์โดมิโนเอียงของสี่เหลี่ยมผืนผ้า 4x6ทั้งหมด) ตัวอย่าง $ sdt 4 2 ---- ---- ||-- …

12
การผสมอักขระในสตริง
คุณต้องเขียนฟังก์ชั่น / โปรแกรมที่จะเข้าผ่านทางstdin/ อาร์กิวเมนต์บรรทัดคำสั่ง / stdoutอาร์กิวเมนต์ของฟังก์ชันผสมขึ้นตัวอักษรในสตริงแล้วออกสตริงสุดท้ายผ่านทาง การป้อนข้อมูลครั้งแรกจะมีสตริง (ไม่ว่างหรือnull) ช่องว่างแล้วจำนวนคู่ของตัวเลขที่ไม่เป็นลบทั้งหมดคั่นด้วยช่องว่าง หากอินพุตถูกใช้ผ่านอาร์กิวเมนต์ของฟังก์ชันสตริงจะเป็นหนึ่งในอาร์กิวเมนต์ในขณะที่จำนวนเต็มซึ่งคั่นด้วยช่องว่างจะเป็นอีกตัวหนึ่ง คุณต้องสลับอักขระของสตริงที่ดัชนีที่สอดคล้องกับคู่ของตัวเลขติดต่อกัน ตัวอย่างเช่น Hello_world! 0 6 จะต้องส่งผลให้ wello_Horld! สมมติฐาน คุณอาจเลือกระหว่างการจัดทำดัชนีแบบอิง 0 และ 1 และอาจคิดว่าดัชนีที่กำหนดจะอยู่ในช่วงเสมอ สตริงจะต้องไม่ยาวเกิน 100 ตัวอักษรและจะมีเพียงอักขระ ASCII ในช่วง!ถึง~(รหัสตัวอักษร 0x21 ถึง 0x7E รวม) ดูตาราง ASCIIสำหรับการอ้างอิง ดัชนีสองคู่ในคู่อาจเหมือนกัน (ในกรณีนี้ไม่มีการสลับในขั้นตอนนั้น) เกณฑ์การให้คะแนน นี่คือรหัสกอล์ฟดังนั้นการส่งที่สั้นที่สุด (เป็นไบต์) ชนะ กรณีทดสอบ Hello_world! 0 6 => wello_Horld! First 1 2 1 …
10 code-golf  string 

30
ตัวนับเลขฐานสิบหก
เลขฐานสิบหกเป็นระบบฐานนับ 16 ที่จะไปจากการ0 fงานของคุณคือสร้างตัวนับที่จะแสดงตัวเลขเหล่านี้ ตัวอย่าง: $ python counter.py 1 2 3 4 5 6 7 8 9 a b c d e f 10 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f 20 21 22 23 24 25 26 27 28 29 2a …

1
การปูกระเบื้องเรียบง่ายที่สุดของพื้น
คุณควรเขียนโปรแกรมหรือฟังก์ชั่นที่รับสตริงที่อธิบายถึงพื้นเป็นอินพุตและเอาต์พุตหรือส่งคืนพื้นที่ของการเรียงเมตาที่ง่ายที่สุดซึ่งสามารถสร้างรูปแบบที่กำหนดของพื้นได้ พื้นเป็นส่วนหนึ่งของตารางสี่เหลี่ยม กระเบื้องสี่เหลี่ยมทุกแผ่นมีสีฟ้าหรือดำ (แสดงโดยaและbในอินพุต) ตัวอย่างชั้น: aaaa ababab aaaaa meta-tiling ที่ถูกสร้างขึ้นจากNจากMสี่เหลี่ยม meta-กระเบื้องสี่เหลี่ยมสีฟ้าและสีดำ meta-tiles ที่ใช้เหมือนกันกับการแปล (คุณไม่สามารถหมุนหรือมิเรอร์) หากด้านข้างของแผ่นเมตาทั้งสองมีการเชื่อมต่อพวกเขาควรเชื่อมต่อตามความยาวทั้งหมดของพวกเขา (เช่นแผ่นกระเบื้องเมตาพื้นที่ในลักษณะคล้ายกริด) ตัวอย่าง meta-tile: ba aa และการปูกระเบื้องเมตาสร้างโดย: . . . babababa aaaaaaaa ... babababa ... aaaaaaaa babababa aaaaaaaa . . . การเรียงข้อมูลเมตานี้จะสร้างชั้นที่แสดงอยู่ด้านบนเมื่อตัวอักษรซ้ายแสดง: . . . ******** ***aaaa* ... *ababab* ... *aaaaa** ******** ******** . . . …
10 code-golf  grid  tiling 

2
วันที่อะไรอีกครั้ง
ในเว็บไซต์ของฉันผู้ใช้ป้อนวันเดือนปีเกิดในรูปแบบxx.xx.xx- ตัวเลขสองหลักสามตัวคั่นด้วยจุด น่าเสียดายที่ฉันลืมบอกผู้ใช้ว่าต้องใช้รูปแบบใด ทั้งหมดที่ฉันรู้คือส่วนหนึ่งใช้สำหรับเดือนหนึ่งสำหรับวันที่และอีกหนึ่งสำหรับปี ปีแน่นอนในศตวรรษที่ 20 (1900-1999) ดังนั้นรูปแบบวิธีการ31.05.75 31 May 1975นอกจากนี้ฉันสมมติว่าทุกคนใช้ปฏิทินเกรโกเรียนหรือจูเลียน ตอนนี้ฉันต้องการผ่านฐานข้อมูลของฉันเพื่อล้างความยุ่งเหยิง ฉันต้องการเริ่มต้นด้วยการจัดการกับผู้ใช้ที่มีวันที่คลุมเครือมากที่สุดนั่นคือผู้ที่ช่วงวันที่เป็นไปได้ที่ใหญ่ที่สุด ตัวอย่างเช่นวันที่08.27.53หมายถึง27 August 1953ในปฏิทิน Gregorian หรือ Julian วันที่ในปฏิทินจูเลียนเป็น 13 13 daysวันในภายหลังดังนั้นช่วงเป็นเพียง ในทางตรงกันข้ามสัญกรณ์01.05.12สามารถอ้างถึงวันที่เป็นไปได้มากมาย เร็วที่สุดเท่าที่เป็นและล่าสุดคือ12 May 1901 (Gregorian) ช่วงคือ1 May 1912 (Julian)4020 days กฎระเบียบ อินพุตเป็นสตริงในรูปแบบxx.xx.xxโดยที่แต่ละฟิลด์เป็นตัวเลขสองหลักและไม่มีการเติมเบาะ เอาต์พุตคือจำนวนวันในช่วง คุณสามารถสันนิษฐานได้ว่าอินพุตจะเป็นวันที่ที่ถูกต้องเสมอ คุณไม่สามารถใช้ฟังก์ชันวันที่หรือปฏิทินในตัว รหัสที่สั้นที่สุด (เป็นไบต์) ชนะ Testcases 01.00.31 => 12 29.00.02=> 0(ความเป็นไปได้เพียงอย่างเดียวคือ29 February 1900 (Julian)) …
10 code-golf  date 

4
สั่งซื้อและความโกลาหลและ Codegolf
คำสั่งซื้อและความโกลาหลเป็นรูปแบบของ Tic-Tac-Toe ที่เล่นบนกระดาน 6x6 สิ่งที่ทำให้เกมมีความโดดเด่นอย่างไรก็ตามผู้เล่นทั้งสองสามารถวาง X หรือ O! เทิร์นแต่ละครั้ง (เริ่มต้นด้วยคำสั่งซื้อ) ผู้เล่นวาง X หรือ O ในช่องว่างใด ๆ การชนะนั้นง่ายมาก คำสั่งซื้อจะชนะหากมี 5 Xs หรือ Os (แนวตั้งแนวนอนหรือแนวทแยงมุม) ในแถวบนกระดาน ความโกลาหลชนะหากบอร์ดเต็มและไม่มีสตริง 5 X หรือ OS บนกระดาน งานของคุณ? เพราะนี่คือProgramming Puzzles และ Code Golf คุณจะเขียนโปรแกรมเกมและเล่นกอล์ฟ กฎระเบียบ คุณต้องยอมรับอินพุตเป็นx y tตำแหน่งxและyพิกัดและtเป็นชนิดไทล์ ( XหรือO) พิกัดเริ่มต้นด้วย0 0ที่มุมบนซ้ายและเพิ่มขึ้นเป็น5 5(มุมล่างขวา) คุณต้องยอมรับที่qจะออกและพิมพ์INVALIDถ้าผู้ใช้ป้อนพิกัดที่ไม่ถูกต้อง, ไทล์, อินพุตใด ๆ …

3
คอมไพเลอร์ Brainfuck แบบสุ่ม
Joe เป็นนักพัฒนา BF โดยเฉลี่ยของคุณ เขากำลังจะตรวจสอบการเปลี่ยนแปลงรหัสของที่เก็บของพวกเขาเมื่อเขาได้รับโทรศัพท์จากเจ้านายของเขา "โจ! เครื่องของลูกค้าใหม่เสีย! ตัวแปล brainfuck ตั้งค่าเซลล์ทั้งหมดให้เป็นค่าสุ่มก่อนที่โปรแกรมจะทำงานไม่มีเวลาแก้ไขรหัสของคุณจะต้องจัดการกับมัน" โจไม่ได้คิดมากและกำลังจะเขียนโปรแกรมเพื่อกำหนดล้านเซลล์แรกให้เป็นศูนย์เมื่อหัวหน้าของเขาขัดจังหวะเขาอีกครั้ง - "... และไม่คิดที่จะใช้กำลังดุร้ายรหัสจะต้อง เล็กที่สุด " ตอนนี้คุณต้องช่วยโจผู้น่าสงสาร! ข้อมูลจำเพาะ คุณจะได้รับรหัส brainfuck ที่ถูกต้องเป็นข้อมูลเข้า โปรแกรมของคุณจะแก้ไขโค้ดเพื่อให้สามารถทำงานกับล่าม brainfuck แบบสุ่ม ซึ่งหมายความว่าก่อนการเรียกใช้งานโปรแกรมเซลล์สามารถกำหนดเป็นค่าใดก็ได้ โปรแกรมใหม่ควรมีพฤติกรรมเหมือนกันทุกประการ ล่ามจะมีค่าสูงสุดของเซลล์ 255 ด้วยการห่อและเทปความยาวไม่ จำกัด เกณฑ์การให้คะแนน คะแนนของคุณเป็น10 เท่าของขนาดคอมไพเลอร์ไบต์บวกผลรวมของขนาดกรณีทดสอบ เห็นได้ชัดว่าได้คะแนนต่ำสุดเพื่อลดผลกระทบจากการเพิ่มประสิทธิภาพของกรณีทดสอบฉันขอสงวนสิทธิ์ในการเปลี่ยนแปลงกรณีทดสอบหากฉันสงสัยอะไรและอาจจะทำได้ก่อนเลือกผู้ชนะ กรณีทดสอบ (ฉันได้รับสิ่งเหล่านี้จากหน้า esolangsและหน้าเว็บนี้: http://www.hevanet.com/cristofd/brainfuck/ ) ขอขอบคุณ @Sparr สำหรับกรณีทดสอบครั้งสุดท้าย สวัสดีชาวโลก: ++++++++[>++++[>++>+++>+++>+<<<<-]>+>+>->>+[<]<-]>>.>---.+++++++..+++.>>.<-.<.+++.------.--------.>>+.>++. ย้อนกลับอินพุต: >,[>,]<[.<] พลังของสอง (สตรีมไม่สิ้นสุด): >++++++++++>>+<+[[+++++[>++++++++<-]>.<++++++[>--------<-]+<<]>.>[->[ <++>-[<++>-[<++>-[<++>-[<-------->>[-]++<-[<++>-]]]]]]<[>+<-]+>>]<<] …

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