3
แบ่งอย่างรวดเร็วใน Manufactoria
พื้นหลัง Manufactoriaถูกวางตลาดเป็นเกม แต่เราโค้ดนักกอล์ฟสามารถดูได้ว่ามันคืออะไร: ภาษาโปรแกรมสองมิติ ภาษาการเขียนโปรแกรม Manufactoria มีพื้นฐานมาจากคิวเดียวซึ่งมีชุดของเครื่องหมายที่มีสีสัน ตัวชี้คำสั่งเคลื่อนที่ไปรอบ ๆ กระดานเกมโดยใช้สายพานลำเลียงและพบชุดของนักเขียนและกิ่งก้านที่อ่านและเขียนไปยังคิว ภาษานั้นง่ายต่อการเข้าใจดังนั้นวิธีที่เร็วที่สุดในการเรียนรู้คือเล่นสองสามระดับแรกของเกม (เชื่อมโยงด้านบน) ท้าทาย ความท้าทายของคุณคือการสร้างโปรแกรมที่สามารถแบ่งจำนวนหนึ่งด้วยหมายเลขอื่นในเวลาน้อยที่สุด อินพุตไปยังโปรแกรมจะเป็นสตริงของตัวทำเครื่องหมาย X blue ตามด้วยเครื่องหมาย Y แดง เอาต์พุตที่ต้องการจะเป็นสตริงของเครื่องหมายสีแดงที่มีความยาว X / Y บอร์ดเกมที่จะใช้พบได้ในระดับการแข่งขันอย่างเป็นทางการนี้: http://pleasingfungus.com/Manufactoria/?ctm=Divide_and_Conquer;Input_will_be_X_blues_followed_by_Y_reds,_output_X/Y_reds;bbbbbbrr:rrr|bbbrrr:r|bbbbr:rrrr|r:|bbbbbbbbbbbbrrrr:rrr|bbbbbbbbbbbbrrr:rrrr|bbbbbbbbbrrr:rrr|bbbbbbbbbbrr: rrrrr; 13; 3; 0 มันคือ 13x13 (ขนาดสูงสุด) และติดตั้งการทดสอบที่ถูกต้องไว้ล่วงหน้าแล้ว (ดูหัวข้อการให้คะแนน) เกณฑ์การให้คะแนน คะแนนของโปรแกรมคือระยะเวลาทั้งหมดที่ใช้ในการผ่านการทดสอบทั้งหมดในระดับการแข่งขันอย่างเป็นทางการ เวลาทั้งหมดถูกกำหนดบนหน้าจอระดับที่สมบูรณ์ ขณะทำการทดสอบคุณจะต้องใช้ตัวเลื่อนเร่งความเร็ว 50x ที่ด้านล่างซ้ายเพื่อรับผลลัพธ์อย่างรวดเร็ว (การเร่งความเร็วเวลาไม่มีผลต่อคะแนน) นี่คือรายการปัญหาการหารที่เกี่ยวข้องในการทดสอบ: 6/2 = 3 3/3 = 1 4/1 …