{"id":3927,"date":"2015-04-22T09:32:01","date_gmt":"2015-04-22T07:32:01","guid":{"rendered":"https:\/\/www.customprotocol.com\/?post_type=it_programmation&amp;p=3927"},"modified":"2015-04-22T09:32:01","modified_gmt":"2015-04-22T07:32:01","slug":"coding-club-paris-epitech-mon-premier-morpion-en-javascript","status":"publish","type":"it_programmation","link":"https:\/\/www.customprotocol.com\/programmation\/coding-club-paris-epitech-mon-premier-morpion-en-javascript\/","title":{"rendered":"Coding Club Paris (Epitech)&nbsp;: mon premier &#8220;morpion&#8221; en javascript"},"content":{"rendered":"<p style=\"text-align: justify;\">Bien le bonjour \u00e0 tous et toutes&#8239;!&nbsp;\ud83d\ude42<\/p>\n<p style=\"text-align: justify;\">Vu que j'aime pas laisser mon b\u00e9b\u00e9 <strong>Custom Protocol<\/strong> sans lui donner au moins une petite <em>news<\/em> quotidienne dont il raffole tant, je vais aujourd'hui vous faire part de mon exp\u00e9rience au <strong>Coding Club<\/strong> d'<strong>Epitech<\/strong>. Tout d'abord, qu'est-ce qu'<strong>Epitech <\/strong>?<\/p>\n<p style=\"text-align: justify;\"><div align=\"justify\" class=\"signoff\"><i class=\"fa fa-fw fa-file\"><\/i><strong>Epitech<\/strong> est une \u00e9cole d'informatique cr\u00e9\u00e9e en 1999 qui forme en 5 ans apr\u00e8s-bac des experts du secteur. Elle permet de transformer une passion en expertise via une p\u00e9dagogie r\u00e9solument innovante, organis\u00e9e par projets. Elle est pr\u00e9sente dans 12 villes de France et \u00e0 Dakar (S\u00e9n\u00e9gal) et bient\u00f4t \u00e0 Beijing (Chine). <strong>Epitech<\/strong> d\u00e9livre un titre d'Expert en Technologies de l'Information (Bac+5), homologu\u00e9 Niveau 1 par l\u2019\u00c9tat au niveau de la Commission Nationale de la Certification Professionnelle (CNCP).<\/div>\n<p style=\"text-align: justify;\">Et... qu'est-ce que le <strong>Coding Club<\/strong>&#8239;?<\/p>\n<p style=\"text-align: justify;\"><div align=\"justify\" class=\"signoff\"><i class=\"fa fa-fw fa-laptop\"><\/i>Le <strong>Coding Club<\/strong> est un atelier r\u00e9current qui permet de vous initier \u00e0 la programmation et au d\u00e9veloppement. Que ce soit par exemple le d\u00e9veloppement de jeux vid\u00e9o et bien d'autres activit\u00e9s&#8239;! Il est disponible dans toutes les \u00e9coles <strong>Epitech<\/strong> de France&#8239;! Les ateliers d'apprentissage (stages durant les vacances, sessions le mercredi ou le samedi) sont anim\u00e9s par des \u00e9tudiants d<strong>'Epitech<\/strong>.<\/div>\n<figure id=\"attachment_3928\" aria-describedby=\"caption-attachment-3928\" style=\"width: 300px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/www.customprotocol.com\/medias\/2015\/04\/coding-club-epitech.png\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-3928 size-medium\" src=\"https:\/\/www.customprotocol.com\/medias\/2015\/04\/coding-club-epitech-300x180.png\" alt=\"Image d'illustration du Coding Club\" width=\"300\" height=\"180\" srcset=\"https:\/\/www.customprotocol.com\/medias\/2015\/04\/coding-club-epitech-300x180.png 300w, https:\/\/www.customprotocol.com\/medias\/2015\/04\/coding-club-epitech-370x223.png 370w, https:\/\/www.customprotocol.com\/medias\/2015\/04\/coding-club-epitech-270x162.png 270w, https:\/\/www.customprotocol.com\/medias\/2015\/04\/coding-club-epitech-570x343.png 570w, https:\/\/www.customprotocol.com\/medias\/2015\/04\/coding-club-epitech.png 635w, https:\/\/www.customprotocol.com\/medias\/2015\/04\/coding-club-epitech-300x180@2x.png 600w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><figcaption id=\"caption-attachment-3928\" class=\"wp-caption-text\">Image d'illustration du <strong>Coding Club<\/strong><\/figcaption><\/figure>\n<p style=\"text-align: justify;\">Maintenant que vous voyez \u00e0 peu pr\u00e8s l'utilit\u00e9 du <strong>Coding Club<\/strong>, revenons \u00e0 nos moutons. Je suis un pi\u00e8tre descripteur (\u00e7a se dit&#8239;? o_O), mais en un mot, je dirais que c'\u00e9tait z\u00e9nial. L'ambiance \u00e9tait plut\u00f4t \"d\u00e9tendue\" et \"cool\" - contrairement \u00e0 ce \u00e0 quoi je m'attendais -, les conseillers techniques sympathiques et \u00e0 l'\u00e9coute de chacun d'entre nous, les locaux assez bien entretenus et design (on notera la pelouse \"invers\u00e9e\" avant de rentrer dans la caf\u00e9t' qui se trouve... au plafond), et enfin le self \u00e9tait carr\u00e9ment meilleur qu'\u00e0 mon lyc\u00e9e (je ne citerai pas de nom&nbsp;:P).<\/p>\n<p style=\"text-align: justify;\">On a pu visiter lundi matin le <em>Innovation Hub<\/em>, que j'avais d\u00e9j\u00e0 entrevu durant les portes ouvertes de la m\u00eame \u00e9cole, dans sa quasi-int\u00e9gralit\u00e9 tout en parlant avec les \u00e9tudiants qui s'y trouvaient, et dont le centre d'int\u00e9r\u00eat diff\u00e9rait toujours (un coup c'\u00e9tait l'intelligence artificielle, l'autre la manipulation des <em>Google Glass<\/em> ou autres <em>Oculus Rift<\/em>, tandis que le suivant \u00e9tait \u00e0 fond sur le portage de <em>Jubeat<\/em> avec un clavier personnalis\u00e9 et physique, etc.).<\/p>\n<figure id=\"attachment_3930\" aria-describedby=\"caption-attachment-3930\" style=\"width: 300px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/www.customprotocol.com\/medias\/2015\/04\/Jubeat-Epitech-Innovation-Hub.png\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-3930 size-medium\" src=\"https:\/\/www.customprotocol.com\/medias\/2015\/04\/Jubeat-Epitech-Innovation-Hub-300x98.png\" alt=\"Le Jubeat du futur by Epitech\" width=\"300\" height=\"98\" srcset=\"https:\/\/www.customprotocol.com\/medias\/2015\/04\/Jubeat-Epitech-Innovation-Hub-300x98.png 300w, https:\/\/www.customprotocol.com\/medias\/2015\/04\/Jubeat-Epitech-Innovation-Hub-370x121.png 370w, https:\/\/www.customprotocol.com\/medias\/2015\/04\/Jubeat-Epitech-Innovation-Hub-270x88.png 270w, https:\/\/www.customprotocol.com\/medias\/2015\/04\/Jubeat-Epitech-Innovation-Hub-570x186.png 570w, https:\/\/www.customprotocol.com\/medias\/2015\/04\/Jubeat-Epitech-Innovation-Hub.png 687w, https:\/\/www.customprotocol.com\/medias\/2015\/04\/Jubeat-Epitech-Innovation-Hub-300x98@2x.png 600w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><figcaption id=\"caption-attachment-3930\" class=\"wp-caption-text\">Le <em>Jubeat<\/em> du futur by <strong>Epitech<\/strong><\/figcaption><\/figure>\n<p style=\"text-align: justify;\">Ensuite, du lundi apr\u00e8s-midi jusqu'\u00e0 mardi 17h, on n'a pas arr\u00eat\u00e9 d'essayer de coder un putain de morpion en<em> javascript<\/em>. Et croyez-moi, quand on n'y connait mais alors que dalle en <em>javascript<\/em>, c'est chaud. D: Autant la partie HTML\/CSS se bouclait en 1 heure, autant <em>javascript<\/em>... Bref, \u00e7a m'a bien pris la t\u00eate plusieurs heures. Mais en restant motiv\u00e9 et confiant, j'ai pu comprendre mes erreurs, les corriger, refaire des erreurs, les re-comprendre, les re-corriger, etc. Jusqu'\u00e0 arriver \u00e0 un jeu assez stable.<\/p>\n<p style=\"text-align: justify;\">Et l\u00e0, stup\u00e9faction&nbsp;: je vois que je suis l'un des seuls \u00e0 avoir termin\u00e9&#8239;!&nbsp;:O Un conseiller technique me propose du coup, \u00e0 d\u00e9faut de r\u00e9aliser une intelligence artificielle faute de temps, de cr\u00e9er un petit s\u00e9lecteur de <del>personnages<\/del> poneys (faut croire que la majorit\u00e9 des \u00e9tudiants d'<strong>Epitech<\/strong> vouent un culte \u00e0 <em>My Little Pony<\/em>) afin que les 2 joueurs puissent choisir leur h\u00e9ros pr\u00e9f\u00e9r\u00e9 (ou h\u00e9ro\u00efne, j'en sais rien). J'accepte le d\u00e9fi, et arrive \u00e0 terminer \u00e0 17h pile mon pitit morpion. \u00c7a peut para\u00eetre de la merde, mais je me sentais fier. \ud83d\ude0e Et les bravo des \u00e9tudiants n'ont fait qu'att\u00e9nuer cette petite fiert\u00e9.<\/p>\n<figure id=\"attachment_3939\" aria-describedby=\"caption-attachment-3939\" style=\"width: 1024px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/www.customprotocol.com\/morpion\/\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-3939 size-large\" src=\"https:\/\/www.customprotocol.com\/medias\/2015\/04\/Morpion-by-Wirus-screenshot-1024x563.png\" alt=\"Screenshot de on morpion...&nbsp;:')\" width=\"1024\" height=\"563\" srcset=\"https:\/\/www.customprotocol.com\/medias\/2015\/04\/Morpion-by-Wirus-screenshot-1024x563.png 1024w, https:\/\/www.customprotocol.com\/medias\/2015\/04\/Morpion-by-Wirus-screenshot-300x165.png 300w, https:\/\/www.customprotocol.com\/medias\/2015\/04\/Morpion-by-Wirus-screenshot-768x422.png 768w, https:\/\/www.customprotocol.com\/medias\/2015\/04\/Morpion-by-Wirus-screenshot-370x203.png 370w, https:\/\/www.customprotocol.com\/medias\/2015\/04\/Morpion-by-Wirus-screenshot-270x148.png 270w, https:\/\/www.customprotocol.com\/medias\/2015\/04\/Morpion-by-Wirus-screenshot-570x313.png 570w, https:\/\/www.customprotocol.com\/medias\/2015\/04\/Morpion-by-Wirus-screenshot-740x407.png 740w, https:\/\/www.customprotocol.com\/medias\/2015\/04\/Morpion-by-Wirus-screenshot.png 1547w, https:\/\/www.customprotocol.com\/medias\/2015\/04\/Morpion-by-Wirus-screenshot-300x165@2x.png 600w, https:\/\/www.customprotocol.com\/medias\/2015\/04\/Morpion-by-Wirus-screenshot-768x422@2x.png 1536w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption id=\"caption-attachment-3939\" class=\"wp-caption-text\">Screenshot de <a title=\"Morpion by Wirus\" href=\"https:\/\/www.customprotocol.com\/morpion\/\" target=\"_blank\" rel=\"noopener noreferrer\">mon morpion<\/a>...&nbsp;:')<\/figcaption><\/figure>\n<p style=\"text-align: justify;\">Mon mini-morpion est donc disponible <a title=\"Morpion by Wirus\" href=\"https:\/\/www.customprotocol.com\/morpion\/index.html\" target=\"_blank\" rel=\"noopener noreferrer\">\u00e0 cette adresse<\/a>, mais comme vous le remarquerez certainement tr\u00e8s rapidement, il y a un probl\u00e8me d'optimisation et de chargement (m\u00eame sur <strong>Custom Protocol <\/strong>en fait) d\u00fb au fait que votre navigateur doit charger l'image de fond qui est assez lourde ainsi que la police. Je vous sugg\u00e8re donc de t\u00e9l\u00e9charger <a title=\"Archive de Morpion by Wirus\" href=\"https:\/\/www.customprotocol.com\/medias\/2015\/04\/Morpion-by-Wirus.zip\" target=\"_blank\" rel=\"noopener noreferrer\">l'archive de mon jeu de 1.37 mb \u00e0 cette adresse<\/a> (suffit d'extraire toussa et de glisser-d\u00e9poser le fichier<em> index.html<\/em> sur votre navigateur), et si vous le souhaitez de voir son code source (critiques d\u00e9sagr\u00e9ables s'abstenir&nbsp;:o).<\/p>\n<p style=\"text-align: justify;\">Bref, tr\u00e8s content de ce petit \"s\u00e9jour\" \u00e0 <strong>Epitech<\/strong>, je pense et j'esp\u00e8re continuer un peu le <em>javascript<\/em> dans mon coin pour, par exemple, am\u00e9liorer <strong>Custom Protocol<\/strong> et lui rajouter des fonctionnalit\u00e9s exclusives plus tard&#8239;!&nbsp;\ud83d\ude42<\/p>\n<p style=\"text-align: justify;\"><div class=\"mks_toggles\"><div class=\"mks_toggle\"><div class=\"mks_toggle_heading\">index.html<i class=\"fa fa-plus\"><\/i><i class=\"fa fa-minus\"><\/i><\/div><div class=\"mks_toggle_content\">Voici la partie HTML de mon morpion&nbsp;:<\/p>\n<pre class=\"lang:php decode:true\" title=\"index.html\">&lt;!DOCTYPE html&gt;\n&lt;html&gt;\n&lt;meta charset=\"UTF-8\"&gt;&lt;\/meta&gt;\n&lt;head&gt;\n\t&lt;title&gt;Morpion by Wirus&lt;\/title&gt;\n\t&lt;link rel=\"stylesheet\" type=\"text\/css\" href=\"style.css\" media=\"screen\" \/&gt;\n&lt;\/head&gt;\n \n&lt;body&gt;\n\t&lt;div id=\"logo\"&gt;&lt;img src=\"img\/logo-epitech-header.png\"&gt;&lt;\/div&gt;\n \n\t&lt;div id=\"selecteur\"&gt;\n\t\t&lt;button&gt;&lt;\/button&gt;\n\t\t&lt;button&gt;&lt;\/button&gt;\n\t\t&lt;button&gt;&lt;\/button&gt;\n\t\t&lt;button&gt;&lt;\/button&gt;\n\t\t&lt;button&gt;&lt;\/button&gt;\n\t\t&lt;button&gt;&lt;\/button&gt;\n\t&lt;\/div&gt;\n \n\t&lt;div id=\"game\"&gt;\n\t\t&lt;div&gt;\n\t\t\t&lt;button&gt;&lt;\/button&gt;\n\t\t\t&lt;button&gt;&lt;\/button&gt;\n\t\t\t&lt;button&gt;&lt;\/button&gt;\n\t\t&lt;\/div&gt;\n \n\t\t&lt;div&gt;\n\t\t\t&lt;button&gt;&lt;\/button&gt;\n\t\t\t&lt;button&gt;&lt;\/button&gt;\n\t\t\t&lt;button&gt;&lt;\/button&gt;\n\t\t&lt;\/div&gt;\n \n\t\t&lt;div&gt;\n\t\t\t&lt;button&gt;&lt;\/button&gt;\n\t\t\t&lt;button&gt;&lt;\/button&gt;\n\t\t\t&lt;button&gt;&lt;\/button&gt;\n\t\t&lt;\/div&gt;\n\t&lt;\/div&gt;\n \n\t&lt;div id=\"gameStatus\"&gt;\n\t&lt;\/div&gt;\n \n\t&lt;div id=\"finwall\"&gt;\n\t&lt;\/div&gt;\n \n\t&lt;div id=\"credits\"&gt;\n\t\t&lt;p&gt;POWERED BY&lt;\/p&gt;\n\t\t&lt;a href=\"https:\/\/www.customprotocol.com\/\"&gt;&lt;img src=\"https:\/\/www.customprotocol.com\/medias\/2015\/01\/CTP-logo-horizontal-by-Windvern-petit.png\"&gt;&lt;\/a&gt;\n\t&lt;\/div&gt;\n \n\t&lt;script src=\"Morpion.js\" type=\"text\/javascript\"&gt;&lt;\/script&gt;\n&lt;\/body&gt;\n&lt;\/html&gt;<\/pre>\n<p style=\"text-align: justify;\"><\/div><\/div><div class=\"mks_toggle\"><div class=\"mks_toggle_heading\">style.css<i class=\"fa fa-plus\"><\/i><i class=\"fa fa-minus\"><\/i><\/div><div class=\"mks_toggle_content\">Voici la partie CSS de mon morpion&nbsp;:<\/p>\n<pre class=\"lang:css decode:true \" title=\"style.css\">@font-face {\n   font-family: 'Roboto';\n   src: url('Roboto-Medium.ttf');\n}\n \nbody {\n    background: url('img\/wall.jpg') no-repeat -180px -100px;\n\tfont-family: 'Roboto', sans-serif;\n\tfont-size: 14px;\n}\n \n#logo {\n\ttext-align: center;\n}\n \n#game {\n\twidth: 350px;\n\theight: 350px;\n\tmargin: 22px auto 22px auto;\n\tbackground: rgb(18, 132, 220);\n\tpadding: 10px;\n\tborder-radius: 5px;\n}\n \n#game button {\n\twidth: 102px;\n\theight: 102px;\n\tfloat: left;\n\tmargin: 7px;\n\tbackground:&#8239;;\n}\n \n#game div {\n        width: 350px;\n        text-align: center;\n}\n \n#gameStatus {\n\twidth: 360px;\n\theight: auto;\n\tbackground: rgb(18, 132, 220);\n\tborder-radius: 5px;\n\tmargin: auto;\n\tpadding: 5px;\n\tcolor: #DDD;\n\ttext-align: center;\n}\n \n#gameStatus a {\n\tcolor: rgb(200, 200, 0);\n\tfont-weight: bold;\n}\n \n#gameStatus img {\n\twidth: 20px;\n\theight: auto;\n}\n \n@media screen and (min-height: 700px) {\n \n#credits {\n\tbackground: none repeat scroll 0% 0% rgba(255, 255, 255, 0.5);\n\twidth: 100%;\n\theight: 100px;\n\tposition: absolute;\n\tbottom: 0px;\n\tleft: 0px;\n\ttext-align: right;\n}\n \n#credits p {\n\tmargin: 15px 22px 10px 0px;\n}\n \n#credits img {\n\twidth: 150px;\n\tmargin: -5px 5px 0px 0px;\n}\n \n}\n \n@media screen and (max-height: 700px) {\n\t#credits {display: none;}\n}\n \n#selecteur {\n\twidth: 350px;\n\theight: 240px;\n\tmargin: 22px auto 22px auto;\n\tbackground: rgb(18, 132, 220);\n\tpadding: 10px;\n\tborder-radius: 5px;\n}\n \n#selecteur button {\n\twidth: 102px;\n\theight: 102px;\n\tfloat: left;\n\tmargin: 7px;\n\tfont-size: 12px;\n\tbackground:&#8239;;\n}\n\n#selecteur img {\n\tdisplay: block;\n\tmargin: auto;\n}<\/pre>\n<p style=\"text-align: justify;\"><\/div><\/div><div class=\"mks_toggle\"><div class=\"mks_toggle_heading\">Morpion.js<i class=\"fa fa-plus\"><\/i><i class=\"fa fa-minus\"><\/i><\/div><div class=\"mks_toggle_content\">Voici la partie JavaScript de mon morpion&nbsp;:<\/p>\n<pre class=\"lang:js decode:true\" title=\"Morpion.js\">function modifyStatut(element, message) {\n\telement.innerHTML&nbsp;=&nbsp;message;\n}\n \nfunction isValid(valeur) {\n\treturn valeur.innerHTML == 0;\n}\n \nfunction setSymbole(bouton, joueur) {\n\tbouton.innerHTML&nbsp;=&nbsp;joueur;\n}\n \nfunction searchWinner(pions, gamers, currentTurn) {\n\tif (pions[0].innerHTML == gamers[currentTurn] &amp;&amp;\n\t\tpions[1].innerHTML == gamers[currentTurn] &amp;&amp;\n\t\tpions[2].innerHTML == gamers[currentTurn])\n\treturn true;\n \n\tif (pions[3].innerHTML == gamers[currentTurn] &amp;&amp;\n\t\tpions[4].innerHTML == gamers[currentTurn] &amp;&amp;\n\t\tpions[5].innerHTML == gamers[currentTurn])\n\treturn true;\n \n\tif (pions[6].innerHTML == gamers[currentTurn] &amp;&amp;\n\t\tpions[7].innerHTML == gamers[currentTurn] &amp;&amp;\n\t\tpions[8].innerHTML == gamers[currentTurn])\n\treturn true;\n \n\tif (pions[0].innerHTML == gamers[currentTurn] &amp;&amp;\n\t\tpions[3].innerHTML == gamers[currentTurn] &amp;&amp;\n\t\tpions[6].innerHTML == gamers[currentTurn])\n\treturn true;\n \n\tif (pions[1].innerHTML == gamers[currentTurn] &amp;&amp;\n\t\tpions[4].innerHTML == gamers[currentTurn] &amp;&amp;\n\t\tpions[7].innerHTML == gamers[currentTurn])\n\treturn true;\n \n\tif (pions[2].innerHTML == gamers[currentTurn] &amp;&amp;\n\t\tpions[5].innerHTML == gamers[currentTurn] &amp;&amp;\n\t\tpions[8].innerHTML == gamers[currentTurn])\n\treturn true;\n \n\tif (pions[0].innerHTML == gamers[currentTurn] &amp;&amp;\n\t\tpions[4].innerHTML == gamers[currentTurn] &amp;&amp;\n\t\tpions[8].innerHTML == gamers[currentTurn])\n\treturn true;\n \n\tif (pions[2].innerHTML == gamers[currentTurn] &amp;&amp;\n\t\tpions[4].innerHTML == gamers[currentTurn] &amp;&amp;\n\t\tpions[6].innerHTML == gamers[currentTurn])\n\treturn true;\n}\n \nfunction matchNul(pions, gamers, currentTurn) {\n\tfor (var i&nbsp;=&nbsp;0, len&nbsp;=&nbsp;pions.length; i &lt; len; i++) {\n\t\tif (pions[i].innerHTML == 0)\n\t\treturn false\n\t}\n\treturn true\n}\n \nfunction main() {\n\tvar currentTurn&nbsp;=&nbsp;Math.floor((Math.random())),\n\t\tisGameOver&nbsp;=&nbsp;false,\n\t\tafficheur&nbsp;=&nbsp;document.querySelector(\"#gameStatus\"),\n        pions&nbsp;=&nbsp;document.querySelectorAll(\"#game button\");\n        modifyStatut(afficheur, \"Le jeu peut d\u00e9marrer.&lt;br\/&gt;Joueur \"&nbsp;+&nbsp;gamers[currentTurn]&nbsp;+&nbsp;\" (\"+ gamersnom[currentTurn] +\"), &amp;#224; vous de jouer...\");\n       \n\tfor (var i&nbsp;=&nbsp;0, len&nbsp;=&nbsp;pions.length; i &lt; len; i++) {\n\t\tpions[i].addEventListener(\"click\", function() {\n\t\t\tif (isGameOver)\n\t\t\t\treturn;\n \n\t\t\tif (isValid(this)) {\n\t\t\t\tsetSymbole(this, gamers[currentTurn]);\n\t\t\t\tif (searchWinner(pions, gamers, currentTurn)) {\n\t\t\t\t\tmodifyStatut(afficheur, \"Le joueur \"&nbsp;+&nbsp;gamers[currentTurn]&nbsp;+&nbsp;\" (\"+ gamersnom[currentTurn] +\") a gagn\u00e9&#8239;!&nbsp;:D&lt;br \/&gt;&lt;a href=\\\"index.html\\\"&gt;Rejouer&#8239;?&lt;\/a&gt;\");\n\t\t\t\t\tisGameOver&nbsp;=&nbsp;true;\n\t\t\t\t} else if (matchNul(pions, gamers, currentTurn)) {\n\t\t\t\t\tmodifyStatut(afficheur, \"Match Nul&#8239;!&nbsp;:O&lt;br \/&gt;&lt;a href=\\\"index.html\\\"&gt;Rejouer&#8239;?&lt;\/a&gt;\");\n\t\t\t\t\tisGameOver&nbsp;=&nbsp;true;\n\t\t\t\t} else {\n\t\t\t\t\tcurrentTurn++;\n\t\t\t\t\tcurrentTurn&nbsp;=&nbsp;currentTurn&#8239;% 2;\n\t\t\t\t\tmodifyStatut(afficheur, \"Joueur \"&nbsp;+&nbsp;gamers[currentTurn]&nbsp;+&nbsp;\" (\"+ gamersnom[currentTurn] +\"), c'est &amp;#224; votre tour&#8239;!\");\n\t\t\t\t}\n\t\t\t} else {             \n\t\t\tmodifyStatut(afficheur, \"Quelqu'un a d\u00e9j\u00e0 jou\u00e9 ici&#8239;!\");\n\t\t\t}\n\t\t});\n\t}\n}\n \nfunction SelectVerif() {\n\tif (this.innerHTML.split(\"&gt;\")[1]&#8239;!= gamersnom[currentSelection - 1]) {\n\t\tgamersnom[currentSelection]&nbsp;=&nbsp;this.innerHTML.split(\"&gt;\")[1];\n\t\tgamers[currentSelection]&nbsp;=&nbsp;this.innerHTML.split(\"&gt;\")[0]&nbsp;+&nbsp;\"&gt;\";\n\t\talert(\"Joueur \"&nbsp;+&nbsp;(currentSelection&nbsp;+&nbsp;1)&nbsp;+&nbsp;\", vous avez choisi \"&nbsp;+&nbsp;gamersnom[currentSelection]);\n\t\tcurrentSelection++;\n\t\tmodifyStatut(document.querySelector(\"#gameStatus\"), \"Joueur 2, choisissez votre poney pr\u00e9f\u00e9r\u00e9&#8239;!&nbsp;:)\");\n\n\t\tif (currentSelection &gt; 1) {\n\t\t\tdemarrer&nbsp;=&nbsp;true;\n\t\t\tdocument.querySelector(\"#game\").style.display&nbsp;=&nbsp;\"\";\n\t\t\tdocument.querySelector(\"#selecteur\").style.display&nbsp;=&nbsp;\"none\";\n\t\t\tmain();\n        }\n\t}\n}\n \nfunction selecteur() {\n\tvar afficheur&nbsp;=&nbsp;document.querySelector(\"#gameStatus\"),\n\t\tponeys&nbsp;=&nbsp;document.querySelectorAll(\"#selecteur button\"),\n\t\timages&nbsp;=&nbsp;['&lt;img src=\"img\/ts.gif\"&gt;', '&lt;img src=\"img\/rd.gif\"&gt;', '&lt;img src=\"img\/aj.gif\"&gt;', '&lt;img src=\"img\/pp.gif\"&gt;', '&lt;img src=\"img\/r.gif\"&gt;', '&lt;img src=\"img\/f.gif\"&gt;'],\n\t\tnoms&nbsp;=&nbsp;['Twilight Sparkle', 'Rainbow Dash', 'Applejack', 'Pinkie Pie', 'Rarity', 'Fluttershy'];\n\n\tdocument.querySelector(\"#game\").style.display&nbsp;=&nbsp;\"none\";\n\tmodifyStatut(afficheur, \"Joueur \"&nbsp;+&nbsp;(currentSelection&nbsp;+&nbsp;1)&nbsp;+&nbsp;\", choisissez votre poney pr\u00e9f\u00e9r\u00e9&#8239;!&nbsp;:)\");\n\t\n\tfor (var i&nbsp;=&nbsp;0, len&nbsp;=&nbsp;poneys.length; i &lt; len; i++) {\n\t\tponeys[i].innerHTML&nbsp;=&nbsp;images[i]&nbsp;+&nbsp;noms[i];\n\t\tponeys[i].addEventListener(\"click\", SelectVerif);\n\t}\n}\n \nvar currentSelection&nbsp;=&nbsp;0,\n\tgamers&nbsp;=&nbsp;['', ''],\n\tgamersnom&nbsp;=&nbsp;['', ''];\n \nselecteur();<\/pre>\n<p style=\"text-align: justify;\"><\/div><\/div><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Rien d'extraordinaire me direz-vous... Quoiqu'il en soit, je suis content d'avoir appris un peu de javascript avec le Coding Club d'Epitech \u00e0 Paris ces 2 derniers jours, j'esp\u00e8re continuer dans cette lanc\u00e9e&#8239;! ^^<\/p>\n","protected":false},"author":481,"featured_media":3946,"menu_order":0,"comment_status":"open","ping_status":"open","template":"","format":"standard","meta":{"footnotes":""},"categories":[586,454],"tags":[624],"programmation-categorie":[620,625],"class_list":["post-3927","it_programmation","type-it_programmation","status-publish","format-standard","has-post-thumbnail","hentry","category-news-programmation","category-programmation","tag-morpion","programmation_categorie-code-source","programmation_categorie-test-javascript"],"yoast_head":"\n<title>Coding Club Paris (Epitech) : mon premier &quot;morpion&quot; en javascript - Custom Protocol<\/title>\n<meta name=\"description\" content=\"Rien d&#039;extraordinaire me direz-vous... Quoiqu&#039;il en soit, je suis content d&#039;avoir appris un peu de javascript avec le Coding Club d&#039;Epitech \u00e0 Paris !\" \/>\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.customprotocol.com\/programmation\/coding-club-paris-epitech-mon-premier-morpion-en-javascript\/\" \/>\n<meta property=\"og:locale\" content=\"fr_CA\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Coding Club Paris (Epitech) : mon premier &quot;morpion&quot; en javascript - Custom Protocol\" \/>\n<meta property=\"og:description\" content=\"Rien d&#039;extraordinaire me direz-vous... Quoiqu&#039;il en soit, je suis content d&#039;avoir appris un peu de javascript avec le Coding Club d&#039;Epitech \u00e0 Paris !\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.customprotocol.com\/programmation\/coding-club-paris-epitech-mon-premier-morpion-en-javascript\/\" \/>\n<meta property=\"og:site_name\" content=\"Custom Protocol\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.customprotocol.com\/medias\/2015\/04\/coding-club-epitech-poneybonus.png\" \/>\n\t<meta property=\"og:image:width\" content=\"635\" \/>\n\t<meta property=\"og:image:height\" content=\"382\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Estimation du temps de lecture\" \/>\n\t<meta name=\"twitter:data1\" content=\"9 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.customprotocol.com\/programmation\/coding-club-paris-epitech-mon-premier-morpion-en-javascript\/\",\"url\":\"https:\/\/www.customprotocol.com\/programmation\/coding-club-paris-epitech-mon-premier-morpion-en-javascript\/\",\"name\":\"Coding Club Paris (Epitech) : mon premier \\\"morpion\\\" en javascript - Custom Protocol\",\"isPartOf\":{\"@id\":\"https:\/\/www.customprotocol.com\/#website\"},\"datePublished\":\"2015-04-22T07:32:01+00:00\",\"dateModified\":\"2015-04-22T07:32:01+00:00\",\"description\":\"Rien d'extraordinaire me direz-vous... Quoiqu'il en soit, je suis content d'avoir appris un peu de javascript avec le Coding Club d'Epitech \u00e0 Paris !\",\"breadcrumb\":{\"@id\":\"https:\/\/www.customprotocol.com\/programmation\/coding-club-paris-epitech-mon-premier-morpion-en-javascript\/#breadcrumb\"},\"inLanguage\":\"fr-CA\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.customprotocol.com\/programmation\/coding-club-paris-epitech-mon-premier-morpion-en-javascript\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.customprotocol.com\/programmation\/coding-club-paris-epitech-mon-premier-morpion-en-javascript\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\/\/www.customprotocol.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Programmation\",\"item\":\"https:\/\/www.customprotocol.com\/programmation\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Coding Club Paris (Epitech)&nbsp;: mon premier &#8220;morpion&#8221; en javascript\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.customprotocol.com\/#website\",\"url\":\"https:\/\/www.customprotocol.com\/\",\"name\":\"Custom Protocol\",\"description\":\"Site d&#039;hack-tualit\u00e9 et de tutoriels sur la customisation de consoles et appareils (homebrews, plugins, \u00e9mulation...)\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.customprotocol.com\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"fr-CA\"}]}<\/script>\n","yoast_head_json":{"title":"Coding Club Paris (Epitech) : mon premier \"morpion\" en javascript - Custom Protocol","description":"Rien d'extraordinaire me direz-vous... Quoiqu'il en soit, je suis content d'avoir appris un peu de javascript avec le Coding Club d'Epitech \u00e0 Paris !","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.customprotocol.com\/programmation\/coding-club-paris-epitech-mon-premier-morpion-en-javascript\/","og_locale":"fr_CA","og_type":"article","og_title":"Coding Club Paris (Epitech) : mon premier \"morpion\" en javascript - Custom Protocol","og_description":"Rien d'extraordinaire me direz-vous... Quoiqu'il en soit, je suis content d'avoir appris un peu de javascript avec le Coding Club d'Epitech \u00e0 Paris !","og_url":"https:\/\/www.customprotocol.com\/programmation\/coding-club-paris-epitech-mon-premier-morpion-en-javascript\/","og_site_name":"Custom Protocol","og_image":[{"width":635,"height":382,"url":"https:\/\/www.customprotocol.com\/medias\/2015\/04\/coding-club-epitech-poneybonus.png","type":"image\/png"}],"twitter_card":"summary_large_image","twitter_misc":{"Estimation du temps de lecture":"9 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.customprotocol.com\/programmation\/coding-club-paris-epitech-mon-premier-morpion-en-javascript\/","url":"https:\/\/www.customprotocol.com\/programmation\/coding-club-paris-epitech-mon-premier-morpion-en-javascript\/","name":"Coding Club Paris (Epitech) : mon premier \"morpion\" en javascript - Custom Protocol","isPartOf":{"@id":"https:\/\/www.customprotocol.com\/#website"},"datePublished":"2015-04-22T07:32:01+00:00","dateModified":"2015-04-22T07:32:01+00:00","description":"Rien d'extraordinaire me direz-vous... Quoiqu'il en soit, je suis content d'avoir appris un peu de javascript avec le Coding Club d'Epitech \u00e0 Paris !","breadcrumb":{"@id":"https:\/\/www.customprotocol.com\/programmation\/coding-club-paris-epitech-mon-premier-morpion-en-javascript\/#breadcrumb"},"inLanguage":"fr-CA","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.customprotocol.com\/programmation\/coding-club-paris-epitech-mon-premier-morpion-en-javascript\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.customprotocol.com\/programmation\/coding-club-paris-epitech-mon-premier-morpion-en-javascript\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.customprotocol.com\/"},{"@type":"ListItem","position":2,"name":"Programmation","item":"https:\/\/www.customprotocol.com\/programmation\/"},{"@type":"ListItem","position":3,"name":"Coding Club Paris (Epitech)&nbsp;: mon premier &#8220;morpion&#8221; en javascript"}]},{"@type":"WebSite","@id":"https:\/\/www.customprotocol.com\/#website","url":"https:\/\/www.customprotocol.com\/","name":"Custom Protocol","description":"Site d&#039;hack-tualit\u00e9 et de tutoriels sur la customisation de consoles et appareils (homebrews, plugins, \u00e9mulation...)","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.customprotocol.com\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"fr-CA"}]}},"_links":{"self":[{"href":"https:\/\/www.customprotocol.com\/api\/wp\/v2\/programmation\/3927","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.customprotocol.com\/api\/wp\/v2\/programmation"}],"about":[{"href":"https:\/\/www.customprotocol.com\/api\/wp\/v2\/types\/it_programmation"}],"author":[{"embeddable":true,"href":"https:\/\/www.customprotocol.com\/api\/wp\/v2\/users\/481"}],"replies":[{"embeddable":true,"href":"https:\/\/www.customprotocol.com\/api\/wp\/v2\/comments?post=3927"}],"version-history":[{"count":0,"href":"https:\/\/www.customprotocol.com\/api\/wp\/v2\/programmation\/3927\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.customprotocol.com\/api\/wp\/v2\/media\/3946"}],"wp:attachment":[{"href":"https:\/\/www.customprotocol.com\/api\/wp\/v2\/media?parent=3927"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.customprotocol.com\/api\/wp\/v2\/categories?post=3927"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.customprotocol.com\/api\/wp\/v2\/tags?post=3927"},{"taxonomy":"programmation_categorie","embeddable":true,"href":"https:\/\/www.customprotocol.com\/api\/wp\/v2\/programmation-categorie?post=3927"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}