{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Mini-projet collectif : \"dessiner ma rue\"\n",
"\n",
"\n",
"
\n",
"\n",
"On utilisera pour cela le module **`ipycanvas`** de [Martin RENOU](https://github.com/martinRenou) :\n",
"\n",
"
\n",
"\n",
"\n",
"Si vous ne connaissez pas ce module, il vous faut donc préalablement le prendre en main en faisant, par exemple, les activités de [ipycanvas-Le_BN_pour_dessiner.ipynb\n",
"](ipycanvas-Le_BN_pour_dessiner.ipynb)...\n",
"\n",
"## Contraintes :\n",
"\n",
"Les contraintes urbanistiques sont les suivantes :\n",
"\n",
"- Les immeubles ont au minimum un rez-de-chaussée et au maximum 4 étages (5 niveaux) ;\n",
"- Les immeubles ont une largeur de 140 pixels ;\n",
"- Les immeubles ont une couleur unique pour toute la façade ;\n",
"- D'une manière générale, tous les tracés de contour des formes sont de couleur noire et font 1 pixel d'épaisseur ;\n",
"- Chaque niveau (rez-de-chaussée ou étage) a une façade de hauteur 60 pixels ;\n",
"- Les rez-de-chaussée n'ont qu'une seule porte et 2 fenêtres placées aléatoirement ;\n",
"- Toutes les fenêtres sont identiques, de taille 30 pixels sur 30 pixels avec une vitre de couleur 'Azure' le jour ;\n",
"- Toutes les portes fenêtre ont un balcon et font une taille de 30 pixels en largeur et 50 pixels en hauteurs ;\n",
"- Le toit peut avoir 2 formes; plat ou triangulaire :\n",
" - Si le toit est plat : il fait une épaisseur de 10 pixels ;\n",
"\t- Si le toit est triangulaire, il fait une hauteur de 40 pixels pour une base de 160 pixels.\n",
"\n",
"\n",
"## Exemples :\n",
"\n",
"
\n",
"\n",
"La série d'exemples suivants est basée sur :\n",
"-\tune couleur aléatoire pour les façades ;\n",
"-\tdeux modèles de toits ;\n",
"-\tdeux modèles de portes avec une couleur aléatoire ;\n",
"-\tdeux modèles d'ouvertures pour les étages : fenêtre ou porte-fenêtre avec balcon ;\n",
"-\ttrois éléments horizontalement pour chaque niveau.\n",
"
\n",
"
\n",
"\n",
"\n",
"\n",
"\n",
"## Travail à faire :\n",
"\n",
"Livrer un programme constitué de modules qui réponde au problème posé en utilisant le module **`ipycanvas`** de [Martin RENOU](https://github.com/martinRenou).\n",
"\n",
"Vous utiliserez le plus de petites fonctions possibles :\n",
"\n",
"
\n",
"\n",
"\n",
"Le [Product Backlog](https://blog.myagilepartner.fr/index.php/2018/08/07/backlog/#:~:text=D%C3%A9finition%20du%20product%20backlog&text=Il%20repr%C3%A9sente%20l'ensemble%20des,les%20spike%20voire%20les%20bugs.), c'est à dire les modules à produire et leurs dépendances sont décrits dans le schéma ci-dessus.\n",
"\n",
"\n",
"\n",
"Vous travaillerez collectivement en mode agile et en interdépendance à travers des importations de modules par équipes de 6 élèves + 1 professeur qui jouera le role de [Product Owner](https://www.orientation.com/metiers/product-owner).\n",
"\n",
"Les équipes seront donc misent en concurrences pour ce projet.\n",
"\n",
"Dans chaque équipe vous désignerez deux volontaires pour être [Scrum Master](https://www.clementine.jobs/fiches-metiers/metiers-techniques-du-web/scrum-master/#:~:text=Le%20Scrum%20Master%20est%20avant,en%20suivant%20la%20m%C3%A9thode%20Scrum.).\n",
"\n",
"Tout le monde participe activement au développement du code y compris le [Product Owner](https://www.orientation.com/metiers/product-owner) en cas de besoin (mais pas trop parce qu'il n'a pas que ça à faire !;) ).\n",
"\n",
"Ce projet sera donc aussi l'occasion de découvrir et d'expérimenter les rudiments d'une méthode agile que présente les vidéos suivantes..."
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"