รับสตริงที่แสดงถึงสถานะปัจจุบันของเกมMonopolyที่จุดเริ่มต้นของการเปิดของผู้เล่นบีบอัดข้อมูลที่จำเป็นทั้งหมดลงในเอาต์พุตที่เล็กที่สุด คำตอบจะถูกตัดสินโดยขนาดของการส่งออกและขนาดแหล่งที่มา
หมายเหตุ: มีหลายรูปแบบในภูมิภาค แต่การอ้างอิงทั้งหมดในโพสต์นี้ไปยังชื่อทรัพย์สิน ฯลฯ อ้างอิงจากบอร์ดนี้
การป้อนข้อมูล:
อินพุตจะถูกกำหนดเป็น;
สตริงที่แยกเดี่ยว สตริงนี้มอบให้กับโปรแกรมในลักษณะใดก็ตามที่เป็นธรรมเนียมในภาษาที่คุณเลือกไม่ว่าจะเป็น stdin, อาร์กิวเมนต์ ฯลฯ
อินพุตที่ยังไม่ฟอร์แมตจะมีลักษณะดังนี้:
numPlayers (1 to 8)
whose turn (0 to numPlayers-1)
for each player:
bankrupt? (true/false)
money (0 to 2^16-1)
get-out-of-jail-free cards (0 to 2)
position (0 to 39)
jail turns (-1 to 2)
for 28 properties:
owner (-1 to numPlayers-1)
mortgaged? (true/false)
improvement level (0 to 5)
for 16 chance cards in deck:
card index (-1 to 15)
for 16 community chest cards in deck:
card index (-1 to 15)
ตัวอย่างการจัดรูปแบบอินพุตคือ:
3;1;false;1546;0;14;-1;false;7692;1;10;1;true;1;false;1;1;false;0;0;true;0;-1;false;0;-1;false;0;-1;false;0;-1;false;0;-1;false;0;-1;false;0;-1;false;0;-1;false;0;-1;false;0;-1;false;0;-1;false;0;-1;false;0;-1;false;0;-1;false;0;-1;false;0;-1;false;0;-1;false;0;-1;false;0;-1;false;0;-1;false;0;-1;false;0;-1;false;0;-1;false;0;-1;false;0;-1;false;0;0;1;2;3;4;5;6;7;8;9;10;11;12;13;14;15;3;12;7;4;5;2;13;11;15;6;8;9;10;1;14;-1;
ถ่ายทีละนิด:
3;1;
มีผู้เล่น 3 คนและมันคือเทิร์นของผู้เล่น 1 (ดัชนีเป็นศูนย์ดังนั้นผู้เล่นคนที่สอง )
ผู้เล่น
false;1546;0;14;-1;
false;7692;1;10;1;
true;
ผู้เล่นคนแรก:
- ไม่ล้มละลาย
- มีเงินสด $ 1546 ในมือ
- เป็นเจ้าของบัตร 0 ใบปลอดการจำคุก
- อยู่ในตำแหน่ง 14 (Virginia Ave)
- ไม่ได้อยู่ในคุก
ผู้เล่นคนที่สองอยู่ในคุกและได้รับในครั้งเดียว ฉันไม่แน่ใจว่าทำไมเพราะเขามีการ์ด GOoJF แต่เขาอยู่ที่นั่น
ผู้เล่นคนที่สามเป็นบุคคลล้มละลายและไม่จำเป็นต้องมีข้อมูลเพิ่มเติม
คุณสมบัติ
1;false;1;
1;false;0;
0;true;0;
-1;false;0;
-1;false;0;
-1;false;0;
...
คุณสมบัติมีการระบุไว้ในคำสั่งทั่วกระดานเริ่มต้นจากเมดิเตอร์เรเนียนและสิ้นสุดที่ Boardwalk คุณสมบัติที่ไม่สามารถเป็นเจ้าของจะไม่รวมอยู่ในรายการนี้ดังนั้นจะมีทั้งหมด 28 รายการระดับการปรับปรุง0
หมายถึงไม่มีการปรับปรุง ระดับ1
คือบ้านหลังหนึ่งถึงระดับ5
สำหรับโรงแรม -1
สำหรับวิธีการใช้มันไม่ได้เป็นเจ้าของโดยผู้เล่นคนใด
ตามกฎมาตรฐานทรัพย์สินที่จำนองต้องเป็นเจ้าของและต้องไม่ปรับปรุง ทรัพย์สินที่ได้รับการปรับปรุงจะต้องเป็นของเจ้าของและจะต้องไม่ถูกจำนอง
นอกจากนี้เพื่อให้คุณสมบัติได้รับการปรับปรุงผู้เล่นจะต้องเป็นเจ้าของบล็อคสีทั้งหมด สำหรับวัตถุประสงค์ของเกมนี้เราไม่สนใจว่าคุณสมบัติจะได้รับการปรับปรุง "สม่ำเสมอ"
โปรดทราบว่าตำแหน่งเหล่านี้ไม่เหมือนกับตำแหน่งผู้เล่นที่ระบุด้านบน ตัวอย่างเช่นผู้เล่นที่อยู่ใน5
ตำแหน่งจะอยู่บนเส้นทางรถไฟสำหรับอ่านซึ่งเป็นคุณสมบัติที่สามในรายการ (เนื่องจากไม่ได้เป็นเจ้าของ Go Community Chest และภาษีเงินได้) ตำแหน่งผู้เล่นวิ่งจาก0
(ไป) ตามเข็มนาฬิกาไปที่39
(ทางเดินริมทะเล)
การ์ด
0;1;2;3;4;5;6;7;8;9;10;11;12;13;14;15;
3;12;7;4;5;2;13;11;15;6;8;9;10;1;14;-1;
แต่ละหีบโอกาสและหีบสมบัติชุมชนมี16
ไพ่ทั้งหมด ตัวเลขจะปรากฏตามที่ปรากฏในสำรับสับในปัจจุบัน สำหรับตัวอย่างนี้ไพ่ใบแรกที่ดึงออกจากเด็คโอกาสจะเป็นการ์ด0
ตามด้วยการ์ด1
(ผู้ใดก็ตามที่สับไพ่นั้นแย่) บัตรแรกที่ดึงมาจากหน้าอกชุมชนมีบัตรแล้ว3
12
ไม่ต้องกังวลเกี่ยวกับสิ่งที่แต่ละบัตรหมายถึง (ข้อความการ์ด) 0
ยกเว้นบัตร นั่นคือการ์ดออกจากคุกฟรีสำหรับเด็คนั้น -1
หากผู้เล่นเป็นเจ้าของมันก็จะเป็นในตอนท้ายของรายการแสดงเป็น
เอาท์พุท:
คุณต้องแสดงผล (เพื่อคอนโซล stdout หรือไฟล์) เพื่อแสดงสถานะเกม ต้องมีข้อมูลทั้งหมดที่จำเป็นในการเป็นตัวแทนของเกม ตัวอย่างเช่นคุณสามารถละเว้น (หรือย่อ) คุณสมบัติที่ไม่มีกรรมสิทธิ์เนื่องจากไม่สามารถปรับปรุงหรือจำนองได้ อินพุตไม่สามารถละเว้นได้เนื่องจากเป็นรายการที่ไม่ได้ทำดัชนี
การบีบอัดควรทำในลักษณะที่คุณสามารถคำนวณขนาดผลงานที่เลวร้ายที่สุด สิ่งนี้อาจตัดสิทธิ์อัลกอริทึมการบีบอัดบางอย่าง (เว้นแต่คุณจะพิสูจน์ได้ว่าเป็นกรณีที่เลวร้ายที่สุดและให้ตัวอย่างของอินพุตที่แย่ที่สุด)
หากไม่มีซอร์สโค้ดของคุณอย่างละเอียดเกินไปให้อธิบายวิธีการแสดงเกม คำตอบที่ประกอบด้วยอะไรนอกจากโปรแกรม golfed และเอาต์พุตที่ถูกบีบอัดจะไม่สนับสนุน ตัวอย่างเช่นหากคุณไม่ระบุค่าบางอย่างให้อธิบายว่าเป็นไปได้อย่างไรที่จะได้รับมาจากเอาต์พุต
เกณฑ์การให้คะแนน / กฎ:
การให้คะแนนขึ้นอยู่กับขนาดการบีบอัดที่แย่ที่สุดในหน่วยบิตและขนาดซอร์สโค้ดเป็นไบต์ :
score = (outputBits * 2) + encoderSourceBytes
คำตอบที่สมบูรณ์จะต้องมี:
- ตัวอย่างผลลัพธ์
- แหล่งตัวเข้ารหัส
- ตัวถอดรหัส (ไม่นับรวมกับคะแนน)
ตัวเข้ารหัสทั้งหมดต้องเป็นโปรแกรมที่สมบูรณ์และห้ามมีช่องโหว่มาตรฐาน การใช้ไลบรารีการบีบอัดในตัวหรือภายนอกยังเป็นสิ่งต้องห้าม
ผู้ชนะคือคำตอบที่มีคะแนนต่ำที่สุดตามที่กำหนดไว้ข้างต้น
The second player is in jail, and has been for one turn. I'm not sure why, since he has a GOoJF card, but he's there.
อยู่ในคุกเป็น lategame ที่ดีเพราะคุณไม่ได้จ่ายค่าเช่า :)