Semua orang selalu ingin menerapkan Game of Conway's Life. Itu membosankan! Mari kita lakukan polisi dan perampok sebagai gantinya!
Anda akan memiliki dua tim: polisi dan perampok. Setiap tim memiliki 5 anggota dengan masing-masing 50 kesehatan. Program akan berulang terus menerus. Setiap iterasi, berikut ini akan terjadi:
Untuk setiap tim, cetak huruf pertama (
Cuntuk polisi,Runtuk perampok), spasi, daftar HP anggota yang dipisahkan spasi, dan baris baru. Ini adalah status tim. Setelah keduanya selesai, cetak baris baru lainnya. Misalnya, inilah yang kelihatannya seperti babak pertama:C 50 50 50 50 50 R 50 50 50 50 50Pilih angka acak dari 1 hingga 10 (termasuk 1 dan 10). Kami akan memanggil nomornya
N. JikaNbahkan, perampok kehilangan putaran ini; jika aneh, polisi kalah.Pilih anggota acak dari tim yang kalah yang HP-nya lebih besar dari 0 dan kurangi
NHP. HP anggota tidak boleh muncul di bawah 0 pada status.Mulai ulang loop.
Permainan berakhir ketika semua anggota satu tim kehilangan semua HP mereka. Kemudian, yang berikut ini akan dicetak jika polisi menang:
C+
R-
dan jika perampok menang:
R+
C-
Ini adalah kode golf, sehingga jumlah karakter terpendek menang.
Berikut ini contoh implementasi dalam 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.