{"id":2949,"date":"2025-11-18T09:46:35","date_gmt":"2025-11-18T08:46:35","guid":{"rendered":"https:\/\/labodemaths.fr\/WordPress3\/?p=2949"},"modified":"2025-11-27T14:39:04","modified_gmt":"2025-11-27T13:39:04","slug":"nsi-mini-jdr","status":"publish","type":"post","link":"https:\/\/labodemaths.fr\/WordPress3\/nsi-mini-jdr\/","title":{"rendered":"NSI, mini-jDR"},"content":{"rendered":"\n<pre class=\"wp-block-code\"><code>#### mini-projet JDR\nfrom random import randint\n\n### les personnages ont 4 capacit\u00e9s \n### la Force, l'Agilit\u00e9, la Magie qui sont d\u00e9termin\u00e9es par un 1D20\n### Les PV sont d\u00e9termin\u00e9s par la somme de ses 3 caract\u00e9ristiques\n### il y a 3 types de personnages : Guerrier, Voleur, Mage\n### le type est d\u00e9termin\u00e9 par un tirage al\u00e9atoire.\n\n\ndef creation_perso(nom):\n    '''\n    &gt;&gt;&gt;creation_perso(\"Gandalf\")\n    {nom:\"Gandalf\",type:\"Guerrier\",\n    \"Force\": 15 , \"Agilit\u00e9\": 9  ,\"Magie\":  5  ,\"PV\": 29\n    }\n    '''\n\n\n ### pour les combats, on regarde la caract\u00e9ristique propre \u00e0 chaque type :guerrier-&gt;Force, mage-&gt;Magie, voleur -&gt; agilit\u00e9\n### celui qui a la caract\u00e9ristique propre la plus \u00e9lev\u00e9e commence\n### en cas d'\u00e9galit\u00e9, on proc\u00e8de \u00e0 un tirage al\u00e9atoire pour d\u00e9terminer celui qui commence\n### les points de d\u00e9gats inflig\u00e9s sont d\u00e9termin\u00e9s par la diff\u00e9rence des caract\u00e9ristiques propres auquel on ajoute un d6, ils sont enlev\u00e9s aux pv du personnage en d\u00e9fense\n### on permute les r\u00f4les attaquant et d\u00e9fenseur, on continue jusqu'\u00e0 ce qu'un des perso ait moins de 0 pv\n\n\ndef combat(perso1,perso2):\n    '''\n    &gt;&gt;&gt;combat(perso1,perso2)\n    \"perso1 attaque, il met 5 pts de d\u00e9gats \u00e0 perso2\"\n    \"perso2 attaque, il met 3 pts de d\u00e9gats \u00e0 perso1\"\n    ....\n    \"Perso2 a 0 pv, il fuit \u00e0 grandes enjamb\u00e9es.\"\n    '''\n\n<\/code><\/pre>\n\n\n\n<p>Proposition de correction<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>#### mini-projet JDR\nfrom random import randint\n\n### les personnages ont 4 capacit\u00e9s \n### la Force, l'Agilit\u00e9, la Magie qui sont d\u00e9termin\u00e9es par un 1D20\n### Les PV sont d\u00e9termin\u00e9s par la somme de ses 3 caract\u00e9ristiques\n### il y a 3 types de personnages : Guerrier, Voleur, Mage\n### le type est d\u00e9termin\u00e9 par un tirage al\u00e9atoire.\n\n\nfrom random import randint\ndef creation_perso(nom):\n    '''\n    >>>creation_perso(\"Gandalf\")\n    {nom:\"Gandalf\",type:\"Guerrier\",\n    \"Force\": 15 , \"Agilit\u00e9\": 9  ,\"Magie\":  5  ,\"PV\": 29\n    }\n    '''\n    types=('Guerrier','Voleur','Mage')\n    caracts=('Force','Magie','Agilit\u00e9')\n    reponse=\"non\"\n    while reponse!=\"ok\":\n        retour={}\n        retour&#91;'nom']=nom\n        retour&#91;'type']=types&#91;randint(0,2)]\n        retour&#91;'pv']=0\n        for i in range(3):\n            retour&#91;caracts&#91;i]]=randint(0,20)\n            retour&#91;'pv']+=retour&#91;caracts&#91;i]]\n        print(retour)\n        reponse=input(\"\u00e7a vous va \"+nom+\" ?\")\n        return retour\n        \n\n\n ### pour les combats, on regarde la caract\u00e9ristique propre \u00e0 chaque type :guerrier->Force, mage->Magie, voleur -> agilit\u00e9\n### celui qui a la caract\u00e9ristique propre la plus \u00e9lev\u00e9e commence\n### en cas d'\u00e9galit\u00e9, on proc\u00e8de \u00e0 un tirage al\u00e9atoire pour d\u00e9terminer celui qui commence\n### les points de d\u00e9gats inflig\u00e9s sont d\u00e9termin\u00e9s par la diff\u00e9rence des caract\u00e9ristiques propres auquel on ajoute un d6, ils sont enlev\u00e9s aux pv du personnage en d\u00e9fense\n### on permute les r\u00f4les attaquant et d\u00e9fenseur, on continue jusqu'\u00e0 ce qu'un des perso ait moins de 0 pv\n\ndef caract_principale(perso):\n    type=perso&#91;\"type\"]\n    caract_prin={'Guerrier':'Force','Voleur':'Agilit\u00e9','Mage':'Magie'}\n    return perso&#91;caract_prin&#91;type]]\n    \ndef premier(perso1,perso2):\n    c1=caract_principale(perso1)\n    c2=caract_principale(perso2)\n    if c1==c2:\n        if randint(1,2)==1:\n            return perso1,perso2\n        else:\n            return perso2,perso1\n    if c1>c2:\n         return perso1,perso2\n    return perso2,perso1\n\nperso1={'nom': 'Gandalf', 'type': 'Guerrier', 'pv': 15, 'Force':12, 'Magie': 14, 'Agilit\u00e9': 9}\nperso2={'nom': 'Faenor', 'type': 'Mage', 'pv': 29, 'Force': 6, 'Magie': 19, 'Agilit\u00e9': 9}\n\nprint(\"Affrontement entre\")\nprint(perso1)\nprint(\"et\")\nprint(perso2)\n\ndef combat(perso1,perso2):\n    '''\n    >>>combat(perso1,perso2)\n    \"perso1 attaque, il met 5 pts de d\u00e9gats \u00e0 perso2\"\n    \"perso2 attaque, il met 3 pts de d\u00e9gats \u00e0 perso1\"\n    ....\n    \"Perso2 a 0 pv, il fuit \u00e0 grandes enjamb\u00e9es.\"\n    '''\n    attaquant,defenseur=premier(perso1,perso2)\n    while attaquant&#91;\"pv\"]>0 and defenseur&#91;\"pv\"]>0:\n        degats=caract_principale(attaquant)\/(caract_principale(attaquant)+caract_principale(defenseur))\n        degats=int(degats*randint(1,6))\n        print(attaquant&#91;\"nom\"]+\" inflige \"+str(degats)+\" pts de d\u00e9gats \u00e0 \"+defenseur&#91;\"nom\"])\n        defenseur&#91;\"pv\"]-=degats\n        print(defenseur&#91;\"nom\"]+ \" a \"+str(defenseur&#91;\"pv\"])+\" pv\")\n        a=input(\"round suivant\")\n        attaquant,defenseur=defenseur,attaquant\n    \n\ncombat(perso1,perso2)\n\n\n<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Proposition de correction<\/p>\n","protected":false},"author":2,"featured_media":2952,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[57],"tags":[],"_links":{"self":[{"href":"https:\/\/labodemaths.fr\/WordPress3\/wp-json\/wp\/v2\/posts\/2949"}],"collection":[{"href":"https:\/\/labodemaths.fr\/WordPress3\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/labodemaths.fr\/WordPress3\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/labodemaths.fr\/WordPress3\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/labodemaths.fr\/WordPress3\/wp-json\/wp\/v2\/comments?post=2949"}],"version-history":[{"count":5,"href":"https:\/\/labodemaths.fr\/WordPress3\/wp-json\/wp\/v2\/posts\/2949\/revisions"}],"predecessor-version":[{"id":2966,"href":"https:\/\/labodemaths.fr\/WordPress3\/wp-json\/wp\/v2\/posts\/2949\/revisions\/2966"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/labodemaths.fr\/WordPress3\/wp-json\/wp\/v2\/media\/2952"}],"wp:attachment":[{"href":"https:\/\/labodemaths.fr\/WordPress3\/wp-json\/wp\/v2\/media?parent=2949"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/labodemaths.fr\/WordPress3\/wp-json\/wp\/v2\/categories?post=2949"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/labodemaths.fr\/WordPress3\/wp-json\/wp\/v2\/tags?post=2949"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}