server.py 文件源码

python
阅读 27 收藏 0 点赞 0 评论 0

项目:python_exercises 作者: Enether 项目源码 文件源码
def main():
    parser = argparse.ArgumentParser(description='Run a Tic Tac Toe game server')
    parser.add_argument('board_x_size', metavar='X', type=int, nargs='?', default=3,
                        help='The horizontal size of the board')
    parser.add_argument('board_y_size', metavar='Y', type=int, nargs='?', default=3,
                        help='The vertical size of the board')
    parser.add_argument('needed_symbols', metavar='Z', type=int, nargs='?', default=3,
                        help='The number of consecutive symbols that account for a winning move.')
    parser.add_argument('player_count', metavar='P', type=int, nargs='?', default=2,
                        help='The number of players.', choices=range(2, 10))
    args = parser.parse_args()

    server_socket = socket(AF_INET, SOCK_STREAM)
    server_socket.setsockopt(SOL_SOCKET, SO_REUSEADDR, 1)
    server_socket.bind((HOSTNAME, PORT))
    server_socket.listen(15)

    active_games = []
    curr_game_serv = GameServer(player_count=args.player_count, board_x_size=args.board_x_size,
                        board_y_size=args.board_y_size, needed_symbols=args.needed_symbols)

    while True:
        client_socket, address = await server_socket.accept()
        print(f'Accepted a player - {client_socket} @ {address}')
        await curr_game_serv.add_player(client_socket, address)  # add the player to the server
        print(f'Current game server is hosting {len(curr_game_serv.players)}/{len(curr_game_serv.players)} players')
        if curr_game_serv.should_start():
            # Start the game and start accepting players for the next game
            print('Starting Game')
            await spawn(curr_game_serv.start_game)
            active_games.append(curr_game_serv)
            curr_game_serv = GameServer(player_count=args.player_count, board_x_size=args.board_x_size,
                                        board_y_size=args.board_y_size, needed_symbols=args.needed_symbols)
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号