Spaces:
Paused
Paused
| import asyncio | |
| import fire | |
| from metagpt.ext.werewolf.roles import Guard, Moderator, Seer, Villager, Werewolf, Witch | |
| from metagpt.ext.werewolf.roles.human_player import prepare_human_player | |
| from metagpt.ext.werewolf.werewolf_game import WerewolfGame | |
| from metagpt.logs import logger | |
| async def start_game( | |
| investment: float = 3.0, | |
| n_round: int = 5, | |
| shuffle: bool = True, | |
| add_human: bool = False, | |
| use_reflection: bool = True, | |
| use_experience: bool = False, | |
| use_memory_selection: bool = False, | |
| new_experience_version: str = "", | |
| ): | |
| game = WerewolfGame() | |
| game_setup, players = game.env.init_game_setup( | |
| role_uniq_objs=[Villager, Werewolf, Guard, Seer, Witch], | |
| num_werewolf=2, | |
| num_villager=2, | |
| shuffle=shuffle, | |
| add_human=add_human, | |
| use_reflection=use_reflection, | |
| use_experience=use_experience, | |
| use_memory_selection=use_memory_selection, | |
| new_experience_version=new_experience_version, | |
| prepare_human_player=prepare_human_player, | |
| ) | |
| logger.info(f"{game_setup}") | |
| players = [Moderator()] + players | |
| game.hire(players) | |
| game.invest(investment) | |
| game.run_project(game_setup) | |
| await game.run(n_round=n_round) | |
| def main( | |
| investment: float = 20.0, | |
| n_round: int = 100, | |
| shuffle: bool = True, | |
| add_human: bool = False, | |
| use_reflection: bool = True, | |
| use_experience: bool = False, | |
| use_memory_selection: bool = False, | |
| new_experience_version: str = "", | |
| ): | |
| asyncio.run( | |
| start_game( | |
| investment, | |
| n_round, | |
| shuffle, | |
| add_human, | |
| use_reflection, | |
| use_experience, | |
| use_memory_selection, | |
| new_experience_version, | |
| ) | |
| ) | |
| if __name__ == "__main__": | |
| fire.Fire(main) | |