{"id":1012,"date":"2021-03-29T05:55:35","date_gmt":"2021-03-29T03:55:35","guid":{"rendered":"http:\/\/labodemaths.fr\/WordPress3\/?p=1012"},"modified":"2021-03-29T10:46:11","modified_gmt":"2021-03-29T08:46:11","slug":"nsi-projet-jeu-de-la-vie","status":"publish","type":"post","link":"https:\/\/labodemaths.fr\/WordPress3\/nsi-projet-jeu-de-la-vie\/","title":{"rendered":"NSI : projet jeu de la vie"},"content":{"rendered":"\n<h2>Information MPI<\/h2>\n\n\n\n<p><a href=\"https:\/\/prepas.org\/index.php?article=42\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\" (s\u2019ouvre dans un nouvel onglet)\">https:\/\/prepas.org\/index.php?article=42<\/a><\/p>\n\n\n\n<h3>1. Pr\u00e9sentation du jeu de la vie.<\/h3>\n\n\n\n<p>Une pr\u00e9sentation au coll\u00e8ge de France par J-P Delahaye :<br><a rel=\"noreferrer noopener\" aria-label=\" (s\u2019ouvre dans un nouvel onglet)\" href=\"https:\/\/www.college-de-france.fr\/site\/alain-prochiantz\/symposium-2017-09-06-11h00.htm\" target=\"_blank\">https:\/\/www.college-de-france.fr\/site\/alain-prochiantz\/symposium-2017-09-06-11h00.htm<\/a><br>un article :<br><a href=\"http:\/\/www.lifl.fr\/~jdelahay\/dnalor\/Jeudelavie.pdf\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\" (s\u2019ouvre dans un nouvel onglet)\">http:\/\/www.lifl.fr\/~jdelahay\/dnalor\/Jeudelavie.pdf<\/a><\/p>\n\n\n\n<h3>2. Le code HTML<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;HTML>\n\t&lt;HEAD>\n\t\t&lt;meta charset=\"utf-8\" \/>\n\t&lt;\/HEAD>\n\t&lt;BODY>\n\n\t\t\t&lt;canvas id=\"canvas\" width=\"600px\" height=\"600px\">&lt;\/canvas>\n        &lt;form>\n            &lt;div>\n               &lt;label for=\"b1\">Lancer la simulation en mode pas \u00e0 pas :&lt;\/label> \n        &lt;input id=\"bouton\" type=\"button\" value=\"Ok\">\n            &lt;\/div>\n            &lt;div>\n                &lt;label for=\"b2\">Lancer la simulation en mode automatique :&lt;\/label> \n        &lt;input id=\"bouton_auto\" type=\"button\" value=\"Lancer la simulation automatique\">\n            &lt;\/div>\n            &lt;\/form>\n\t&lt;\/BODY>\n\n&lt;\/HTML>\n&lt;script type=\"text\/javascript\" src=\"prog.js\">&lt;\/script><\/code><\/pre>\n\n\n\n<h3>3. Le code JS<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>var canvas=document.getElementById(\"canvas\");\nvar ctx=canvas.getContext(\"2d\");\nvar dimension=10;\nvar plateau=new Array();\nvar plateau_transitoire=new Array();\ncanvas.addEventListener(\"mousedown\",changer_case , false);\nbouton_r=document.getElementById(\"bouton\");\nbouton_r.onclick=evolution;\nbouton_auto=document.getElementById(\"bouton_auto\");\nbouton_auto.onclick=evolution_auto;\n\n\nremplir_tableaux();\nafficher();\n\nfunction remplir_tableaux(){\n\/\/ on ajoute des lignes \u00e0 nos tableaux\n    for (var i=0;i&lt;dimension;i++) {\n        plateau[i]=new Array();\n        plateau_transitoire[i]=new Array();\n        }\n\/\/ on remplit les 2 tableaux de 0\n    for (var i=0;i&lt;dimension;i++) {\n        for (var j=0;j&lt;dimension;j++) {\n        plateau[j][i]=0;\n        plateau_transitoire[i][j]=0;\n        }\n    }\n}\n\nfunction afficher(){\n    var canvas=document.getElementById(\"canvas\");\n    var cote=canvas.width\/dimension;\n    for (var i=0;i&lt;dimension;i++) {\n        for (var j=0;j&lt;dimension;j++) {\n        if (plateau[j][i]==0) {\n            ctx.beginPath();\n            ctx.strokeStyle=\"dark\";   \n            ctx.lineWidth=\"2\";   \n            ctx.rect(i*cote,j*cote,cote,cote);\n            ctx.fillStyle=\"rgb(255,255,255)\";\n            ctx.fill();\n            ctx.stroke();   \n        }\n        else {\n            ctx.beginPath();\n            ctx.rect(i*cote,j*cote,cote,cote);\n            ctx.fillStyle=\"rgb(0,0,0)\";\n            ctx.fill();\n        }\n        }\n    }\n}\nfunction changer_case(evt){\n    var mousePos = getMousePos(canvas, evt);\n    var x=mousePos.x;\n    var y=mousePos.y;\n    var cote=canvas.width\/dimension;\n    i=Math.floor(x\/cote);\n    j=Math.floor(y\/cote);\n    if (plateau[j][i]==0){\n        plateau[j][i]=1;\n    }\n    else {\n        plateau[j][i]=0;\n    }\n    afficher();\n}\nfunction getMousePos(canvas, evt) {\n         var rect = canvas.getBoundingClientRect();\n         return {\n           x: evt.clientX - rect.left,\n           y: evt.clientY - rect.top\n         };\n       }\nfunction compteur(i,j){\n    var nb=0;\n    for (var x=i-1;x&lt;i+2;x++){\n        for (var y=j-1;y&lt;j+2;y++){\n            if ((x>=0) &amp;&amp; (x&lt;dimension) &amp;&amp; (y>=0) &amp;&amp; (y&lt;dimension) &amp;&amp; !((x==i)&amp;&amp;(y==j))){\n                nb+=plateau[y][x];\n            }\n         }\n       }\n    return nb;\n}\n\nfunction evolution() {\n    mise_a_jour_transition();\n     for (var i=0;i&lt;dimension;i++) {\n        for (var j=0;j&lt;dimension;j++) {\n            c=compteur(i,j);\n            if ((plateau[j][i]==0) &amp;&amp; (c==3)) {\n                plateau_transitoire[j][i]=1;\n                }\n            if (plateau[j][i]==1) {\n                if ((c==2)||(c==3)){\n                plateau_transitoire[j][i]=1;\n                }\n            else {\n                plateau_transitoire[j][i]=0;\n            }\n        }\n  }\n}\n    mise_a_jour_plateau(); \n    afficher();\n  \n}\nfunction evolution_auto(){\n    evolution();\n    setInterval(evolution, 1000);\n}\nfunction mise_a_jour_transition(){\n    for (var i=0;i&lt;dimension;i++) {\n        for (var j=0;j&lt;dimension;j++) {\n            plateau_transitoire[j][i]=plateau[j][i];\n        }\n    }\n}\n\nfunction mise_a_jour_plateau(){\n    for (var i=0;i&lt;dimension;i++) {\n        for (var j=0;j&lt;dimension;j++) {\n            plateau[j][i]=plateau_transitoire[j][i];\n        }\n    }\n}<\/code><\/pre>\n\n\n\n<h3>4. Tester la page HTML et analyser le code.<\/h3>\n\n\n\n<h3>5. Mini Projet pour avant les vacances<\/h3>\n\n\n\n<p>Modifier le js et le html pour proposer des am\u00e9liorations au client :<\/p>\n\n\n\n<ul><li>possibilit\u00e9 d&rsquo;arr\u00eater le mode automatique,<\/li><li>possibilit\u00e9 de r\u00e9initialiser,<\/li><li>possibilit\u00e9 d&rsquo;ins\u00e9rer automatiquement des formes propres au jeu en les s\u00e9lectionnant et en les ins\u00e9rant par un simple clic,<\/li><li>possibilit\u00e9 de proposer un plateau rempli al\u00e9atoirement ( avec la probabilit\u00e9 0,5 que la cellule soit vivante ou morte ),<\/li><li>proposer de choisir ses couleurs,<\/li><li>possibilit\u00e9 de sauvegarder ses plateaux sous le format image,<\/li><li>possibilit\u00e9 de choisir la taille en cellules du plateau<\/li><li>etc &#8230;..<\/li><li>on pourra aussi am\u00e9liorer le rendu brut de la page par un peu de css pour les connaisseurs.<br>&#8211; <\/li><\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Information MPI https:\/\/prepas.org\/index.php?article=42 1. Pr\u00e9sentation du jeu de la vie. Une pr\u00e9sentation au coll\u00e8ge de&#8230;<\/p>\n<div class=\"more-link-wrapper\"><a class=\"more-link\" href=\"https:\/\/labodemaths.fr\/WordPress3\/nsi-projet-jeu-de-la-vie\/\">Read the post<span class=\"screen-reader-text\">NSI : projet jeu de la vie<\/span><\/a><\/div>\n","protected":false},"author":2,"featured_media":1013,"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\/1012"}],"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=1012"}],"version-history":[{"count":7,"href":"https:\/\/labodemaths.fr\/WordPress3\/wp-json\/wp\/v2\/posts\/1012\/revisions"}],"predecessor-version":[{"id":1548,"href":"https:\/\/labodemaths.fr\/WordPress3\/wp-json\/wp\/v2\/posts\/1012\/revisions\/1548"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/labodemaths.fr\/WordPress3\/wp-json\/wp\/v2\/media\/1013"}],"wp:attachment":[{"href":"https:\/\/labodemaths.fr\/WordPress3\/wp-json\/wp\/v2\/media?parent=1012"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/labodemaths.fr\/WordPress3\/wp-json\/wp\/v2\/categories?post=1012"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/labodemaths.fr\/WordPress3\/wp-json\/wp\/v2\/tags?post=1012"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}