本文整理汇总了Python中record.Record.record_monthly_event方法的典型用法代码示例。如果您正苦于以下问题:Python Record.record_monthly_event方法的具体用法?Python Record.record_monthly_event怎么用?Python Record.record_monthly_event使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类record.Record
的用法示例。
在下文中一共展示了Record.record_monthly_event方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: Forest
# 需要导入模块: from record import Record [as 别名]
# 或者: from record.Record import record_monthly_event [as 别名]
#.........这里部分代码省略.........
entity.on_lumberjack_mawed = self.on_lumberjack_mawed
elif (type(entity) == Lumberjack):
entity.on_lumber_collected = self.on_lumber_collected
elif (type(entity) == Tree):
entity.on_spawn = self.on_spawned_tree
entity.on_change_tree_type = self.on_change_tree_type
def add_entity(self, entity):
self.all_entities.add(entity)
self.population[type(entity)].add(entity)
def add_pending_entity(self, entity):
"""Since we'll be adding entities during a list comprehension,
we need to store those new entities somewhere briefly."""
self.pending_entities.add(entity)
def on_change_tree_type(self, tree, old_type, new_type):
self.statistics.log_all(old_type.long_name + " became " + new_type.long_name, 1)
def on_lumber_collected(self, lumberjack, quantity):
self.statistics.log_all('lumber collected', quantity)
def on_lumberjack_mawed(self, bear, lumberjack):
self.statistics.log_all('lumberjacks mawed', 1)
def on_spawned_tree(self, tree):
self.add_pending_entity(tree)
self.statistics.log_all("new Saplings created", 1)
def kill_random_entity(self, entity_type):
if len(self.population[entity_type]) > 0:
for entity in random.sample([entity for entity in self.population[entity_type] if entity.alive], 1):
entity.alive = False
def get_total_of_entity(self, entity_type):
return len([entity for entity in self.population[entity_type] if entity.alive])
def tick(self):
self.statistics['month'].clear()
# Lumberjacks should move before bears so that bears stop where
# lumberjacks have stopped
[[entity.move() for entity in self.population[entity_type]] for entity_type in [Lumberjack, Bear]]
[entity.action() for entity in self.all_entities]
[self.add_entity(new_entity) for new_entity in self.pending_entities]
self.pending_entities.clear()
for statistic in self.statistics['month'].keys():
self.record.record_monthly_event(self.current_tick, "[{0}] {1}".format(self.statistics['month'][statistic], statistic))
if self.current_tick % 12 == 0:
self.annual_review()
self.remove_dead_entities()
self.current_tick += 1
def annual_review(self):
self.record.record_yearly_event(self.current_tick,
"Forest has {0} Trees, {1} Saplings, {2} Elder Trees, {3} Lumberjacks, and {4} Bears."\
.format(len([tree for tree in self.population[Tree] if tree.alive and tree.tree_type == Tree.normal]),
len([tree for tree in self.population[Tree] if tree.alive and tree.tree_type == Tree.sapling]),
len([tree for tree in self.population[Tree] if tree.alive and tree.tree_type == Tree.elder_tree]),
self.get_total_of_entity(Lumberjack),
self.get_total_of_entity(Bear)))
maw_accidents = self.statistics['year']['lumberjacks_mawed']
if maw_accidents > 0:
self.record.record_yearly_event(self.current_tick, "1 Bear captured by zoo.")
self.kill_random_entity(Bear)
else:
self.record.record_yearly_event(self.current_tick, "1 new Bear added.")
self.spawn_entities(Bear, [node for node in self.get_all_nodes() if not node.has(Bear)], 1)
total_lumber_collected = self.statistics['year']['lumber_collected']
# Shouldn't count dead lumberjacks, and we won't have removed them at this point
# Dead lumberjacks harvest does count
total_lumberjacks = self.get_total_of_entity(Lumberjack)
if total_lumber_collected > total_lumberjacks:
new_lumberjack_quantity = int(total_lumber_collected/10)
self.spawn_entities(Lumberjack,
[node for node in self.get_all_nodes() if not node.has(Lumberjack)],
new_lumberjack_quantity)
self.record.record_yearly_event(self.current_tick, "{0} pieces of lumber harvested {1} new Lumberjack hired."\
.format(total_lumber_collected,
new_lumberjack_quantity))
elif total_lumber_collected < total_lumberjacks:
if total_lumberjacks > 1:
self.kill_random_entity(Lumberjack)
self.record.record_yearly_event(self.current_tick, "1 Lumberjack fired.")
if (self.get_total_of_entity(Lumberjack) == 0):
self.record.record_yearly_event(self.current_tick, "No Lumberjacks, 1 Lumberjack hired.")
self.spawn_entities(Lumberjack, [node for node in self.get_all_nodes() if not node.has(Lumberjack)], 1)
self.statistics['year'].clear()
def remove_dead_entities(self):
dead_entities = set([entity for entity in self.all_entities if not entity.alive])
[entity.node.remove_entity(entity) for entity in dead_entities]
for entity_type in self.population.keys():
self.all_entities -= dead_entities
self.population[entity_type] -= dead_entities
def has_trees(self):
return len(self.population[Tree]) > 0
def __repr__(self):
return '\n'.join([''.join([node.short() for node in row]) for row in self.layout])