﻿import matplotlib.pyplot as plt
import networkx as nx
import random as rd

G = nx.Graph()

# Création des élèves (noeuds):
Nb_eleves = int(input("Combien d'élèves sont présents dans la salle?"))

G.add_nodes_from(range(Nb_eleves))

# Création des relations entre élèves (arêtes):

for eleve in range(Nb_eleves):
    Relations = input("Eleve "+str(eleve)+":Liste tes relations (nombres séparés par des ;)")
    Liste_relations = Relations.split(";")
    Arete_relations = [(eleve,int(numero)) for numero in Liste_relations]
    G.add_edges_from(Arete_relations)

# Simulation aléatoire d'un réseau si Nb_eleves==0

if Nb_eleves==0:
    Nb_eleves = int(input("Combien d'élèves pour la simulation?"))
    G.add_nodes_from(range(Nb_eleves))
    for eleve in range(Nb_eleves):
        degre=rd.randint(1,(Nb_eleves-1)//4)
        Liste_relations = rd.sample(G.nodes(),degre)
        Arete_relations = [(eleve,numero) for numero in Liste_relations]
        G.add_edges_from(Arete_relations)

# Représentation graphique du Réseau

nx.draw_spring(G, with_labels=True, font_weight='bold')
plt.savefig("RéseauClasse.png")
plt.show()