Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[refactoring] module to package and add workflows for CI/CD #4

Merged
merged 3 commits into from
Sep 1, 2024

Conversation

hmasdev
Copy link
Owner

@hmasdev hmasdev commented Sep 1, 2024

This PR converts werewolf.py into a package ./werewolf and add github actions for automatic tests, static type check and code-style check.

@hmasdev
Copy link
Owner Author

hmasdev commented Sep 1, 2024

Note that I have executed the application with the example command in README.md for a test.

docker compose run werewolf python -m werewolf -n 4 -w 1 -f 1 -t 1 -m 'gpt-4o-mini' --sub-model 'gpt-4o-mini'
=============================== Day 1 (Daytime) ================================
Player0 (to GameMaster):

I am Player0. Based on our current players, I want to propose we consider excluding Player1. Here's my reasoning:

1. **Suspicious Voting**: Player1 had been somewhat quiet during the initial discussions, which may indicate a strategic play to avoid drawing attention as a werewolf. A werewolf might choose to remain under the radar during early discussions.

2. **Behavior Analysis**: I've noticed that Player1's comments have not contributed much to the discussion or led us towards identifying suspicious behaviors in others. This passive strategy can sometimes be indicative of a player's desire to hide.

While I'm ready to hear what Player2 and Player3 think, I think this is a good opportunity to focus on Player1 for potential exclusion. Let's discuss this further. What are your observations?

--------------------------------------------------------------------------------
Player1 (to GameMaster):

Player1: Thank you for sharing your thoughts, Player0. I appreciate your perspective, but I would like to clarify my position. 

1. **Contributing to the Discussion**: It's early in the game, and we are still gathering insights. While I might not have been overly vocal, I am observing and analyzing the dynamics at play. I believe it’s crucial to listen before jumping to conclusions.

2. **Passive Strategy**: If I were a werewolf, it would indeed be wise for me to keep a low profile. However, I can assure you that my intentions are to protect the villagers. 

3. **Looking at Others**: Since we're discussing suspicions, I would also encourage everyone to evaluate Player2 and Player3's contributions. We need to make a more collective decision based on everyone's behavior rather than singling one player out, especially when discussions have just begun.

Let’s hear what Player2 and Player3 think about this situation, so we can make a well-informed decision together. It’s crucial that we focus on evidence rather than assumptions.

--------------------------------------------------------------------------------
Player2 (to GameMaster):

I'm Player2. Thanks for your points, Player1. It’s important to evaluate all players fairly as we move forward. Here are my thoughts on the current situation:

1. **Player0's Accusations**: I understand the points Player0 raised about Player1's quieter demeanor. While being quiet can sometimes be seen as a sign of being a werewolf, it can also simply be a player's initial strategy to gather information.

2. **Player1’s Defense**: Player1, you’ve provided some valid arguments for why your contributions may be limited; however, the insistence on evaluating others could be perceived as deflection. It can be a common tactic to divert suspicion away from oneself, which is worth considering.

3. **Consideration of Player3**: I’d also like to point out that we haven’t had much discussion around Player3 yet. It might be beneficial for Player3 to share their thoughts and observations. We shouldn’t overlook any player based solely on a couple of arguments.

Given the current context, I think it’s important we weigh all viewpoints and not rush to conclusions just yet. Perhaps we should gather more opinions before deciding on who to exclude. Player3, what are your thoughts?

--------------------------------------------------------------------------------
Player3 (to GameMaster):

Hello, I am Player3. Thank you, Player2, for your insights. I appreciate the thorough analysis everyone is providing. Here are my thoughts on the current situation:

1. **Player0's Accusation of Player1**: While it’s true that Player1 has been quieter, this isn’t necessarily a telltale sign of being a werewolf. As Player1 mentioned, it can also be a strategy to gather information before speaking. We have to be careful not to misinterpret passive behavior as malicious intent.

2. **Player1's Defense**: I see the validity in Player1’s points. Remaining observant at the beginning can be crucial, and it takes time to gather meaningful insights. The call for collective evaluation is indeed a good approach.

3. **Reflection on Player2**: Player2, I appreciate your comments. Your argument regarding Player1 potentially deflecting attention is worth considering. However, I believe we should also scrutinize motivations behind our collective focus and ensure we’re not falling into a trap of groupthink.

4. **Self-Reflection and Collaboration**: I think it’s vital for all of us to share not just our suspicions but also how we plan to approach the game. If we make accusations based solely on behavior, we risk excluding innocent players, which ultimately helps the werewolves. 

Given these discussions, I propose we take a little more time to assess each player's behavior. I encourage everyone, including Player0, Player1, and Player2, to share any additional insights before making a decision. Let’s gather enough evidence and perspectives before we vote to exclude someone. This will help us maintain the strength of our team as we move forward.

--------------------------------------------------------------------------------
============================== Excluded result ==============================
Player1 is excluded from the game.
Think about what has happened and what you should do in the next action.
=============================================================================
{"Player0": "Player1", "Player1": "Player0", "Player2": "Player1", "Player3": "Player0"}
=============================================================================
================================ Day 1 (Nighttime) ================================
============================== Excluded result ==============================
Player0 is excluded from the game.
Think about what has happened and what you should do in the next action.
=============================================================================
================================ Game Result ================================
('WerewolvesWin', {'Player0': {'role': 'FortuneTeller', 'status': <EStatus.Excluded: 'Excluded'>}, 'Player1': {'role': 'Knight', 'status': <EStatus.Excluded: 'Excluded'>}, 'Player2': {'role': 'Werewolf', 'status': <EStatus.Alive: 'Alive'>}, 'Player3': {'role': 'Villager', 'status': <EStatus.Alive: 'Alive'>}})

@hmasdev hmasdev merged commit 2381d59 into main Sep 1, 2024
18 checks passed
@hmasdev hmasdev deleted the refactoring-module2package branch September 1, 2024 06:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant