Compare commits
5 Commits
cb212ba6bf
...
eb62277a3f
Author | SHA1 | Date | |
---|---|---|---|
eb62277a3f | |||
3dbcc23df6 | |||
1ab61b3954 | |||
f5c143964b | |||
811f41d93d |
370
1NSI/Evaluations/DS_2023-05-22/DS5.ipynb
Normal file
370
1NSI/Evaluations/DS_2023-05-22/DS5.ipynb
Normal file
@ -0,0 +1,370 @@
|
||||
{
|
||||
"cells": [
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "ecd73354",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"# DS 5\n",
|
||||
"\n",
|
||||
"Cette partie comporte deux parties:\n",
|
||||
"\n",
|
||||
"- Partie programmation\n",
|
||||
"- Partie réseau\n",
|
||||
"\n",
|
||||
"Ces deux parties sont indépendantes et peuvent être traitées dans l'ordre que vous voulez."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "f8136040",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"## Partie programmation\n",
|
||||
"\n",
|
||||
"Une ville souhaite gérer son parc de vélos en location partagée. L’ensemble de la flotte de vélos est stocké dans une table de données représentée en langage Python par un dictionnaire contenant des associations de type `id_velo : dict_velo` où `id_velo` est un nombre entier compris entre 1 et 199 qui correspond à l'identifiant unique du vélo et `dict_velo` est un dictionnaire dont les clés sont : \"type\", \"etat\", \"station\".\n",
|
||||
"\n",
|
||||
"Les valeurs associées aux clés \"type\", \"etat\", \"station\" de dict_velo sont de type chaînes de caractères ou nombre entier :\n",
|
||||
"\n",
|
||||
"- \"type\" : chaîne de caractères qui peut prendre la valeur \"electrique\" ou \"classique\"\n",
|
||||
"- \"état\" : nombre entier qui peut prendre la valeur 1 si le vélo est disponible, 0 si le vélo est en déplacement, -1 si le vélo est en panne\n",
|
||||
"- \"station\" : chaînes de caractères qui identifie la station où est garé le vélo.\n",
|
||||
"\n",
|
||||
"Dans le cas où le vélo est en déplacement ou en panne, \"station\" correspond à celle où il a été dernièrement stationné.\n",
|
||||
"\n",
|
||||
"Voici un extrait de la table de données :\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 2,
|
||||
"id": "295fb0ce",
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"flotte = {\n",
|
||||
"12 : {\"type\" : \"electrique\", \"etat\" : 1, \"station\" : \"Prefecture\"},\n",
|
||||
"80 : {\"type\" : \"classique\", \"etat\" : 0, \"station\" : \"Saint-Leu\"},\n",
|
||||
"45 : {\"type\" : \"classique\", \"etat\" : 1, \"station\" : \"Baraban\"},\n",
|
||||
"41 : {\"type\" : \"classique\", \"etat\" : -1, \"station\" : \"Citadelle\"},\n",
|
||||
"26 : {\"type\" : \"classique\", \"etat\" : 1, \"station\" : \"Coliseum\"},\n",
|
||||
"28 : {\"type\" : \"electrique\", \"etat\" : 0, \"station\" : \"Coliseum\"},\n",
|
||||
"74 : {\"type\" : \"electrique\", \"etat\" : 1, \"station\" : \"Jacobins\"},\n",
|
||||
"13 : {\"type\" : \"classique\", \"etat\" : 0, \"station\" : \"Citadelle\"},\n",
|
||||
"83 : {\"type\" : \"classique\", \"etat\" : -1, \"station\" : \"Saint-Leu\"},\n",
|
||||
"22 : {\"type\" : \"electrique\", \"etat\" : -1, \"station\" : \"Joffre\"}\n",
|
||||
"}"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "d2282abe",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"\n",
|
||||
"`flotte` étant une variable globale du programme.\n",
|
||||
"\n",
|
||||
"1a. Comment obtenir les informations sur le vélo avec l'id 26?"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "raw",
|
||||
"id": "a430f6b3",
|
||||
"metadata": {},
|
||||
"source": []
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "5951facb",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"1b. Comment obtenir l'état du vélo avec l'id 83?"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"id": "86feec80",
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": []
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "4e28b9ae",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"1c. Ajouter le vélo avec l'id 1 de type electrique, disponible à la station Joffre dans le dictionnaire `flotte`."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"id": "d4fd9d3d",
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": []
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "d7173496",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"2. On définit la fonction `proposition`"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 3,
|
||||
"id": "a13ebd11",
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"def proposition(choix):\n",
|
||||
" for v in flotte:\n",
|
||||
" if flotte[v][\"type\"] == choix and flotte[v][\"etat\"] == 1:\n",
|
||||
" return flotte[v][\"station\"]"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "8771166f",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"2a. Quelles sont les valeurs possibles de la variable `choix`?"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "raw",
|
||||
"id": "d43c9a4e",
|
||||
"metadata": {},
|
||||
"source": []
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "fb52e033",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"2b. Ecrire deux tests pour vérifier le bon fonctionnement de la fonction `proposition`"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"id": "b8ab1c1a",
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": []
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "417fa333",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"Dans la suite, tous vos programmes devront marcher même si le dictionnaire `flotte` change.\n",
|
||||
"\n",
|
||||
"3. Ecrire un programme qui compte le nombre de vélo de type electrique."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"id": "8a9514e4",
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": []
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "3f341db7",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"4. Ecrire un programme qui affiche l'id des vélos de la station *Citadelle*."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"id": "968408e5",
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": []
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "ff4efcca",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"5. On dispose d'une table de données des positions GPS de toutes les stations,\n",
|
||||
"dont un extrait est donné ci-dessous. Cette table est stockée sous forme d’un\n",
|
||||
"dictionnaire.\n",
|
||||
"\n",
|
||||
"Chaque élément du dictionnaire est du type: `nom de station: (latitude, longitude)`"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 4,
|
||||
"id": "19622d5e",
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"stations = {\n",
|
||||
"'Prefecture' : (49.8905, 2.2967) ,\n",
|
||||
"'Saint-Leu' : (49.8982, 2.3017),\n",
|
||||
"'Coliseum' : (49.8942, 2.2874),\n",
|
||||
"'Jacobins' : (49.8912, 2.3016)\n",
|
||||
"}"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "0935a479",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"On souhaite préparer les donner pour afficher la position de chaque vélo.\n",
|
||||
"\n",
|
||||
"Écrire un script qui créer un dictionnaire `flotte_position` avec en clé l'id des vélos et en clé la position (tuple de longitude et latitude) de la station à laquel il est associé."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"id": "52c0f94e",
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": []
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "dac575d3",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"## Partie réseau\n",
|
||||
"\n",
|
||||
"Une entreprise décide d'organiser son réseau de la manière suivante\n",
|
||||
"\n",
|
||||
"![reseau](./reseau.png)\n",
|
||||
"\n",
|
||||
"L'icone nuage représente le réseau internet.\n",
|
||||
"\n",
|
||||
"1. Quel matériel doit-elle utiliser pour les objets A, B et C?"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "raw",
|
||||
"id": "9b2da650",
|
||||
"metadata": {},
|
||||
"source": []
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "43e7c4f0",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"2. Identifier les sous réseaux que vous identifiez en précisant les équipements qui le constitue."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "raw",
|
||||
"id": "87a8447d",
|
||||
"metadata": {},
|
||||
"source": []
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "ed133011",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"3. Le poste 2 envoie la trame suivante au serveur web\n",
|
||||
"\n",
|
||||
"![trame](./trame.png)\n",
|
||||
"\n",
|
||||
"3a. Quel est le type de contenu qui est échangé entre le poste 2 et le serveur web?"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "raw",
|
||||
"id": "1fa9aff6",
|
||||
"metadata": {},
|
||||
"source": []
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "257a51db",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"3b. Quelles informations peut-on en tirer sur le poste 2?"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "raw",
|
||||
"id": "4060a968",
|
||||
"metadata": {},
|
||||
"source": []
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "b7446e92",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"3c. Quelles information peut-on en tirer sur le serveur WEB?"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "raw",
|
||||
"id": "0b7913b5",
|
||||
"metadata": {},
|
||||
"source": []
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "d0fa236c",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"3d. Supposons que la réponse à cette requète soit une page web volumineuse. Que va-t-il se passer au niveau de la couche transport? Expliquer l'interet d'une tel manoeuvre."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "raw",
|
||||
"id": "080bdc35",
|
||||
"metadata": {},
|
||||
"source": []
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "a5c61806",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"4. Expliquer en quelques mots le principe d'encapsulation du protocole TCP/IP et les bénéfices de ce choix technique."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "raw",
|
||||
"id": "49138878",
|
||||
"metadata": {},
|
||||
"source": []
|
||||
}
|
||||
],
|
||||
"metadata": {
|
||||
"kernelspec": {
|
||||
"display_name": "Python 3 (ipykernel)",
|
||||
"language": "python",
|
||||
"name": "python3"
|
||||
},
|
||||
"language_info": {
|
||||
"codemirror_mode": {
|
||||
"name": "ipython",
|
||||
"version": 3
|
||||
},
|
||||
"file_extension": ".py",
|
||||
"mimetype": "text/x-python",
|
||||
"name": "python",
|
||||
"nbconvert_exporter": "python",
|
||||
"pygments_lexer": "ipython3",
|
||||
"version": "3.11.3"
|
||||
}
|
||||
},
|
||||
"nbformat": 4,
|
||||
"nbformat_minor": 5
|
||||
}
|
121
1NSI/Evaluations/DS_2023-05-22/exercises.tex
Normal file
121
1NSI/Evaluations/DS_2023-05-22/exercises.tex
Normal file
@ -0,0 +1,121 @@
|
||||
\begin{exercise}[subtitle={QCM}, step={1}, origin={Annales}, topics={ }, tags={ }]
|
||||
\begin{enumerate}
|
||||
\item On exécute le code suivant
|
||||
|
||||
\begin{center}
|
||||
\begin{minipage}{\linewidth}
|
||||
\inputminted[bgcolor=base3]{python}{./scripts/qcm_maxi.py}
|
||||
\end{minipage}
|
||||
\end{center}
|
||||
Quelle est alors la valeur de \mintinline{python}{maxi(L)}
|
||||
\begin{tasks}(4)
|
||||
\task \mintinline{python}{('Alice', 17)}
|
||||
\task \mintinline{python}{('Doriane', 17)}
|
||||
\task \mintinline{python}{('Fabienne', 17)}
|
||||
\task \mintinline{python}{('Emilien', 14)}
|
||||
\end{tasks}
|
||||
|
||||
\item Un fichier CSV …
|
||||
\begin{tasks}(2)
|
||||
\task ne peut être lu que par un tableur
|
||||
\task est l'unique format utilisé pour construire une base de données
|
||||
\task est un fichier texte
|
||||
\task est un format propriétaire
|
||||
\end{tasks}
|
||||
|
||||
\item Qu'est-ce que le CSV ?
|
||||
\begin{tasks}(2)
|
||||
\task Un langage de programmation
|
||||
\task Un format de fichier permettant de stocker de l’information
|
||||
\task Un algorithme permettant de rechercher une information dans un fichier
|
||||
\task Un format de fichier permettant de définir le style d’une page web
|
||||
\end{tasks}
|
||||
|
||||
\item On définit ainsi la liste \mintinline{python}{t}
|
||||
\begin{center}
|
||||
\begin{minipage}{\linewidth}
|
||||
\inputminted[bgcolor=base3]{python}{./scripts/qcm_list_dico.py}
|
||||
\end{minipage}
|
||||
\end{center}
|
||||
Quelle affirmation est correcte?
|
||||
\begin{tasks}(2)
|
||||
\task t est une liste de listes
|
||||
\task t est une liste de dictionnaires
|
||||
\task t est un dictionnaire de listes
|
||||
\task t est une liste de tuples
|
||||
\end{tasks}
|
||||
|
||||
\item On a extrait les deux premières lignes de différents fichiers.
|
||||
Déterminer celui qui est un authentique fichier CSV :
|
||||
|
||||
\begin{tasks}(1)
|
||||
\task \texttt{Nom,Pays, Temps} \\
|
||||
\texttt{Camille Muffat, France, 241.45}
|
||||
\task \texttt{Nom,Pays, Temps} \\
|
||||
\texttt{Camille Muffat France 241.45}
|
||||
\task \texttt{[}\\
|
||||
\texttt{{ "Nom": "Camille Muffat", "Pays": "France", "Temps": 241.45}, }
|
||||
\task \texttt{[}\\
|
||||
\texttt{{ No": "Camille Muffat", Pays: "France", Temps: 241.45}, }
|
||||
\end{tasks}
|
||||
|
||||
\item Soit la table de données suivante :
|
||||
|
||||
\begin{center}
|
||||
\begin{tabular}{|c|c|c|}
|
||||
\hline
|
||||
nom & prenom & date\_naissance \\
|
||||
\hline
|
||||
Dupont & Pierre & 17/05/1987 \\
|
||||
\hline
|
||||
Dupond & Catherine & 18/07/1981 \\
|
||||
\hline
|
||||
Haddock & Archibald & 23/04/1998 \\
|
||||
\hline
|
||||
\end{tabular}
|
||||
\end{center}
|
||||
|
||||
Quels sont les descripteurs de ce tableau ?
|
||||
\begin{tasks}(2)
|
||||
\task nom, prenom et date\_naissance
|
||||
\task Dupont, Pierre et 17/05/1987
|
||||
\task Dupont, Dupond et Haddock
|
||||
\task il n'y en a pas
|
||||
\end{tasks}
|
||||
|
||||
\item On définit un dictionnaire : \mintinline{python}{d = {"couleur": "vert", "taille": 42, "marque": "le coq sportif"}}
|
||||
Quelle est la valeur de l'expression \mintinline{python}{d.keys()}?
|
||||
\begin{tasks}(1)
|
||||
\task \mintinline{python}{["couleur", "taille", "marque"]}
|
||||
\task \mintinline{python}{[("couleur", "vert"), ("taille", 42), ("marque", "le coq sportif")]}
|
||||
\task \mintinline{python}{["vert", 42, "le coq sportif"]}
|
||||
\task \mintinline{python}{["couleur": "vert", "taille":42, "marque":"le coq sportif"]}
|
||||
\end{tasks}
|
||||
|
||||
\item Parmi les éléments suivants lequel peut être une adresse MAC?
|
||||
|
||||
\begin{tasks}(2)
|
||||
\task \texttt{192.168.2.1.5.2}
|
||||
\task \texttt{192.168.2.1}
|
||||
\task \texttt{52:54:00:a8:f6:07}
|
||||
\task \texttt{52:54:00:a8:f6}
|
||||
\end{tasks}
|
||||
|
||||
\item Le multiplexage est utilisé pour
|
||||
\begin{tasks}(2)
|
||||
\task Découper des paquets en morceaux pour fluidifier le trafic
|
||||
\task Découper des paquets en morceau pour accélérer les échanges
|
||||
\task Faire passer les paquets d'une couche à une autre
|
||||
\task Router les paquets entre les réseaux
|
||||
\end{tasks}
|
||||
|
||||
\item Quel identifiant est utilisé pour désigner la source et la destination au niveau de la couche transport du protocole TCP/IP?
|
||||
\begin{tasks}(4)
|
||||
\task L'IP
|
||||
\task TCP
|
||||
\task L'adresse MAC
|
||||
\task le port
|
||||
\end{tasks}
|
||||
|
||||
\end{enumerate}
|
||||
\end{exercise}
|
BIN
1NSI/Evaluations/DS_2023-05-22/reseau.png
Normal file
BIN
1NSI/Evaluations/DS_2023-05-22/reseau.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 78 KiB |
638
1NSI/Evaluations/DS_2023-05-22/reseau.svg
Normal file
638
1NSI/Evaluations/DS_2023-05-22/reseau.svg
Normal file
File diff suppressed because one or more lines are too long
After Width: | Height: | Size: 95 KiB |
3
1NSI/Evaluations/DS_2023-05-22/scripts/qcm_list_dico.py
Normal file
3
1NSI/Evaluations/DS_2023-05-22/scripts/qcm_list_dico.py
Normal file
@ -0,0 +1,3 @@
|
||||
t = [ {'id':1, 'age':23, 'sejour':'PEKIN'}, {'id':2, 'age':27, 'sejour':'ISTANBUL'},
|
||||
{'id':3, 'age':53, 'sejour':'LONDRES'}, {'id':4, 'age':41, 'sejour':'ISTANBUL'},
|
||||
{'id':5, 'age':62, 'sejour':'RIO'}, {'id':6, 'age':28, 'sejour':'ALGER'}]
|
11
1NSI/Evaluations/DS_2023-05-22/scripts/qcm_maxi.py
Normal file
11
1NSI/Evaluations/DS_2023-05-22/scripts/qcm_maxi.py
Normal file
@ -0,0 +1,11 @@
|
||||
def maxi(t):
|
||||
m = t[0]
|
||||
for x in t:
|
||||
if x[1] >= m[1]:
|
||||
m = x
|
||||
return m
|
||||
|
||||
L = [ ('Alice', 17), ('Barnabé', 17),
|
||||
('Casimir', 17), ('Doriane', 17),
|
||||
('Emilien', 14), ('Fabienne', 16)
|
||||
]
|
BIN
1NSI/Evaluations/DS_2023-05-22/sujet.pdf
Normal file
BIN
1NSI/Evaluations/DS_2023-05-22/sujet.pdf
Normal file
Binary file not shown.
@ -1,15 +1,17 @@
|
||||
\documentclass[a4paper,12pt]{article}
|
||||
\usepackage{myXsim}
|
||||
\usepackage{minted}
|
||||
|
||||
% Title Page
|
||||
\title{ Devoir commun T3 \hfill }
|
||||
\tribe{EnseignementsScientifique}
|
||||
\title{ DS5 \hfill }
|
||||
\tribe{1NSI}
|
||||
\date{22 mai 2023}
|
||||
\duree{}
|
||||
\duree{1h}
|
||||
|
||||
\DeclareExerciseCollection[step=1]{banque}
|
||||
\xsimsetup{collect}
|
||||
|
||||
\pagestyle{empty}
|
||||
|
||||
\begin{document}
|
||||
\maketitle
|
BIN
1NSI/Evaluations/DS_2023-05-22/trame.png
Normal file
BIN
1NSI/Evaluations/DS_2023-05-22/trame.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 6.8 KiB |
Binary file not shown.
@ -1,7 +0,0 @@
|
||||
\begin{exercise}[subtitle={<++>}, step={1}, origin={<++>}, topics={ }, tags={ }]
|
||||
<++>
|
||||
\end{exercise}
|
||||
|
||||
\begin{solution}
|
||||
<++>
|
||||
\end{solution}
|
@ -116,3 +116,29 @@
|
||||
\item Écrire un programme qui allume la led centrale, qui la fait se déplacer à droite quand le B est pressé et vers la droite si c'est le bouton A.
|
||||
\end{enumerate}
|
||||
\end{exercise}
|
||||
|
||||
\begin{exercise}[subtitle={Jeu final - Pierre Feuille Ciseau}, step={3}, origin={Ma tête}, topics={ Informatique embarqué et objets connectés }, tags={ Python, Programmation, Architecture }]
|
||||
On souhaite créer un jeu de pierre feuille ciseau sur micro-bit pour jouer contre l'ordinateur.
|
||||
|
||||
\begin{enumerate}
|
||||
\item Dessiner 3 icônes pierre, feuille et ciseaux puis les afficher les unes à la suite des autres sur l'écran du micro-bit.
|
||||
\item Le programme ci-dessous permet de choisir au hasard entre \mintinline{python}{"P"} (pour pierre), \mintinline{python}{"F"} (pour feuille) et \mintinline{python}{"C"} (pour ciseau)
|
||||
\begin{center}
|
||||
\begin{minipage}{0.7\linewidth}
|
||||
\inputminted[bgcolor=base3,linenos]{python}{./scripts/05_PFC.py}
|
||||
\end{minipage}
|
||||
\end{center}
|
||||
Adapter le programme pour qu'il affiche vos icônes à la place du nom du choix.
|
||||
\item Ajouter un décompte (de 3 à 1) au début du programme (après le \mintinline{python}{while True}).
|
||||
\item Avant de faire faire un choix au hasard au microbit, donner la possibilité à l'utilisateur de faire sélectionner sont choix :
|
||||
\begin{itemize}
|
||||
\item Quand bouton A est pressé, c'est Ciseau
|
||||
\item Quand bouton B est pressé, c'est Pierre
|
||||
\item Quand bouton A et B sont pressés, c'est Feuille
|
||||
\end{itemize}
|
||||
Afficher le choix de l'utilisateur avant celui de l'ordi.
|
||||
\item Après que le choix de l'utilisateur et celui du microbit sont affichés, afficher une icône pour savoir si on a gagné ou perdu.
|
||||
\item Bonus: adapter ce jeu pour que deux personnes sur micro-bit puissent s'affronter.
|
||||
|
||||
\end{enumerate}
|
||||
\end{exercise}
|
||||
|
Binary file not shown.
@ -2,6 +2,6 @@ from microbit import *
|
||||
import time
|
||||
|
||||
for col in range(5):
|
||||
display.set_led(col, 0, 9)
|
||||
# set_led(colonne, ligne, intensité)
|
||||
display.set_pixel(col, 0, 9)
|
||||
# set_pixel(colonne, ligne, intensité)
|
||||
time.sleep(0.5)
|
||||
|
@ -0,0 +1,13 @@
|
||||
from microbit import *
|
||||
from random import choice
|
||||
import time
|
||||
|
||||
while True:
|
||||
choix = choice(["P", "F", "C"])
|
||||
if choix == "P":
|
||||
display.scroll("Pierre")
|
||||
elif choix == "F":
|
||||
display.scroll("Feuille")
|
||||
elif choix == "C":
|
||||
display.scroll("Ciseaux")
|
||||
time.sleep(1)
|
Loading…
Reference in New Issue
Block a user