diff --git a/server.py b/server.py index bf95a28..d7e959a 100644 --- a/server.py +++ b/server.py @@ -18,17 +18,23 @@ def main() -> int: """ player = PyServer( # Customize this to whatever you'd like to call your player - name="My super smart robot player", + name="Mute", # Custom information that you can use to tell people about this player - profile={}, + profile={ + "me.noordstar.peanuts.agent.version": "1.0.0", + "me.noordstar.peanuts.is_ai": False, + "me.noordstar.peanuts.author": "Bram", + "me.noordstar.peanuts.containerized": True, + "version": "1.0.0", + }, # Unless you know what you're doing, don't touch this. import_name=__name__, ) # Register games! Comment out any you don't want your player to play. - player.add_tic_tac_toe(on_move=play_tic_tac_toe, profile={}) + player.add_tic_tac_toe(on_move=respond_mute, profile={}) # Start listening for games player.start( @@ -38,62 +44,19 @@ def main() -> int: return 0 -def play_tic_tac_toe(payload : dict[str, Any]) -> dict[str, Any]: +def respond_mute(payload : dict[str, Any]) -> dict[str, Any]: """ - Play a game of tic-tac-toe. + Always respond with an empty dictionary. This means the user should + always take the "default" move. - You receive a payload that looks like this: + A well-programmed game must NOT raise an error as a result of this. - { - "1": "X", "2": "", "3": "O", - "4": "X", "5": "O", "6": "", - "7": "", "8": "", "9": "", - "your_token": "X" - } - - And you're expected to return a response of which field you'd like to - place your piece in. For example, if you wish to place your token in - field 7, your response should look like this: - - { "move": 7 } - - The board is arranged as follows: - - 1 | 2 | 3 - ---+---+--- - 4 | 5 | 6 - ---+---+--- - 7 | 8 | 9 - - :param payload: The incoming JSON that contains the game state. + :param payload: The game state which is completely ignored. :type payload: dict[str, Any] - :return: The move you wish to take. + :return: An empty dictionary :rtype: dict[str, Any] """ - - # Try printing the payload to see what it looks like! - print(payload) - - options = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, ] - - # 1. Try filtering out the impossible moves! - # If an X or O was already placed at a field, remove it from the options - - # - - # 2. Try finding two in a row! If possible, you can try to place the third - # item on the board and get 3 in a row. - - # - - # 3. Perhaps you can block the opponent from getting 3 in a row? - - # - - # Now, pick any of the remaining options. - # This is just a simple implementation. Naturally, you're welcome to try - # your own logic. - return { "move": random.choice(options) } + return {} if __name__ == "__main__": raise SystemExit(main())