Update app.py
Browse files
app.py
CHANGED
|
@@ -1,91 +1,112 @@
|
|
| 1 |
import streamlit as st
|
|
|
|
| 2 |
|
| 3 |
-
# Titre
|
| 4 |
-
st.title("
|
| 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 |
-
#
|
| 8 |
-
|
| 9 |
|
| 10 |
-
#
|
| 11 |
-
|
| 12 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 13 |
|
| 14 |
-
#
|
| 15 |
-
|
| 16 |
-
st.write("
|
| 17 |
-
|
| 18 |
-
|
| 19 |
-
|
| 20 |
-
if
|
| 21 |
-
|
| 22 |
-
|
| 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("
|
| 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 |
-
|
| 91 |
-
|
|
|
|
|
|
|
|
|
| 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)
|