ทุกคนต้องการนำเกมแห่งชีวิตของ Conway มาใช้ เบื่อ! มาทำตำรวจและโจรกันเถอะ!
คุณจะมีสองทีม: ตำรวจและโจร แต่ละทีมมีสมาชิก 5 คนโดย 50 คนละคน โปรแกรมจะวนซ้ำอย่างต่อเนื่อง การวนซ้ำแต่ละครั้งจะเกิดสิ่งต่อไปนี้:
สำหรับแต่ละทีมให้พิมพ์ตัวอักษรตัวแรก (
CสำหรับตำรวจRสำหรับโจร) ช่องว่างรายการที่คั่นด้วยช่องว่างของ HP ของสมาชิกและขึ้นบรรทัดใหม่ นี่คือสถานะของทีม หลังจากเสร็จสิ้นให้พิมพ์บรรทัดใหม่ขึ้นมาใหม่ ตัวอย่างเช่นนี่คือลักษณะของรอบแรก:C 50 50 50 50 50 R 50 50 50 50 50เลือกหมายเลขสุ่มตั้งแต่ 1 ถึง 10 (รวมทั้ง 1 และ 10)
Nเราจะโทรไปยังหมายเลข ถ้าNเป็นเช่นนั้นพวกโจรก็จะแพ้ในรอบนี้ ถ้าแปลกตำรวจสูญเสียเลือกสมาชิกสุ่มของทีมแพ้ที่ HP มากกว่า 0 และหัก
NHP HP ของสมาชิกไม่ควรปรากฏต่ำกว่า 0 ในสถานะรีสตาร์ทลูป
เกมจะจบลงเมื่อสมาชิกทุกคนในทีมเดียวเสีย HP ทั้งหมดไป จากนั้นข้อมูลต่อไปนี้จะถูกพิมพ์หากตำรวจชนะ:
C+
R-
และถ้าโจรชนะ:
R+
C-
นี่คือรหัสกอล์ฟดังนั้นจำนวนอักขระที่สั้นที่สุดจะเป็นผู้ชนะ
นี่คือตัวอย่างการใช้งานใน Python 2:
import random
cops = [50]*5
robbers = [50]*5
while any(cops) and any(robbers):
# print the status
print 'C', ' '.join(map(str, cops))
print 'R', ' '.join(map(str, robbers))
print
# pick N
N = random.randint(1, 10)
# pick the losing team (robbers if N is even, else cops)
losers = robbers if N % 2 == 0 else cops
# pick a member whose HP is greater than 0
losing_member = random.choice([i for i in range(len(losers)) if losers[i]])
losers[losing_member] -= N
# make sure the HP doesn't visibly drop below 0
if losers[losing_member] < 0: losers[losing_member] = 0
if any(cops):
# robbers lost
print 'C+'
print 'R-'
elif any(robbers):
# cops lost
print 'C-'
print 'R+'
cops-and-robbers!
game-of-lifeรายการ