Update app.py
Browse files
app.py
CHANGED
|
@@ -1,132 +1,94 @@
|
|
| 1 |
import streamlit as st
|
| 2 |
-
import random
|
| 3 |
|
| 4 |
-
# Titre et
|
| 5 |
-
st.title("
|
| 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 |
-
#
|
| 94 |
score = 0
|
| 95 |
-
random.shuffle(questions) # Mélange les questions pour plus de variété
|
| 96 |
|
| 97 |
-
#
|
| 98 |
-
|
| 99 |
-
|
| 100 |
|
| 101 |
-
|
| 102 |
-
|
| 103 |
-
|
| 104 |
-
|
| 105 |
-
|
| 106 |
-
|
| 107 |
-
|
| 108 |
-
|
| 109 |
-
|
| 110 |
-
|
| 111 |
-
|
| 112 |
-
|
| 113 |
-
st.write("Réponse correcte : ", q["answer"])
|
| 114 |
else:
|
| 115 |
-
|
| 116 |
-
|
| 117 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 118 |
else:
|
| 119 |
-
st.error("
|
| 120 |
-
st.write("Réponse correcte : ", q["answer"])
|
| 121 |
|
| 122 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 123 |
|
| 124 |
-
#
|
| 125 |
-
st.
|
| 126 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 127 |
st.balloons()
|
| 128 |
-
st.
|
| 129 |
-
elif score > len(questions) / 2:
|
| 130 |
-
st.info("Pas mal, mais vous pouvez encore vous améliorer !")
|
| 131 |
else:
|
| 132 |
-
st.
|
|
|
|
|
|
|
|
|
|
|
|
| 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.")
|