Enoder commited on
Commit
ba7049d
·
verified ·
1 Parent(s): 18c43f9

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +105 -84
app.py CHANGED
@@ -1,91 +1,112 @@
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 :", ["Câbles", "Ordinateurs", "Tablette", "Imprimante", "Batterie", "Box", "Serveur", "Routeurs", "Switch", "Transmetteurs"])
18
- if st.button("Vérifier la réponse", key="q1"):
19
- correct_answer = {"Câbles", "Ordinateurs", "Serveur", "Routeurs", "Switch", "Transmetteurs"}
20
- if set(answer1) == correct_answer:
21
- st.success("Bravo! Tu as sélectionné tous les éléments nécessaires pour créer un réseau.")
22
- score += 1
23
- else:
24
- st.error("Non, ce n'est pas correct. Revois les éléments nécessaires à la création d'un réseau local.")
25
-
26
- # Investigation : Noms et fonctions
27
- st.subheader("Investigation : Noms et fonctions")
28
- st.write("Après avoir visionné la vidéo 'Les réseaux informatiques', associe chaque illustration avec son nom et sa fonction.")
29
-
30
- # Question 2: Identification des éléments
31
- answers2 = {
32
- "PC ordinateurs": "Pour communiquer",
33
- "Serveurs": "Permet de faire circuler des informations d'un ordinateur à un autre",
34
- "Routeur": "Pour le wifi pour tout le monde",
35
- "Transmetteurs": "Pour que tout le wifi aille dans toute la maison"
36
- }
37
-
38
- for item, correct_answer in answers2.items():
39
- answer = st.text_input(f"Fonction de {item} :", key=item)
40
- if st.button(f"Vérifier {item}", key=f"verify_{item}"):
41
- if answer == correct_answer:
42
- st.success(f"Correct ! {item} : {correct_answer}.")
43
- score += 1
44
  else:
45
- st.error("Non, essaie encore.")
46
-
47
- # Résultat du test de communication
48
- st.subheader("Résultat du test de communication")
49
- 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 :")
50
- st.code("""
51
- 192.168.1.1 4 paquets envoyés, 4 paquets reçus
52
- 0% packets perdus, délai de 5ms
53
- """)
54
- st.code("""
55
- C:\>ping
56
- """)
57
- st.code("""
58
- 192.168.1.254 4 paquets envoyés, 0 paquets reçus
59
- 100% packets perdus
60
- """)
61
- conclusion = st.text_input("Quelle conclusion peux-tu en tirer ?", "")
62
- if st.button("Vérifier la conclusion", key="conclusion"):
63
- if "câblage" in conclusion.lower() and "résoudre" in conclusion.lower():
64
- st.success("Bonne réponse ! Un câblage correct est indispensable pour assurer la communication entre les stations.")
65
- score += 1
66
- else:
67
- st.error("Non, n'oublie pas de mentionner l'importance du câblage pour résoudre ce problème.")
68
-
69
- # Investigation 2 : Résolution de panne
70
- st.subheader("Investigation 2 : Résolution de panne")
71
- 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.")
72
- st.write("Que vérifier en priorité si une station ne peut pas communiquer avec le réseau?")
73
- answer3 = st.text_input("Entrez votre réponse ici :", "")
74
- if st.button("Vérifier la résolution de panne", key="q3"):
75
- if "connexion" in answer3.lower() or "câblage" in answer3.lower():
76
- st.success("Bonne réponse ! Vérifier la connexion et le câblage est essentiel en cas de panne.")
77
- score += 1
78
- else:
79
- st.error("Essaie encore ! Réfléchis aux vérifications de base comme la connexion et le câblage.")
80
-
81
- # Score final
82
- st.subheader("Résultat")
83
- st.write(f"Ton score final est : {score} / 7")
84
- if score == 7:
85
- st.balloons()
86
- st.write("Félicitations! Tu as maîtrisé les bases de l'installation et du fonctionnement d'un réseau local.")
87
- else:
88
- st.write("Bon travail! N'hésite pas à réessayer pour améliorer ton score et ta compréhension.")
89
 
90
- st.write("---")
91
- st.write("Merci d'avoir joué ! Les concepts de réseau local sont essentiels pour comprendre le fonctionnement de nos appareils connectés.")
 
 
 
1
  import streamlit as st
2
+ import random
3
 
4
+ # Titre du jeu
5
+ st.title("Apprendre le Réseau Informatique en s'amusant !")
 
6
 
7
+ # Instructions pour les joueurs
8
+ st.write("Bienvenue dans ce jeu interactif ! L'objectif est d'apprendre les bases du réseau informatique en répondant à des questions. Bonne chance !")
9
 
