เป้าหมายของคุณคือการเขียนโปรแกรมที่จะแก้ปริศนาบงการใด ๆ ในการเคลื่อนไหว 6 หรือน้อยกว่า
พื้นหลัง
บงการเป็นเกมกระดาน เป้าหมายของเกมคือการเดาการรวมกัน (สีและลำดับ) ของหมุดสี 4 อันที่ซ่อนโดยผู้เล่นคนอื่น เมื่อทำการเดาผู้เล่นคนอื่นจะตอบสนองด้วยหมุดสีขาวและหมุดสีแดงระหว่าง 0 ถึง 4 หมุดสีแดงคือตำแหน่งที่สีและตำแหน่งถูกต้อง หมุดสีขาวคือสีที่แสดงในชิ้นส่วนที่เหลือ แต่อยู่ในตำแหน่งที่ไม่ถูกต้อง หากมีสีที่ซ้ำกันในการเดาจะมีเพียงหมุดเดียวที่ได้รับต่อสีที่ตรงกันในความลับ (ดังนั้น - ถ้าความลับมี 1 Blue และการเดามี 2 blues กับหนึ่งในตำแหน่งที่ถูกต้องจะมีหมุดสีแดงหนึ่งอัน) มี 6 สีที่แตกต่างกันและอาจใช้ซ้ำ
ตัวอย่างเช่นเกมอาจไปดังนี้: (สมมติว่าการแก้ปัญหาคือสีแดงสีเขียวสีเขียวสีน้ำเงิน)
1: Blue Purple Black Green - 2 white pegs
2: Green Red Black Blue - 2 white pegs, 1 red peg
3: Green Green Green Blue - 3 red pegs
4: Red Green Green Blue - 4 red pegs
กฎมีการขยายตัวในWikipedia
ความต้องการ
- โปรแกรมต้องอ่านจาก stdin และเขียนไปยัง stdout
- ฉันจะใช้ตัวเลขเพื่อความเรียบง่ายแทนสี ชุดค่าผสมที่คาดเดาจะเป็นตัวเลข 4 ตัวระหว่าง 1 ถึง 6
พวกเขาจะต้องส่งออกการคาดเดาของพวกเขาเป็นชุดของ 4 ช่องว่างคั่นตัวเลขจาก 1 ถึง 6 สรุปด้วยบรรทัดใหม่ ตัวอย่างเช่น
1 5 2 2 \ n
โปรแกรมจะได้รับเป็นอินพุตหลังจากเดาจำนวนเต็ม 2 ตัวระหว่าง 0 ถึง 4 โดยคั่นด้วยช่องว่างและสรุปด้วยบรรทัดใหม่ ครั้งแรกจะเป็นจำนวนหมุดสีขาวที่สองจำนวนหมุดสีแดง
- ในอินพุตของ "0 4" (หมุดสีแดง 4 อัน) โปรแกรมจะต้องยุติการทำงาน
- โปรแกรมจะต้องสามารถไขปริศนาใด ๆ ในเวลาน้อยกว่า 6 ตาร์ (โปรแกรมของคุณให้เอาต์พุตแล้วตามด้วยอินพุตตอบกลับคือ 1 เทิร์น) ไม่มีโบนัส (เนื่องจากความซับซ้อนของการพิสูจน์) สำหรับความสามารถในการแก้ปัญหาในน้อย
- โซลูชันต้องอยู่ภายในอย่างสมบูรณ์และรวมอยู่ในแหล่ง อนุญาตให้ใช้ไลบรารีมาตรฐานเท่านั้น การแก้ปัญหาจึงอาจไม่พึ่งพาไฟล์อื่น ๆ (เช่นพจนานุกรม) หรืออินเทอร์เน็ต
ตัวอย่างอินพุต / เอาท์พุต
> is your programs output
< is the responding input
Solution is 1 5 6 6
> 1 2 3 4
< 0 1
> 4 1 6 6
< 1 2
> 1 6 5 6
< 2 2
> 1 5 6 6
< 0 4
เกณฑ์การให้คะแนน
- นี่คือบริสุทธิ์และเรียบง่ายรหัสกอล์ฟ ทางออกที่สั้นที่สุดในหน่วยไบต์ชนะ
นี่คือคำถามรหัสกอล์ฟครั้งแรกของฉัน ฉันขอโทษถ้าฉันทำอะไรผิด แต่ฉันพยายามเท่าที่จะทำได้เพื่อให้แน่ใจว่าไม่มีความคลุมเครือและป้องกันไม่ให้มีการออกกฎหมายมากที่สุด หากฉันไม่ชัดเจนหรือไม่ชัดเจนโปรดถามคำถาม
1 2 3 4กลับมา0 1?