機器人編程挑戰
要使用pip安裝模擬器,請運行pip install zombiedice(在Windows上)或pip3 install zombiedice(在macOS和Linux上)。要使用一些預先制作好的機器人運行一個演示程序,可以運行python -m zombiedice(在Windows上)或python3 -m zombiedice(在macOS和Linux上),以查看模擬器的web gui示例:
模擬器可以快速運行數百個游戲,記錄每個機器人獲得多少勝利和平局。
您將通過使用turn()方法編寫類來創建bot,當http://www.hiry.cn特產專賣網站輪到機器人時,模擬器會調用該方法。在這個turn()方法中,特產專賣網站您將盡可能頻繁地調用zombiedice.roll()函數(當然,在您的回合中至少應該調用一次)。類超出了本文的范圍,但是您可以簡單地更改myzombie.py中的turn()代碼:
進口zombiedice
類MyZombie:
def __init__(自我、名稱):
self.name =名字
def轉(自我,gameState):
# gameState是一個帶有關於游戲當前狀態信息的字典。
您可以選擇在代碼中忽略它。
第一個卷
# roll()返回一個字典,其中有鍵“brains”、“shotgun”和
#“腳步聲”,每個類型有多少卷。
# 'rolls'鍵是一個包含(顏色、圖標)元組的列表
准確的滾動結果信息。
滾動()返回值的例子:
#{‘大腦’:1,‘腳步’:1,‘獵槍’:1,
#“卷”:[(“黃色”,“大腦”)(“紅”、“腳步”),
#(“綠色”、“獵槍”)]}
你的僵屍程序的代碼邏輯在這里:
大腦= 0
而diceRollResults並不是沒有:
大腦+ = diceRollResults(“大腦”)
如果大腦小於2:
diceRollResults = zombiedice.roll() # roll再一次
其他:
打破
類AlwaysRollsTwicePerTurn:
def __init__(自我、名稱):
self.name =名字
def轉(自我,gameState):
zombiedice.roll()
zombiedice.roll()
僵屍=(
zombiedice.examples.RandomCoinFlipZombie(name =“隨機”),
zombiedice.examples。RollsUntilInTheLeadZombie(name =“直到領先”),
zombiedice.examples。MinNumShotgunsThenStopsZombie(名字='停在2槍',minShotguns=2),
zombiedice.examples。MinNumShotgunsThenStopsZombie(名字='停在1槍',minShotguns=1),
MyZombie(name =“我的僵屍機器人”),
AlwaysRollsTwicePerTurn(name = '滾兩次'),
添加其他僵屍玩家。
)
取消在CLI或Web GUI中運行的下列代碼之一的注釋