2021-2022/2nd/13_Programmation/1E_tour_d_horizon.ipynb

393 lines
9.2 KiB
Plaintext

{
"cells": [
{
"cell_type": "markdown",
"id": "82bb037d",
"metadata": {},
"source": [
"# Étape 1: Tour d'horizon\n",
"\n"
]
},
{
"cell_type": "markdown",
"id": "a09120aa",
"metadata": {},
"source": [
"## Decrire un programme\n",
"\n",
"Ci-dessous, vous retrouverez des programmes. Vous devez les executer. Puis écrire une phrase par ligne de programme pour décrire ce qu'elle fait."
]
},
{
"cell_type": "markdown",
"id": "ce34c464",
"metadata": {},
"source": [
"### Programme 1"
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "6c462cdd",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Hello les 2nd\n",
"4\n"
]
}
],
"source": [
"print(\"Hello les 2nd\")\n",
"a = 2\n",
"print(a + a)"
]
},
{
"cell_type": "markdown",
"id": "b766a901",
"metadata": {},
"source": [
"Description"
]
},
{
"cell_type": "raw",
"id": "9aa07472",
"metadata": {},
"source": []
},
{
"cell_type": "markdown",
"id": "6705ac53",
"metadata": {},
"source": [
"### Programme 2"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "7c20ebd3",
"metadata": {},
"outputs": [],
"source": [
"age = int(input(\"Quel age as-tu?\"))\n",
"if age >= 18:\n",
" print(\"Tu es majeur, tu peux passer ton permis\")\n",
"else:\n",
" print(\"Tu es mineur\")\n",
" \n",
" print(\"Il te reste \", 18 - age, \"ans avant de pouvoir passer le permis\")"
]
},
{
"cell_type": "markdown",
"id": "37efc7f9",
"metadata": {},
"source": [
"Description"
]
},
{
"cell_type": "raw",
"id": "0f5661ea",
"metadata": {},
"source": []
},
{
"cell_type": "markdown",
"id": "779b8f5e",
"metadata": {},
"source": [
"### Programme 3\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "62ff525c",
"metadata": {},
"outputs": [],
"source": [
"def f(x):\n",
" resultat = x^2 + 2\n",
" return resultat\n",
"print(f(0))\n",
"print(f(10))"
]
},
{
"cell_type": "markdown",
"id": "13ebd340",
"metadata": {},
"source": [
"Description"
]
},
{
"cell_type": "raw",
"id": "429f7854",
"metadata": {},
"source": []
},
{
"cell_type": "markdown",
"id": "244bd147",
"metadata": {},
"source": [
"## Modifier le programme de la momie\n",
"\n",
"Ci-dessous, vous avez un programme qui code un jeu de hazard. Faites quelques parties pour essayer de comprendre ce qu'il s'y passe.\n",
"\n",
"**Ne modifier pas ce programme**\n",
"\n",
"Si plus rien ne se passe sans message rouge, un `input` est bloqué. Cliquer sur `Noyau` puis sur `Redémmarer & effacer les sorties`."
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "8c4cabd7",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Tu arrives dans un long couloir et tu avances. Jusqu'à ce que...\n",
"Il y a 3 portes devant toi.\n",
"Laquelle ouvres-tu?3\n",
"Rien! Tu as survécu à une porte en plus.\n",
"Tu arrives dans un long couloir et tu avances. Jusqu'à ce que...\n",
"Il y a 3 portes devant toi.\n",
"Laquelle ouvres-tu?3\n",
"Une momie attaque!\n",
"Elle te touche une fois\n",
"Elle te touche une fois\n",
"Elle te touche une fois\n",
"Tu arrives dans un long couloir et tu avances. Jusqu'à ce que...\n",
"Il y a 3 portes devant toi.\n",
"Laquelle ouvres-tu?3\n",
"Rien! Tu as survécu à une porte en plus.\n",
"Tu arrives dans un long couloir et tu avances. Jusqu'à ce que...\n",
"Il y a 3 portes devant toi.\n",
"Laquelle ouvres-tu?3\n",
"Rien! Tu as survécu à une porte en plus.\n",
"Tu arrives dans un long couloir et tu avances. Jusqu'à ce que...\n",
"Il y a 3 portes devant toi.\n"
]
}
],
"source": [
"# Programme de la momie - tiré du livre les maths ensembles et pour chacun\n",
"from random import randint\n",
"\n",
"def choisir_porte(nombre_portes):\n",
" print(\"Il y a \" + str(nombre_portes) + \" portes devant toi.\")\n",
" porte_choisie = int(input( \"Laquelle ouvres-tu?\"))\n",
" return porte_choisie\n",
" \n",
" \n",
"nombre_portes = 3\n",
"points_de_vie = 5\n",
"score = 0\n",
"degat_momie = 3\n",
"\n",
"while points_de_vie > 0:\n",
" print(\"Tu arrives dans un long couloir et tu avances. Jusqu'à ce que...\")\n",
" porte_momie = randint(0, nombre_portes)\n",
" porte_choisie = choisir_porte(nombre_portes)\n",
" if porte_choisie == porte_momie:\n",
" print(\"Une momie attaque!\")\n",
" for i in range(degat_momie):\n",
" print(\"Elle te touche une fois\")\n",
" points_de_vie = points_de_vie - 1\n",
" else:\n",
" print(\"Rien! Tu as survécu à une porte en plus.\")\n",
" score = score + 1\n",
"\n",
"print(\"T'es mort. Tu n'as plus de points de vie.\")\n",
"print(\"Le jeu est fini, ton score est de \", score)"
]
},
{
"cell_type": "markdown",
"id": "4adb232c",
"metadata": {},
"source": [
"Maintenant que vous avez un peu joué à ce jeu. Vous allez créer des variantes de ce jeu. \n",
"\n",
"Vous devez faire dans l'ordre les variantes 1, 2 et 3. Les autres peuvent être fait dans l'ordre que vous souhaitez en fonction de ce qui vous inspire.\n",
"\n",
"**Pour chaque variante, vous copirez puis collerez le programme précédent avant de le modifier.**"
]
},
{
"cell_type": "markdown",
"id": "e360a730",
"metadata": {},
"source": [
"*Variante 1* Modifier le programme pour que chaque ouverture de porte sans momie rapporte 10 points"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "cdf9574f",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"id": "bf70e6c4",
"metadata": {},
"source": [
"*Variante 2* Modifier le programme pour que l'on commence avec 5 points de vie mais qu'il n'y ait que deux portes à chaque fois."
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "20e5169e",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"id": "7b0a44c8",
"metadata": {},
"source": [
"*Variante 3* On part fixe le nombre de porte à 3. Quelle est la probabilité de tomber sur un momie? Transformer le programme pour la probabilité de tomber sur un momie soit de 3/2."
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "4d363605",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"id": "470dee5f",
"metadata": {},
"source": [
"---\n",
"Les variantes suivantes peuvent être faites dans l'ordre que vous souhaitez."
]
},
{
"cell_type": "markdown",
"id": "3836b2cb",
"metadata": {},
"source": [
"*Variante 4* Le programme comporte un gros bug. Il est possible de ne jamais être dévoré par la momie. Proposer une façon de corriger ce bug."
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "5542e10a",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"id": "c36ead34",
"metadata": {},
"source": [
"*Variante 5* Modifier le programme pour qu'à chaque fois que l'on tombe sur une momie. On ait une chance sur deux de perdre 1 point de vie et une chance sur 2 de ne perdre 2 points de vie."
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "739845b3",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"id": "30099d48",
"metadata": {},
"source": [
"*Variante 6* Ajouter d'autres monstres cachés derière d'autres portes qui enlèves plus ou moins de points."
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "26496d02",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"id": "67564a0e",
"metadata": {},
"source": [
"Variante 7 Étonnez nous avec une variante bien à vous!"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "05ab2d60",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"id": "99b5faf1",
"metadata": {},
"source": [
"## Bilan\n",
"\n",
"Noter les mots écris en vert dans différents programmes manipulés et décrire l'action de chacun d'eux."
]
},
{
"cell_type": "raw",
"id": "935c6a7a",
"metadata": {},
"source": [
"\n"
]
}
],
"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.10.2"
}
},
"nbformat": 4,
"nbformat_minor": 5
}