Enoder commited on
Commit
0f526ca
·
verified ·
1 Parent(s): 7a6e335

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +82 -120
app.py CHANGED
@@ -1,132 +1,94 @@
1
  import streamlit as st
2
- import random
3
 
4
- # Titre et mise en situation
5
- st.title("Jeu : Installation et Fonctionnement d'un Réseau Local")
6
- st.write("""
7
- Les technologies de communication évoluent vite et le matériel informatique devient rapidement obsolète.
8
- Le collège vient de recevoir une nouvelle dotation en matériel informatique.
9
- Il faut installer le matériel et lui permettre de communiquer sur le réseau.
10
- """)
11
-
12
- # Questions interactives
13
- questions = [
14
- {
15
- "question": "Pourquoi est-il important de mettre à jour le matériel informatique dans un établissement comme le collège ?",
16
- "options": ["Pour améliorer la décoration", "Parce que le matériel devient rapidement obsolète", "Pour faire des économies d'énergie"],
17
- "answer": "Parce que le matériel devient rapidement obsolète"
18
- },
19
- {
20
- "question": "Quel est le rôle principal d'un serveur dans un réseau informatique ?",
21
- "options": ["Envoyer des emails", "Permettre de faire circuler les informations entre les ordinateurs", "Jouer de la musique"],
22
- "answer": "Permettre de faire circuler les informations entre les ordinateurs"
23
- },
24
- {
25
- "question": "À quoi sert un routeur dans un réseau local ?",
26
- "options": ["Fournir une connexion Wi-Fi à tous les utilisateurs", "Stocker des données", "Imprimer des documents"],
27
- "answer": "Fournir une connexion Wi-Fi à tous les utilisateurs"
28
- },
29
- {
30
- "question": "Quel équipement est nécessaire pour qu'une imprimante soit connectée au réseau et accessible à tous ?",
31
- "options": ["Un serveur", "Un routeur", "Un transmetteur"],
32
- "answer": "Un routeur"
33
- },
34
- {
35
- "question": "Quelle est la principale différence entre un ordinateur et un serveur dans un réseau ?",
36
- "options": ["Un ordinateur est utilisé par les utilisateurs, tandis qu'un serveur fournit des services aux autres appareils du réseau",
37
- "Un serveur est plus lent qu'un ordinateur",
38
- "Un ordinateur est plus puissant qu'un serveur"],
39
- "answer": "Un ordinateur est utilisé par les utilisateurs, tandis qu'un serveur fournit des services aux autres appareils du réseau"
40
- },
41
- {
42
- "question": "Que signifie une perte de 100% de paquets lors d'un test de ping ?",
43
- "options": ["La connexion est excellente", "Aucun paquet n'a été reçu, il y a un problème de communication", "La vitesse est très rapide"],
44
- "answer": "Aucun paquet n'a été reçu, il y a un problème de communication"
45
- },
46
- {
47
- "question": "Que permet de faire un transmetteur dans un réseau ?",
48
- "options": ["Stocker des informations", "Assurer que le signal Wi-Fi est accessible dans toute la maison", "Créer de nouveaux utilisateurs"],
49
- "answer": "Assurer que le signal Wi-Fi est accessible dans toute la maison"
50
- },
51
- {
52
- "question": "Quel type de câble est souvent utilisé pour connecter les ordinateurs dans un réseau local ?",
53
- "options": ["Câble USB", "Câble Ethernet", "Câble HDMI"],
54
- "answer": "Câble Ethernet"
55
- },
56
- {
57
- "question": "Pourquoi le collège a-t-il besoin d'un administrateur réseau ?",
58
- "options": ["Pour installer des logiciels", "Pour assurer que tous les appareils communiquent bien entre eux et résoudre les pannes", "Pour acheter de nouveaux ordinateurs"],
59
- "answer": "Pour assurer que tous les appareils communiquent bien entre eux et résoudre les pannes"
60
- },
61
- {
62
- "question": "Que signifie 'obsolète' en parlant du matériel informatique ?",
63
- "options": ["Le matériel est ancien et moins performant", "Le matériel est rapide", "Le matériel est en parfait état"],
64
- "answer": "Le matériel est ancien et moins performant"
65
- },
66
- {
67
- "question": "Lorsqu'un appareil n'arrive pas à se connecter au réseau, quelle pourrait être la cause ?",
68
- "options": ["Un problème de câble ou de configuration réseau", "L'appareil est trop proche du routeur", "L'appareil est trop neuf"],
69
- "answer": "Un problème de câble ou de configuration réseau"
70
- },
71
- {
72
- "question": "Dans quel cas faut-il utiliser un switch dans un réseau ?",
73
- "options": ["Pour relier plusieurs appareils en réseau", "Pour connecter une imprimante", "Pour améliorer la qualité du Wi-Fi"],
74
- "answer": "Pour relier plusieurs appareils en réseau"
75
- },
76
- {
77
- "question": "Quel est le but d'un test de ping ?",
78
- "options": ["Vérifier la présence d’un virus", "Tester la communication entre deux appareils du réseau", "Configurer le Wi-Fi"],
79
- "answer": "Tester la communication entre deux appareils du réseau"
80
- },
81
- {
82
- "question": "Quels éléments sont nécessaires pour une bonne connexion réseau dans tout un bâtiment ?",
83
- "options": ["Transmetteurs et câbles", "Imprimantes et tablettes", "Claviers et souris"],
84
- "answer": "Transmetteurs et câbles"
85
- },
86
- {
87
- "question": "Que doit-on faire si un appareil ne reçoit pas de paquets lors d’un test de ping ?",
88
- "options": ["Ignorer le problème", "Vérifier les câbles et la configuration réseau", "Éteindre le routeur"],
89
- "answer": "Vérifier les câbles et la configuration réseau"
90
- },
91
- ]
92
 
