def setup_board(players, num_of_nodes): Setup().setup_logger() nodes = {} board = Board(nodes) #create empty nodes for i in range(0, num_of_nodes): nodes[i] = board.Node(i, 0, 1) #create connections for i in range(1, num_of_nodes): board.connect_nodes(i, i - 1) board.connect_nodes(0, num_of_nodes - 1) for i in range(0, num_of_nodes/4): board.connect_nodes(randint(0, num_of_nodes - 1), randint(0, num_of_nodes - 1)) #split nodes between players nodes_to_split = nodes.values()[:] shuffle(nodes_to_split) for i in range(0, num_of_nodes): player_id = i % len(players) nodes_to_split[i].owner = player_id #split armies between players armies_per_node = 3 armies_per_player = num_of_nodes * (armies_per_node - 1) / len(players) for player in players: my_nodes = board.nodes_by_owner(player.id) for i in range(0, armies_per_player): node = my_nodes[randint(0, len(my_nodes) - 1)] node.add_army(1) return board