{"id":107,"date":"2015-11-03T21:37:24","date_gmt":"2015-11-03T20:37:24","guid":{"rendered":"http:\/\/www.cmarzin.fr\/site\/?p=107"},"modified":"2016-01-07T17:55:35","modified_gmt":"2016-01-07T16:55:35","slug":"pong","status":"publish","type":"post","link":"https:\/\/www.cmarzin.fr\/site\/2015\/11\/03\/pong\/","title":{"rendered":"Pong"},"content":{"rendered":"<p><script type=\"text\/javascript\" src=\"[insert_php]echo get_site_url();[\/insert_php]\/content\/tutos\/pong\/jeu.js\"><\/script><\/p>\n<div class=\"sources\"><i class=\"fa fa-download\"><\/i> <a href=\"[insert_php]echo get_site_url();[\/insert_php]\/content\/tutos\/pong\/pong.rar\">Javascript<\/a> <a href=\"[insert_php]echo get_site_url();[\/insert_php]\/content\/tutos\/pong\/pongfla.rar\">Actionscript<\/a>\n<\/div>\n<h2 class=\"bloctitle\">Pr\u00e9sentation<\/h2>\n<div class=\"bloc\">\n<div class=\"captures\">\n\t\t<style type=\"text\/css\">\n\t\t\t#gallery-1 {\n\t\t\t\tmargin: auto;\n\t\t\t}\n\t\t\t#gallery-1 .gallery-item {\n\t\t\t\tfloat: left;\n\t\t\t\tmargin-top: 10px;\n\t\t\t\ttext-align: center;\n\t\t\t\twidth: 25%;\n\t\t\t}\n\t\t\t#gallery-1 img {\n\t\t\t\tborder: 2px solid #cfcfcf;\n\t\t\t}\n\t\t\t#gallery-1 .gallery-caption {\n\t\t\t\tmargin-left: 0;\n\t\t\t}\n\t\t\t\/* see gallery_shortcode() in wp-includes\/media.php *\/\n\t\t<\/style>\n\t\t<div id='gallery-1' class='gallery galleryid-107 gallery-columns-4 gallery-size-thumbnail'><dl class='gallery-item'>\n\t\t\t<dt class='gallery-icon landscape'>\n\t\t\t\t<a href='https:\/\/www.cmarzin.fr\/site\/wp-content\/uploads\/pong1.jpg' title=\"\" data-rl_title=\"\" class=\"rl-gallery-link\" data-rl_caption=\"\" data-rel=\"lightbox-gallery-1\"><img width=\"300\" height=\"169\" src=\"https:\/\/www.cmarzin.fr\/site\/wp-content\/uploads\/pong1-300x169.jpg\" class=\"attachment-thumbnail size-thumbnail\" alt=\"\" loading=\"lazy\" srcset=\"https:\/\/www.cmarzin.fr\/site\/wp-content\/uploads\/pong1-300x169.jpg 300w, https:\/\/www.cmarzin.fr\/site\/wp-content\/uploads\/pong1-1024x578.jpg 1024w, https:\/\/www.cmarzin.fr\/site\/wp-content\/uploads\/pong1.jpg 1889w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a>\n\t\t\t<\/dt><\/dl><dl class='gallery-item'>\n\t\t\t<dt class='gallery-icon landscape'>\n\t\t\t\t<a href='https:\/\/www.cmarzin.fr\/site\/wp-content\/uploads\/pong2.jpg' title=\"\" data-rl_title=\"\" class=\"rl-gallery-link\" data-rl_caption=\"\" data-rel=\"lightbox-gallery-1\"><img width=\"300\" height=\"169\" src=\"https:\/\/www.cmarzin.fr\/site\/wp-content\/uploads\/pong2-300x169.jpg\" class=\"attachment-thumbnail size-thumbnail\" alt=\"\" loading=\"lazy\" srcset=\"https:\/\/www.cmarzin.fr\/site\/wp-content\/uploads\/pong2-300x170.jpg 300w, https:\/\/www.cmarzin.fr\/site\/wp-content\/uploads\/pong2-1024x579.jpg 1024w, https:\/\/www.cmarzin.fr\/site\/wp-content\/uploads\/pong2.jpg 1352w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a>\n\t\t\t<\/dt><\/dl><dl class='gallery-item'>\n\t\t\t<dt class='gallery-icon landscape'>\n\t\t\t\t<a href='https:\/\/www.cmarzin.fr\/site\/wp-content\/uploads\/pong3.jpg' title=\"\" data-rl_title=\"\" class=\"rl-gallery-link\" data-rl_caption=\"\" data-rel=\"lightbox-gallery-1\"><img width=\"300\" height=\"169\" src=\"https:\/\/www.cmarzin.fr\/site\/wp-content\/uploads\/pong3-300x169.jpg\" class=\"attachment-thumbnail size-thumbnail\" alt=\"\" loading=\"lazy\" srcset=\"https:\/\/www.cmarzin.fr\/site\/wp-content\/uploads\/pong3-300x170.jpg 300w, https:\/\/www.cmarzin.fr\/site\/wp-content\/uploads\/pong3.jpg 1024w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a>\n\t\t\t<\/dt><\/dl><dl class='gallery-item'>\n\t\t\t<dt class='gallery-icon landscape'>\n\t\t\t\t<a href='https:\/\/www.cmarzin.fr\/site\/wp-content\/uploads\/pong4.jpg' title=\"\" data-rl_title=\"\" class=\"rl-gallery-link\" data-rl_caption=\"\" data-rel=\"lightbox-gallery-1\"><img width=\"300\" height=\"169\" src=\"https:\/\/www.cmarzin.fr\/site\/wp-content\/uploads\/pong4-300x169.jpg\" class=\"attachment-thumbnail size-thumbnail\" alt=\"\" loading=\"lazy\" srcset=\"https:\/\/www.cmarzin.fr\/site\/wp-content\/uploads\/pong4-300x170.jpg 300w, https:\/\/www.cmarzin.fr\/site\/wp-content\/uploads\/pong4.jpg 1024w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a>\n\t\t\t<\/dt><\/dl><br style=\"clear: both\" \/>\n\t\t<\/div>\n<\/div>\n<p> Pong est un jeu vid\u00e9o inspir\u00e9 du \u201ctennis de table\u201d d\u00e9velopp\u00e9 par Ralph Baer et son \u00e9quipe \u00e0 Sanders Associates en 1967. Apr\u00e8s y avoir jou\u00e9 lors d&rsquo;une premi\u00e8re d\u00e9monstration en mai 1972, Nolan Bushnell, cr\u00e9ateur de la soci\u00e9t\u00e9 Atari, en fait une version am\u00e9lior\u00e9e : Pong. Puisque le nom Ping-Pong est d\u00e9j\u00e0 une marque d\u00e9pos\u00e9e, ils l&rsquo;ont simplement appel\u00e9 Pong. C&rsquo;est le premier jeu vid\u00e9o \u00e0 conna\u00eetre un succ\u00e8s populaire, mais la forme la plus ancienne d&rsquo;un jeu \u00e9lectronique de ping-pong remonte \u00e0 un jeu jouable sur un oscilloscope, cr\u00e9\u00e9 par William A. Higinbotham au laboratoire national de Brookhaven en 1958. Son jeu \u00e9tait intitul\u00e9 \u201cTennis for Two\u201d.<\/p>\n<p>Le concept original de Pong est une simulation simpliste de tennis de table (ping-pong). Au tennis de table, les joueurs se tiennent de chaque c\u00f4t\u00e9 d&rsquo;une table et manient une raquette pour frapper une petite balle qui se d\u00e9place entre eux dans les deux sens. Une petite balle, se d\u00e9place \u00e0 travers l&rsquo;\u00e9cran, rebondissant sur les rebords du haut et du bas, et les deux joueurs commandent chacun une raquette, la faisant glisser verticalement entre les extr\u00e9mit\u00e9s de l&rsquo;\u00e9cran \u00e0 l&rsquo;aide des contr\u00f4les. Si la balle frappe la raquette, elle rebondit vers l&rsquo;autre joueur. Si elle manque la raquette, l&rsquo;autre joueur marque un point. La balle rebondit de diff\u00e9rentes mani\u00e8res selon la fa\u00e7on dont elle touche la raquette.<\/p>\n<p>Pong peut \u00eatre jou\u00e9 seul, la raquette oppos\u00e9e est alors command\u00e9e par la machine ; ou \u00e0 deux joueurs, chacun commandant une raquette. Sur les bornes d&rsquo;arcade la raquette est habituellement command\u00e9e par un bouton rotatif (un paddle), r\u00e9pondant avec une vitesse variable selon la fa\u00e7on dont le joueur la tourne.<\/p>\n<p>Son code ultra simple est \u00e0 la port\u00e9e de tous, mais cache \u00e9galement, si l&rsquo;on gratte un peu la surface, des astuces sp\u00e9cifiques \u00e0 la r\u00e9alisation de jeux vid\u00e9o, c&rsquo;est pourquoi tout apprenti d\u00e9veloppeur de jeu DOIT commencer par essayer de cr\u00e9er un simple PONG avant de tenter de placer la barre plus haut.\n<\/p><\/div>\n<div class=\"lsep\"><\/div>\n<div class=\"sourcesdown\"><i class=\"fa fa-book\"><\/i> <a href=\"https:\/\/fr.wikipedia.org\/wiki\/Pong\">Wikipedia<\/a> <a href=\"http:\/\/forums.mediabox.fr\/wiki\/tutoriaux\/javascript\/divers\/exercice_pong\">Mediabox<\/a><\/div>\n<h2 class=\"bloctitle\">Le code Javascript<\/h2>\n<div class=\"bloccode\">\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n\r\n\/\/ charger les images du jeu\r\nvar balle = new Image();\r\nvar joueur = new Image();\r\nvar ordi = new Image();\r\nvar fond = new Image();\r\n \r\nballe.src = &quot;assets\/balle.jpg&quot;;\r\nfond.src = &quot;assets\/fond.jpg&quot;;\r\nordi.src = &quot;assets\/raquette.jpg&quot;;\r\njoueur.src = &quot;assets\/raquette.jpg&quot;;\r\n \r\nwindow.onload = function() {\r\n \r\n\t\/\/ r\u00e9cup\u00e8re le canva et son contexte\r\n\tvar canvas = document.getElementById('canvas');\r\n\tvar ctx = canvas.getContext('2d');\r\n \r\n\t\/\/ variables\r\n\tvar W = 512;\r\n\tvar H = 256;\r\n\tvar p1 = {};\r\n\tvar p2 = {};\r\n\tvar b = {};\r\n\tvar mouseX;\r\n\tvar mouseY;\r\n \r\n\tinit();\r\n \r\n\t\/\/ initialisation du jeu\r\n\tfunction init() {\r\n \r\n\t\tcanvas.width = W;\r\n\t\tcanvas.height = H;\r\n \r\n\t\tb.w = balle.width;\r\n\t\tb.h = balle.height;\r\n\t\tb.x = W\/2-5;\r\n\t\tb.y = H\/2-5;\r\n\t\tb.vX = (parseInt(Math.random()*2)-1|1)*(Math.random()*6+2);\r\n\t\tb.vY = (parseInt(Math.random()*2)-1|1)*(Math.random()*6+2);\r\n \r\n\t\tp2.w = ordi.width;\r\n\t\tp2.h = ordi.height;\r\n\t\tp2.x = W-25;\r\n\t\tp2.y = (H-p2.h)\/2;\r\n\t\tp2.score = 0;\r\n \r\n\t\tp1.w = joueur.width;\r\n\t\tp1.h = joueur.height;\r\n\t\tp1.x = 15;\r\n\t\tp1.y = (H-p1.h)\/2;\r\n\t\tp1.score = 0;\r\n \r\n\t\tmouseY = p1.y;\r\n \r\n\t\tcanvas.addEventListener(&quot;mousemove&quot;, souris, false);\r\n\t\tsetInterval(main, 15);\r\n\t}\r\n \r\n\t\/\/ boucle principale\r\n\tfunction main(){\r\n \r\n\t\t\/\/ ordinateur\r\n\t\tif (b.y&lt;p2.y) p2.y -= 5;\r\n\t\tif (b.y&gt;p2.y) p2.y += 5;\r\n \r\n\t\t\/\/ joueur\r\n\t\tp1.y = mouseY;\r\n \r\n\t\t\/\/ limite des objets\r\n\t\tlimites(p1);\r\n\t\tlimites(p2);\r\n \r\n\t\t\/\/ balle\r\n\t\twith (b) {\t\r\n \r\n\t\t\tx += vX;\r\n\t\t\ty += vY;\r\n\t\t\tif (y&lt;10) y=10,  vY*=-1;\r\n\t\t\tif (y&gt;246-h) y=246-h, vY*=-1;\r\n\t\t\tif (x&lt;0) initBalle(), p2.score++;\r\n\t\t\tif (x&gt;492) initBalle(), p1.score++;\r\n \r\n\t\t\tif(collisions(b,p1)) {\r\n\t\t\t\tx = p1.x+p1.w+10;\r\n\t\t\t\tvX *= -1;\r\n\t\t\t\tvY = -Math.round((p1.y+p1.h\/2)-(y+h\/2)*.2)%8;\r\n\t\t\t}\r\n\t\t\tif(collisions(b,p2)) {\r\n\t\t\t\tx = p2.x-b.w-10;\r\n\t\t\t\tvX *= -1;\r\n\t\t\t\tvY = -Math.round((p2.y+p2.h\/2)-(y+h\/2)*.2)%8;\r\n\t\t\t}\r\n\t\t}\r\n \r\n\t\t\/\/ dessin final\r\n\t\trender();\r\n\t} \r\n \r\n\tfunction initBalle(){\r\n\t\tb.x = W\/2-5;\r\n\t\tb.y = H\/2-5;\r\n\t\tb.vY = (parseInt(Math.random()*2)-1|1)*(Math.random()*6+2);\t\r\n\t}\r\n \r\n\t\/\/ limites des raquettes\r\n\tfunction limites(ob){\r\n\t\tif (ob.y&lt;10)  ob.y = 10;\r\n\t\tif (ob.y&gt;256-ob.h) ob.y = 256-ob.h;\r\n\t}\r\n \r\n\t\/\/ collisions\r\n\tfunction collisions(A,B) {\r\n\t\tif (A.y+A.h &lt; B.y || A.y &gt; B.y+B.h || A.x &gt; B.x+B.w || A.x+A.w &lt; B.x) return false;\r\n\t\treturn true;\r\n\t}\r\n \r\n\t\/\/ Dessine le jeu\r\n\tfunction render() {\t\r\n\t\tctx.drawImage(fond,0,0);\r\n\t\tctx.drawImage(balle, b.x, b.y);\r\n\t\tctx.drawImage(ordi, p2.x, p2.y);\r\n\t\tctx.drawImage(joueur, p1.x, p1.y);\r\n\t\tdraw_score();\r\n\t}\r\n \r\n\tfunction souris(e){\r\n\t  if (e.x != undefined &amp;&amp; e.y != undefined){\r\n\t\t\tmouseX = e.x;\r\n\t\t\tmouseY = e.y;\r\n        } else {\r\n\t\t\t\/\/ Firefox patch\r\n\t\t\tmouseX = e.clientX + document.body.scrollLeft + document.documentElement.scrollLeft;\r\n\t\t\tmouseY = e.clientY + document.body.scrollTop + document.documentElement.scrollTop;\r\n        }\r\n\t} \r\n \r\n\t\/\/ Affiche le score\r\n\tfunction draw_score() {\t\t\r\n\t\tctx.fillStyle = &quot;white&quot;;\r\n\t\tctx.font = &quot;24px Arial&quot;;\r\n\t\tctx.textAlign = &quot;right&quot;;\r\n\t\tctx.fillText(p1.score + &quot; &quot;, W\/2, 30);\r\n\t\tctx.textAlign = &quot;left&quot;;\r\n\t\tctx.fillText(&quot; &quot; + p2.score, W\/2, 30);\r\n\t}\r\n}\r\n<\/pre>\n<\/div>\n<div class=\"lsep\"><\/div>\n<div class=\"sourcesdown\"><i class=\"fa fa-cog\"><\/i> <a href=\"https:\/\/developer.mozilla.org\/fr\/docs\/Web\/API\/CanvasRenderingContext2D\" target=\"_blank\">Canvas Rendering Context 2D<\/a> <a href=\"https:\/\/developer.mozilla.org\/fr\/docs\/Web\/API\/EventTarget\/addEventListener\" target=\"_blank\">Ecouteurs d&rsquo;\u00e9v\u00e9nement<\/a><\/div>\n<h2 class=\"bloctitle\">A retenir<\/h2>\n<div class=\"blocorange\">\nPONG est un jeu tr\u00e8s simple au programme vraiment accessible, c&rsquo;est pourquoi j&rsquo;ai profit\u00e9 de celui-ci pour pousser un peu sur la r\u00e9daction du code. Les libert\u00e9s que j&rsquo;ai prises ne sont bien \u00e9videmment pas une obligation. Cependant en r\u00e9fl\u00e9chissant un peu vous trouverez tout un tas d&rsquo;astuces qui vous permettrons de r\u00e9duire la taille de votre code sans perdre en lisibilit\u00e9 (voire en y gagnant selon les cas), si pour un programme comme PONG au code simpliste, cela n&rsquo;a pas un int\u00e9r\u00eat flagrant, lorsque vous allez vous attaquer \u00e0 des jeux plus gros cela va rapidement devenir indispensable, notez cependant qu&rsquo;il vaut mieux toujours privil\u00e9gier l&rsquo;optimisation du programme \u00e0 la compression du code, autrement dit ce n&rsquo;est pas parce qu&rsquo;un code est plus court que son fonctionnement est forc\u00e9ment plus optimis\u00e9.<\/p>\n<p>Toute l&rsquo;astuce r\u00e9side ici dans l&#8217;embryon d&rsquo;intelligence artificielle que l&rsquo;on donne au programme pour apprendre \u00e0 jouer. Pour ce genre d&rsquo;IA toute simple il suffit de cr\u00e9er un comportement parfait que l&rsquo;on d\u00e9grade pour obtenir des r\u00e9actions imparfaites, on parle en fait plus d&rsquo;automates que de programme r\u00e9ellement intelligent, mais c&rsquo;est une base suffisante pour d\u00e9marrer et qui a le m\u00e9rite de s&rsquo;adapter facilement pour de nombreux jeux vid\u00e9os.\n<\/p><\/div>\n","protected":false},"excerpt":{"rendered":"<p><i class=\"fa fa-clock-o\"><\/i> 02h00<br \/>\n<i class=\"fa fa-user\"><\/i> D\u00e9butant<br \/>\n<i class=\"fa fa-code\"><\/i> Moteur<br \/>\n<i class=\"fa fa-cog\"><\/i> Javascript<br \/>\n<i class=\"fa fa-graduation-cap\"><\/i> Logique de programmation<br \/>\n<i class=\"fa fa-suitcase\"><\/i> Bases du langage Javascript<\/p>\n","protected":false},"author":1,"featured_media":110,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"aside","meta":[],"categories":[4],"tags":[12,11,10],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v16.2 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.cmarzin.fr\/site\/2015\/11\/03\/pong\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Pong - Cmarzin\" \/>\n<meta property=\"og:description\" content=\"02h00  D\u00e9butant  Moteur  Javascript  Logique de programmation  Bases du langage Javascript\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.cmarzin.fr\/site\/2015\/11\/03\/pong\/\" \/>\n<meta property=\"og:site_name\" content=\"Cmarzin\" \/>\n<meta property=\"article:published_time\" content=\"2015-11-03T20:37:24+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2016-01-07T16:55:35+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.cmarzin.fr\/site\/wp-content\/uploads\/pong.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"300\" \/>\n\t<meta property=\"og:image:height\" content=\"169\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Dur\u00e9e de lecture est.\">\n\t<meta name=\"twitter:data1\" content=\"5 minutes\">\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.cmarzin.fr\/site\/#website\",\"url\":\"https:\/\/www.cmarzin.fr\/site\/\",\"name\":\"Cmarzin\",\"description\":\"Formation et d\\u00e9veloppement Web et Multimedias\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":\"https:\/\/www.cmarzin.fr\/site\/?s={search_term_string}\",\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"fr-FR\"},{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/www.cmarzin.fr\/site\/2015\/11\/03\/pong\/#primaryimage\",\"inLanguage\":\"fr-FR\",\"url\":\"https:\/\/www.cmarzin.fr\/site\/wp-content\/uploads\/pong.jpg\",\"contentUrl\":\"https:\/\/www.cmarzin.fr\/site\/wp-content\/uploads\/pong.jpg\",\"width\":300,\"height\":169},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.cmarzin.fr\/site\/2015\/11\/03\/pong\/#webpage\",\"url\":\"https:\/\/www.cmarzin.fr\/site\/2015\/11\/03\/pong\/\",\"name\":\"Pong - Cmarzin\",\"isPartOf\":{\"@id\":\"https:\/\/www.cmarzin.fr\/site\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.cmarzin.fr\/site\/2015\/11\/03\/pong\/#primaryimage\"},\"datePublished\":\"2015-11-03T20:37:24+00:00\",\"dateModified\":\"2016-01-07T16:55:35+00:00\",\"author\":{\"@id\":\"https:\/\/www.cmarzin.fr\/site\/#\/schema\/person\/7c0008d57d9793c6cac9bea19c9dc1ba\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.cmarzin.fr\/site\/2015\/11\/03\/pong\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.cmarzin.fr\/site\/2015\/11\/03\/pong\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.cmarzin.fr\/site\/2015\/11\/03\/pong\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"item\":{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.cmarzin.fr\/site\/\",\"url\":\"https:\/\/www.cmarzin.fr\/site\/\",\"name\":\"Accueil\"}},{\"@type\":\"ListItem\",\"position\":2,\"item\":{\"@id\":\"https:\/\/www.cmarzin.fr\/site\/2015\/11\/03\/pong\/#webpage\"}}]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.cmarzin.fr\/site\/#\/schema\/person\/7c0008d57d9793c6cac9bea19c9dc1ba\",\"name\":\"cmarzin@noos.fr\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/www.cmarzin.fr\/site\/#personlogo\",\"inLanguage\":\"fr-FR\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/2719b7011bb8e1850a08c47f07a022ed?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/2719b7011bb8e1850a08c47f07a022ed?s=96&d=mm&r=g\",\"caption\":\"cmarzin@noos.fr\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","_links":{"self":[{"href":"https:\/\/www.cmarzin.fr\/site\/wp-json\/wp\/v2\/posts\/107"}],"collection":[{"href":"https:\/\/www.cmarzin.fr\/site\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.cmarzin.fr\/site\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.cmarzin.fr\/site\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.cmarzin.fr\/site\/wp-json\/wp\/v2\/comments?post=107"}],"version-history":[{"count":17,"href":"https:\/\/www.cmarzin.fr\/site\/wp-json\/wp\/v2\/posts\/107\/revisions"}],"predecessor-version":[{"id":739,"href":"https:\/\/www.cmarzin.fr\/site\/wp-json\/wp\/v2\/posts\/107\/revisions\/739"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.cmarzin.fr\/site\/wp-json\/wp\/v2\/media\/110"}],"wp:attachment":[{"href":"https:\/\/www.cmarzin.fr\/site\/wp-json\/wp\/v2\/media?parent=107"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.cmarzin.fr\/site\/wp-json\/wp\/v2\/categories?post=107"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.cmarzin.fr\/site\/wp-json\/wp\/v2\/tags?post=107"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}