93
- # Fonction pour afficher les questions et vérifier les réponses
94
  score = 0
95
- random.shuffle(questions) # Mélange les questions pour plus de variété
96
 
97
- # Utilisation d'une session state pour maintenir l'état des réponses
98
- if 'responses' not in st.session_state:
99
- st.session_state.responses = {}
100
 
101
- for q in questions:
102
- st.subheader(q["question"])
103
- if q["question"] not in st.session_state.responses:
104
- answer = st.radio("", q["options"], key=q["question"])
105
- if st.button("Valider", key=f"{q['question']}_btn"):
106
- if answer == q["answer"]:
107
- st.session_state.responses[q["question"]] = "correct"
108
- score += 1
109
- st.success("Bonne réponse !")
110
- else:
111
- st.session_state.responses[q["question"]] = "incorrect"
112
- st.error("Mauvaise réponse.")
113
- st.write("Réponse correcte : ", q["answer"])
114
  else:
115
- # Afficher les réponses précédentes
116
- if st.session_state.responses[q["question"]] == "correct":
117
- st.success("Bonne réponse !")
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
118
  else:
119
- st.error("Mauvaise réponse.")
120
- st.write("Réponse correcte : ", q["answer"])
121
 
122
- st.write("---")
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
123
 
124
- # Affichage du score final
125
- st.write("## Votre score : ", score, "/", len(questions))
126
- if score == len(questions):
 
 
 
 
 
 
 
 
 
 
 
 
 
127
  st.balloons()
128
- st.success("Félicitations ! Vous avez tout compris sur les réseaux locaux !")
129
- elif score > len(questions) / 2:
130
- st.info("Pas mal, mais vous pouvez encore vous améliorer !")
131
  else:
132
- st.warning("Il semble que vous ayez besoin de réviser encore un peu.")
 
 
 
 
1
  import streamlit as st
 
2
 
3
+ # Titre et Introduction
4
+ st.title("Installation et Fonctionnement d'un Réseau Local")
5
+ st.write("Bienvenue dans ce jeu éducatif! Dans ce module, tu vas apprendre comment installer et configurer un réseau informatique en répondant à des questions et en résolvant des situations pratiques. Bonne chance!")
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6
 
7
+ # Scoring
8
  score = 0
 
9
 
10
+ # Mise en situation
11
+ st.subheader("Mise en situation")
12
+ st.write("Les technologies de communication évoluent vite et le matériel informatique devient rapidement obsolète. Le collège vient de recevoir une nouvelle dotation en matériel informatique. Il faut installer le matériel et lui permettre de communiquer sur le réseau.")
13
 