10
+ # Liste des questions avec leurs réponses correctes
11
+ questions = [
12
+ {
13
+ "question": "Pourquoi est-il important de mettre à jour le matériel informatique dans un établissement comme le collège ?",
14
+ "choices": ["Pour améliorer la décoration", "Parce que le matériel devient rapidement obsolète", "Pour faire des économies d'énergie"],
15
+ "answer": "Parce que le matériel devient rapidement obsolète"
16
+ },
17
+ {
18
+ "question": "Quel est le rôle principal d'un serveur dans un réseau informatique ?",
19
+ "choices": ["Envoyer des emails", "Permettre de faire circuler les informations entre les ordinateurs", "Jouer de la musique"],
20
+ "answer": "Permettre de faire circuler les informations entre les ordinateurs"
21
+ },
22
+ {
23
+ "question": "À quoi sert un routeur dans un réseau local ?",
24
+ "choices": ["Fournir une connexion Wi-Fi à tous les utilisateurs", "Stocker des données", "Imprimer des documents"],
25
+ "answer": "Fournir une connexion Wi-Fi à tous les utilisateurs"
26
+ },
27
+ {
28
+ "question": "Quel équipement est nécessaire pour qu'une imprimante soit connectée au réseau et accessible à tous ?",
29
+ "choices": ["Un serveur", "Un routeur", "Un transmetteur"],
30
+ "answer": "Un routeur"
31
+ },
32
+ {
33
+ "question": "Quelle est la principale différence entre un ordinateur et un serveur dans un réseau ?",
34
+ "choices": [
35
+ "Un ordinateur est utilisé par les utilisateurs, tandis qu'un serveur fournit des services aux autres appareils du réseau",
36
+ "Un serveur est plus lent qu'un ordinateur",
37
+ "Un ordinateur est plus puissant qu'un serveur"
38
+ ],
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
+ "choices": ["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
+ "choices": ["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
+ "choices": ["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
+ "choices": [
59
+ "Pour installer des logiciels",
60
+ "Pour assurer que tous les appareils communiquent bien entre eux et résoudre les pannes",
61
+ "Pour acheter de nouveaux ordinateurs"
62
+ ],
63
+ "answer": "Pour assurer que tous les appareils communiquent bien entre eux et résoudre les pannes"
64
+ },
65
+ {
66
+ "question": "Que signifie 'obsolète' en parlant du matériel informatique ?",
67
+ "choices": ["Le matériel est ancien et moins performant", "Le matériel est rapide", "Le matériel est en parfait état"],
68
+ "answer": "Le matériel est ancien et moins performant"
69
+ },
70
+ {
71
+ "question": "Lorsqu'un appareil n'arrive pas à se connecter au réseau, quelle pourrait être la cause ?",
72
+ "choices": ["Un problème de câble ou de configuration réseau", "L'appareil est trop proche du routeur", "L'appareil est trop neuf"],
73
+ "answer": "Un problème de câble ou de configuration réseau"
74
+ },
75
+ {
76
+ "question": "Dans quel cas faut-il utiliser un switch dans un réseau ?",
77
+ "choices": ["Pour relier plusieurs appareils en réseau", "Pour connecter une imprimante", "Pour améliorer la qualité du Wi-Fi"],
78
+ "answer": "Pour relier plusieurs appareils en réseau"
79
+ },
80
+ {
81
+ "question": "Quel est le but d'un test de ping ?",
82
+ "choices": ["Vérifier la présence d’un virus", "Tester la communication entre deux appareils du réseau", "Configurer le Wi-Fi"],
83
+ "answer": "Tester la communication entre deux appareils du réseau"
84
+ },
85
+ {
86
+ "question": "Quels éléments sont nécessaires pour une bonne connexion réseau dans tout un bâtiment ?",
87
+ "choices": ["Transmetteurs et câbles", "Imprimantes et tablettes", "Claviers et souris"],
88
+ "answer": "Transmetteurs et câbles"
89
+ },
90
+ {
91
+ "question": "Que doit-on faire si un appareil ne reçoit pas de paquets lors d’un test de ping ?",
92
+ "choices": ["Ignorer le problème", "Vérifier les câbles et la configuration réseau", "Éteindre le routeur"],
93
+ "answer": "Vérifier les câbles et la configuration réseau"
94
+ }
95
+ ]
96
 
97
+ # Fonction pour afficher une question
98
+ def display_question(question_data):
99
+ st.write(question_data["question"])
100
+ choices = question_data["choices"]
101
+ random.shuffle(choices)
102
+ answer = st.radio("", choices)
103
+ if st.button("Valider"):
104
+ if answer == question_data["answer"]:
105
+ st.success("Bonne réponse !")
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
106
  else:
107
+ st.error(f"Mauvaise réponse. La bonne réponse était : {question_data['answer']}")
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
108
 
109
+ # Affichage des questions dans un ordre aléatoire
110
+ random.shuffle(questions)
111
+ for question_data in questions:
112
+ display_question(question_data)