{"id":166,"date":"2024-12-02T21:31:07","date_gmt":"2024-12-02T20:31:07","guid":{"rendered":"http:\/\/les-sauvages.fr\/grr\/?p=166"},"modified":"2024-12-02T21:31:07","modified_gmt":"2024-12-02T20:31:07","slug":"lecon-dinformatique-pour-mon-fils","status":"publish","type":"post","link":"https:\/\/les-sauvages.fr\/grr\/2024\/12\/02\/lecon-dinformatique-pour-mon-fils\/","title":{"rendered":"Le\u00e7on d&rsquo;informatique pour mon fils"},"content":{"rendered":"\n\t\t\t\t\n<p>Mon grand, tu a commenc\u00e9 la programmation en Python. Excellent choix, vraiment. Ce n&rsquo;est pas celui que j&rsquo;aurai fait, mais uniquement parce que je suis un vieux grincheux qui fait de l&rsquo;urticaire devant des espaces signifiants.<\/p>\n\n\n\n<p>Tu a commenc\u00e9 \u00e0 programmer un jeu de type plate-forme en 2D, et c&rsquo;est tr\u00e8s bien. Et pour arriver \u00e0 cela, tu as commenc\u00e9 \u00e0 penser aux d\u00e9placements de ton personnage. Ainsi donc pourvu de ton but, tu as red\u00e9couvert :<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">L&rsquo;int\u00e9gration num\u00e9rique.<\/h2>\n\n\n\n<p>Ca claque, comme nom, hein ? Ca en jette, c&rsquo;est styl\u00e9.<\/p>\n\n\n\n<p>Mais on ne sait pas ce que c&rsquo;est. <\/p>\n\n\n\n<p>Alors, pour d\u00e9placer, mettons un bonhomme, sur un \u00e9cran, on peut le d\u00e9placer par bonds. C&rsquo;\u00e9tait la premi\u00e8re m\u00e9thode utilis\u00e9e dans les jeux vid\u00e9o, c&rsquo;est le truc le plus intuitif. Quand j&rsquo;appuie sur la fl\u00e8che droite, j&rsquo;ajoute, mettons 5, \u00e0 sa position horizontale, et puis c&rsquo;est marre. Quand j&rsquo;appuie sur la fl\u00e8che gauche, j&rsquo;enl\u00e8ve 5 et on a fait les 2 c\u00f4t\u00e9s \u00e0 la m\u00eame vitesse et puis voil\u00e0.<\/p>\n\n\n\n<p>Ca marche tr\u00e8s bien, et \u00e7a donnait ce d\u00e9licat mouvement hyper saccad\u00e9 et ing\u00e9rable des mauvais premiers jeux vid\u00e9os.<\/p>\n\n\n\n<p>L&rsquo;autre possibilit\u00e9, c&rsquo;est que l&rsquo;appui sur une touche ne modifie pas la position du bonhomme, mais sa vitesse. Et l\u00e0 c&rsquo;est autre chose. L\u00e0 on fait de l&rsquo;int\u00e9gration num\u00e9rique.<\/p>\n\n\n\n<p>Qu&rsquo;est-ce que la vitesse ? H\u00e9 bien, la vitesse, c&rsquo;est la distance que tu parcours en une seconde. C&rsquo;est une distance divis\u00e9e par un temps. 1 m\u00e8tre par seconde, qui fait donc 60 m\u00e8tres par minute, soit 3,6 km\/h pour peu qu&rsquo;on sache multiplier par 60.<\/p>\n\n\n\n<p>Donc, quand tu appuies sur une touche, tu donnes la vitesse de ton personnage. Et quand tu arr\u00eates d&rsquo;appuyer, formidable, tu ne donnes plus la vitesse \u00e0 ton personnage. Sa vitesse \u00e9voluera selon des param\u00e8tres ext\u00e9rieurs, comme la texture du sol, par exemple. Dans la colle il s&rsquo;arr\u00eatera vite, sur une patinoire&#8230; \u00e7a mettra plus de temps. Bon, au pire on mettra des murs pour ne pas qu&rsquo;il traverse le niveau \u00ab\u00a0Reine des neiges\u00a0\u00bb en 5&prime; 7.<\/p>\n\n\n\n<p>Tr\u00e8s bien, me diras-tu fort justement, mais comment transform\u00e9-je cette vitesse en position sur l&rsquo;\u00e9cran ? Parce que moi, observeras-tu, je dois afficher mon bonhomme \u00e0 une certaine position qui bouge tout le temps, pas \u00e0 une certaine vitesse globalement constante.<\/p>\n\n\n\n<p>Et oui. Et donc, \u00e0 chaque image, on veut transformer une vitesse &#8211; qui est une distance divis\u00e9e par un temps, en distance (une coordonn\u00e9e, c&rsquo;est une distance par rapport \u00e0 un point de r\u00e9f\u00e9rence). Et pour transformer une distance divis\u00e9e par un temps en distance pas divis\u00e9e, et bien&#8230; il faut multiplier par ce qu&rsquo;on divise, c&rsquo;est \u00e0 dire un temps. Une vitesse multipli\u00e9e par un temps, c&rsquo;est une distance ! J&rsquo;ai nag\u00e9 une demie heure \u00e0 2,4 km\/h, \u00e7a fait 2,4 km\/h * 0,5 h = 2,4 km\/h * 1\/2 h = 1,2 km\/h*h = 1,2 km tout court ! J&rsquo;ai nag\u00e9 1,2 km.<\/p>\n\n\n\n<p>A chaque image, donc, tu ajoutes \u00e0 la position de ton personnage sa vitesse, multipli\u00e9e par le temps \u00e9coul\u00e9 depuis l&rsquo;image pr\u00e9c\u00e9dente. Cette op\u00e9ration de multiplication par le temps \u00e9coul\u00e9 s&rsquo;appelle une int\u00e9gration num\u00e9rique.<\/p>\n\n\n\n<p>L&rsquo;int\u00e9gration num\u00e9rique est la base fondamentale de la simulation sur ordinateur. Cette id\u00e9e de multiplier une vitesse par un temps s&rsquo;applique \u00e0 beaucoup, beaucoup de grandeurs physiques. Un poids sur une surface, c&rsquo;est une pression, par exemple. Une pression multipli\u00e9e par une surface va donc pouvoir te ramener \u00e0 un poids, ce poids probablement \u00e0 une masse, et cette masse, via la densit\u00e9 (c&rsquo;est une masse divis\u00e9e par un volume), te donnera un volume, par exemple.<\/p>\n\n\n\n<p>Le secret, c&rsquo;est qu&rsquo;\u00e0 chaque image, entre deux courts instants, la vitesse va pouvoir \u00e9voluer. Et ces variations de vitesse seront ainsi appliqu\u00e9es \u00e0 la position, qui int\u00e9grera cons\u00e9quemment toutes ces variations. Elle int\u00e9grera toutes ces variations&#8230; C&rsquo;est une int\u00e9gration&#8230; Et comme ce n&rsquo;est pas fait avec des formules math\u00e9matiques, mais directement avec les nombres, c&rsquo;est une int\u00e9gration num\u00e9rique.<\/p>\n\n\n\n<p>C&rsquo;est \u00e7a, l&rsquo;int\u00e9gration num\u00e9rique : c&rsquo;est appliquer par petits bouts toutes les modifications quand elles apparaissent, pour les int\u00e9grer dans le r\u00e9sultat final. C&rsquo;est ce que tu fais quand tu appliques la vitesse \u00e0 la position de ton bonhomme de jeu vid\u00e9o&#8230;<\/p>\n\n\n\n<p>Allez, zou, au turbin !<br><\/p>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Mon grand, tu a commenc\u00e9 la programmation en Python. Excellent choix, vraiment. Ce n&rsquo;est pas celui que j&rsquo;aurai fait, mais uniquement parce que je suis un vieux grincheux qui fait de l&rsquo;urticaire devant des espaces signifiants. Tu a commenc\u00e9 \u00e0 programmer un jeu de type plate-forme en 2D, et c&rsquo;est tr\u00e8s bien. Et pour arriver [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2],"tags":[],"class_list":["post-166","post","type-post","status-publish","format-standard","hentry","category-non_classe"],"_links":{"self":[{"href":"https:\/\/les-sauvages.fr\/grr\/wp-json\/wp\/v2\/posts\/166","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/les-sauvages.fr\/grr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/les-sauvages.fr\/grr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/les-sauvages.fr\/grr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/les-sauvages.fr\/grr\/wp-json\/wp\/v2\/comments?post=166"}],"version-history":[{"count":0,"href":"https:\/\/les-sauvages.fr\/grr\/wp-json\/wp\/v2\/posts\/166\/revisions"}],"wp:attachment":[{"href":"https:\/\/les-sauvages.fr\/grr\/wp-json\/wp\/v2\/media?parent=166"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/les-sauvages.fr\/grr\/wp-json\/wp\/v2\/categories?post=166"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/les-sauvages.fr\/grr\/wp-json\/wp\/v2\/tags?post=166"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}