資源簡介
一個非常好玩的簡易版植物大戰僵尸,用python寫的,你應該下載一下!
代碼片段和文件信息
“““The?ants?module?implements?game?logic?for?Ants?Vs.?SomeBees.“““
#?Name:?Anqi?Song
#?Email:?anqisong@berkeley.edu
import?random
import?sys
from?ucb?import?main?interact?trace
from?collections?import?OrderedDict
################
#?Core?Classes?#
################
class?Place:
????“““A?Place?holds?insects?and?has?an?exit?to?another?Place.“““
????def?__init__(self?name?exit=None):
????????“““Create?a?Place?with?the?given?exit.
????????name?--?A?string;?the?name?of?this?Place.
????????exit?--?The?Place?reached?by?exiting?this?Place?(may?be?None).
????????“““
????????self.name?=?name
????????self.exit?=?exit
????????self.bees?=?[]????????#?A?list?of?Bees
????????self.ant?=?None???????#?An?Ant
????????self.entrance?=?None??#?A?Place
????????#?Phase?1:?Add?an?entrance?to?the?exit
????????“***?YOUR?CODE?HERE?***“
????????if?self.exit:
????????????exit.entrance?=?self
????def?add_insect(self?insect):
????????“““Add?an?Insect?to?this?Place.
????????There?can?be?at?most?one?Ant?in?a?Place?unless?exactly?one?of?them?is
????????a?BodyguardAnt?(Phase?2)?in?which?case?there?can?be?two.?If?add_insect
????????tries?to?add?more?Ants?than?is?allowed?an?assertion?error?is?raised.
????????There?can?be?any?number?of?Bees?in?a?Place.
????????“““
????????if?insect.is_ant():
????????????#?Phase?2:?Special?handling?for?BodyguardAnt
????????????“***?YOUR?CODE?HERE?***“
????????????if?self.ant:
????????????????if?self.ant.can_contain(insect):
????????????????????self.ant.contain_ant(insect)
????????????????elif?insect.can_contain(self.ant):
????????????????????insect.contain_ant(self.ant)
????????????????????self.ant?=?insect
????????????????else:
????????????????????assert?self.ant?is?None?‘Two?ants?in?{0}‘.format(self)
????????????else:
????????????????assert?self.ant?is?None?‘Two?ants?in?{0}‘.format(self)
????????????????self.ant?=?insect
????????else:
????????????self.bees.append(insect)
????????insect.place?=?self
????def?remove_insect(self?insect):
????????“““Remove?an?Insect?from?this?Place.“““
????????if?not?insect.is_ant():
????????????self.bees.remove(insect)
????????else:
????????????assert?self.ant?==?insect?‘{0}?is?not?in?{1}‘.format(insect?self)
????????????“***?YOUR?CODE?HERE?***“
????????????if?type(insect)?==?QueenAnt?and?insect.constructed_time?==?1:
????????????????return
????????????
????????????self.ant?=?None
????????????
????????????if?insect.container:
????????????????self.ant?=?insect.ant
????????insect.place?=?None
????def?__str__(self):
????????return?self.name
class?Insect:
????“““An?Insect?the?base?class?of?Ant?and?Bee?has?armor?and?a?Place.“““
????
????watersafe?=?False
????def?__init__(self?armor?place=None):
????????“““Create?an?Insect?with?an?armor?amount?and?a?starting?Place.“““
????????self.armor?=?armor
????????self.place?=?place??#?set?by?Place.add_insect?and?Place.remove_insect
????def?reduce_armor(self?amount):
????????“““Reduce?armor?by?amount?and?remove?the?insect?from?its?place?if?it
????????ha
評論
共有 條評論