14
+ # Question 1: Matériel nécessaire
15
+ st.subheader("Question 1 : Matériel nécessaire")
16
+ st.write("D'après toi, quel matériel est nécessaire pour créer un réseau ?")
17
+ answer1 = st.multiselect("Sélectionne tout le matériel nécessaire :",
18
+ ["Câbles", "Ordinateurs", "Tablette", "Imprimante", "Batterie", "Box",
19
+ "Serveur", "Routeurs", "Switch", "Transmetteurs"])
20
+
21
+ if st.button("Vérifier la réponse", key="q1"):
22
+ correct_answer = {"Câbles", "Ordinateurs", "Serveur", "Routeurs", "Switch", "Transmetteurs"}
23
+ if set(answer1) == correct_answer:
24
+ st.success("Bravo! Tu as sélectionné tous les éléments nécessaires pour créer un réseau.")
25
+ score += 1
 
26
  else:
27
+ st.error("Non, ce n'est pas correct. Revois les éléments nécessaires à la création d'un réseau local.")
28
+
29
+ # Investigation : Noms et fonctions
30
+ st.subheader("Investigation : Noms et fonctions")
31
+ st.write("Après avoir visionné la vidéo 'Les réseaux informatiques', associe chaque illustration avec son nom et sa fonction.")
32
+
33
+ # Question 2: Identification des éléments
34
+ answers2 = {
35
+ "PC ordinateurs": "Pour communiquer",
36
+ "Serveurs": "Permet de faire circuler des informations d'un ordinateur à un autre",
37
+ "Routeur": "Pour le wifi pour tout le monde",
38
+ "Transmetteurs": "Pour que tout le wifi aille dans toute la maison"
39
+ }
40
+
41
+ for item, correct_answer in answers2.items():
42
+ answer = st.text_input(f"Fonction de {item} :", key=item)
43
+ if st.button(f"Vérifier {item}", key=f"verify_{item}"):
44
+ if answer == correct_answer:
45
+ st.success(f"Correct ! {item} : {correct_answer}.")
46
+ score += 1
47
  else:
48
+ st.error("Non, essaie encore.")
 
49
 
50
+ # Résultat du test de communication
51
+ st.subheader("Résultat du test de communication")
52
+ st.write("Après avoir déballé et câblé les stations de travail, un test de communication avec le serveur a été effectué. Voici les résultats :")
53
+ st.code("""
54
+ 192.168.1.1 4 paquets envoyés, 4 paquets reçus
55
+ 0% packets perdus, délai de 5ms
56
+ """)
57
+ st.code("""
58
+ C:\>ping
59
+ """)
60
+ st.code("""
61
+ 192.168.1.254 4 paquets envoyés, 0 paquets reçus
62
+ 100% packets perdus
63
+ """)
64
+ conclusion = st.text_input("Quelle conclusion peux-tu en tirer ?", "")
65
+ if st.button("Vérifier la conclusion", key="conclusion"):
66
+ if "câblage" in conclusion.lower() and "résoudre" in conclusion.lower():
67
+ st.success("Bonne réponse ! Un câblage correct est indispensable pour assurer la communication entre les stations.")
68
+ score += 1
69
+ else:
70
+ st.error("Non, n'oublie pas de mentionner l'importance du câblage pour résoudre ce problème.")
71
 
72
+ # Investigation 2 : Résolution de panne
73
+ st.subheader("Investigation 2 : Résolution de panne")
74
+ st.write("Le réseau est désormais câblé et configuré par l'administrateur réseau. Il faut vérifier la bonne communication des stations de travail.")
75
+ st.write("Que vérifier en priorité si une station ne peut pas communiquer avec le réseau ?")
76
+ answer3 = st.text_input("Entrez votre réponse ici :", "")
77
+ if st.button("Vérifier la résolution de panne", key="q3"):
78
+ if "connexion" in answer3.lower() or "câblage" in answer3.lower():
79
+ st.success("Bonne réponse ! Vérifier la connexion et le câblage est essentiel en cas de panne.")
80
+ score += 1
81
+ else:
82
+ st.error("Essaie encore ! Réfléchis aux vérifications de base comme la connexion et le câblage.")
83
+
84
+ # Score final
85
+ st.subheader("Résultat")
86
+ st.write(f"Ton score final est : {score} / 7")
87
+ if score == 7:
88
  st.balloons()
89
+ st.write("Félicitations! Tu as maîtrisé les bases de l'installation et du fonctionnement d'un réseau local.")
 
 
90
  else:
91
+ st.write("Bon travail! N'hésite pas à réessayer pour améliorer ton score et ta compréhension.")
92
+
93
+ st.write("---")
94
+ st.write("Merci d'avoir joué ! Les concepts de réseau local sont essentiels pour comprendre le fonctionnement de nos appareils connectés.")