Skip to content

Instantly share code, notes, and snippets.

@Axeltherabbit
Last active April 3, 2023 22:31
Show Gist options
  • Select an option

  • Save Axeltherabbit/9f905da9aa80dcebd188f61815c6a706 to your computer and use it in GitHub Desktop.

Select an option

Save Axeltherabbit/9f905da9aa80dcebd188f61815c6a706 to your computer and use it in GitHub Desktop.

Revisions

  1. Axeltherabbit revised this gist Apr 3, 2023. 1 changed file with 0 additions and 1 deletion.
    1 change: 0 additions & 1 deletion arbiter.py
    Original file line number Diff line number Diff line change
    @@ -1,4 +1,3 @@
    > cat arbiter.py
    #!/usr/bin/python # This is server.py file

    import socket # Import socket module
  2. Axeltherabbit created this gist Apr 3, 2023.
    48 changes: 48 additions & 0 deletions arbiter.py
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,48 @@
    > cat arbiter.py
    #!/usr/bin/python # This is server.py file

    import socket # Import socket module
    s = socket.socket() # Create a socket object
    host = socket.gethostname() # Get local machine name
    print(host)
    port = 8085 # Reserve a port for your service.

    print('Server started!')
    print('Waiting for clients...')

    s.bind((host, port)) # Bind to the port
    s.listen(2) # Now wait for client connection.
    players = []


    def decode_move(move: str):
    return "bf5"

    def play(move : str):
    # game logic here
    # -1 game is not finished, 0 draw, 1 player one win, 2 player 2 win
    return -1

    while len(players) < 2:
    players.append(s.accept()) # Establish connection with client
    players[-1][0].send(f"Hello player #{len(players)}\n>".encode())

    print('2 players connected', players[0][1], players[1][1])
    turn = 0
    while True:
    current_player_client, addrCP = players[turn%2]
    other_player_client, addrOP = players[(turn+1)%2]
    msg = current_player_client.recv(1024)
    print("received :", msg, "from", addrCP)
    try:
    move = decode_move(msg)
    if play(move) != -1:
    break
    except ValueError:
    # current player invalid move
    break
    other_player_client.send(f"The other player played {msg}\nYour Turn\n>".encode())
    turn += 1

    for c, addr in players:
    c.close()