{"id":574,"date":"2026-02-01T06:17:48","date_gmt":"2026-02-01T05:17:48","guid":{"rendered":"https:\/\/yanis-guettab.iris-occitanie.fr\/?page_id=574"},"modified":"2026-02-10T20:05:55","modified_gmt":"2026-02-10T19:05:55","slug":"hangman-ts","status":"publish","type":"page","link":"https:\/\/yanis-guettab.iris-occitanie.fr\/index.php\/hangman-ts\/","title":{"rendered":"Hangman TS"},"content":{"rendered":"\n<div class=\"wp-block-uagb-container uagb-block-6fa16fb6 alignfull uagb-is-root-container\"><div class=\"uagb-container-inner-blocks-wrap\">\n<p class=\"wp-block-paragraph\">Jeu du pendu programm\u00e9 en TypeScript<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Technologies :<\/strong> TypeScript, readline-sync, Visual Studio Code<br><strong>R\u00e9alisation :<\/strong> Janvier 2026<br><strong>Contexte : <\/strong>Travail scolaire<br><strong>Lien :<\/strong> <a href=\"https:\/\/github.com\/Eljireh\/Hangman-TS\">https:\/\/github.com\/Eljireh\/Hangman-TS<\/a><br><\/p>\n\n\n\n<div class=\"wp-block-uagb-image alignleft uagb-block-019fe781 wp-block-uagb-image--layout-default wp-block-uagb-image--effect-static wp-block-uagb-image--align-left\"><figure class=\"wp-block-uagb-image__figure\"><img decoding=\"async\" srcset=\"https:\/\/yanis-guettab.iris-occitanie.fr\/wp-content\/uploads\/2026\/02\/hangmants0.png ,https:\/\/yanis-guettab.iris-occitanie.fr\/wp-content\/uploads\/2026\/02\/hangmants0.png 780w, https:\/\/yanis-guettab.iris-occitanie.fr\/wp-content\/uploads\/2026\/02\/hangmants0.png 360w\" sizes=\"auto, (max-width: 480px) 150px\" src=\"https:\/\/yanis-guettab.iris-occitanie.fr\/wp-content\/uploads\/2026\/02\/hangmants0.png\" alt=\"\" class=\"uag-image-576\" width=\"556\" height=\"277\" title=\"hangmants0\" loading=\"lazy\" role=\"img\"\/><\/figure><\/div>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"513\" src=\"https:\/\/yanis-guettab.iris-occitanie.fr\/wp-content\/uploads\/2026\/02\/hangmants1-1024x513.png\" alt=\"\" class=\"wp-image-577\" srcset=\"https:\/\/yanis-guettab.iris-occitanie.fr\/wp-content\/uploads\/2026\/02\/hangmants1-1024x513.png 1024w, https:\/\/yanis-guettab.iris-occitanie.fr\/wp-content\/uploads\/2026\/02\/hangmants1-300x150.png 300w, https:\/\/yanis-guettab.iris-occitanie.fr\/wp-content\/uploads\/2026\/02\/hangmants1-768x385.png 768w, https:\/\/yanis-guettab.iris-occitanie.fr\/wp-content\/uploads\/2026\/02\/hangmants1.png 1161w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n<\/div><\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p class=\"wp-block-paragraph\">En cours d&rsquo;algorithmie, dans le cadre d&rsquo;un travail utilisant la biblioth\u00e8que readline-sync pour op\u00e9rer sur une r\u00e9ponse donn\u00e9e par un utilisateur, j&rsquo;ai d\u00fb programmer un jeu du pendu.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Les fonctions du jeu \u00e9taient d\u00e9j\u00e0 quasiment pr\u00e9-remplies.<br>Le but \u00e9tait de les compl\u00e9ter et de les organiser afin d&rsquo;obtenir un jeu fonctionnel.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"679\" src=\"https:\/\/yanis-guettab.iris-occitanie.fr\/wp-content\/uploads\/2026\/02\/is_in-1024x679.png\" alt=\"\" class=\"wp-image-721\" srcset=\"https:\/\/yanis-guettab.iris-occitanie.fr\/wp-content\/uploads\/2026\/02\/is_in-1024x679.png 1024w, https:\/\/yanis-guettab.iris-occitanie.fr\/wp-content\/uploads\/2026\/02\/is_in-300x199.png 300w, https:\/\/yanis-guettab.iris-occitanie.fr\/wp-content\/uploads\/2026\/02\/is_in-768x510.png 768w, https:\/\/yanis-guettab.iris-occitanie.fr\/wp-content\/uploads\/2026\/02\/is_in.png 1150w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"598\" src=\"https:\/\/yanis-guettab.iris-occitanie.fr\/wp-content\/uploads\/2026\/02\/hangman_mask-1024x598.png\" alt=\"\" class=\"wp-image-722\" srcset=\"https:\/\/yanis-guettab.iris-occitanie.fr\/wp-content\/uploads\/2026\/02\/hangman_mask-1024x598.png 1024w, https:\/\/yanis-guettab.iris-occitanie.fr\/wp-content\/uploads\/2026\/02\/hangman_mask-300x175.png 300w, https:\/\/yanis-guettab.iris-occitanie.fr\/wp-content\/uploads\/2026\/02\/hangman_mask-768x448.png 768w, https:\/\/yanis-guettab.iris-occitanie.fr\/wp-content\/uploads\/2026\/02\/hangman_mask.png 1132w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">J&rsquo;ai compl\u00e9t\u00e9 les fonctions et cr\u00e9\u00e9 la boucle de jeu.<br>Puis, apr\u00e8s avoir termin\u00e9 le minimum requis pour l&rsquo;exercice, j&rsquo;ai ajout\u00e9 des fonctionnalit\u00e9s pratiques au jeu, d\u00e9taill\u00e9es plus bas.<br>J&rsquo;ai d&rsquo;abord travaill\u00e9 en classe, puis seul, m&rsquo;aidant du TD.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Le jeu est enti\u00e8rement fait en TypeScript, programm\u00e9 depuis Visual Studio Code, utilisant la biblioth\u00e8que readline-sync.<br><br>Je n&rsquo;ai pas eu recours \u00e0 une m\u00e9thode particuli\u00e8re dans ce projet.<br><br>En raison de la petite taille du projet, je n&rsquo;ai pas mis en place d&rsquo;outil de gestion.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Le code est contenu dans un seul fichier<br>Le projet contient \u00e9galement un dossier de configuration node_modules.<br><br><strong>Jeu de base (suivant le TD) :<\/strong><br>&#8211; Mot sp\u00e9cifi\u00e9 avant de lancer le jeu<br>&#8211; 6 vies<br>&#8211; V\u00e9rification de si une lettre a d\u00e9j\u00e0 \u00e9t\u00e9 propos\u00e9e par le joueur<br>&#8211; V\u00e9rification de la pr\u00e9sence ou non de la lettre donn\u00e9e par le joueur dans le mot<br>&#8211; D\u00e9tection de victoire et de d\u00e9faite<br><br><strong>Extension :<\/strong><br>&#8211; Demande d&rsquo;un nom pour un joueur 1 (qui donnera le mot) et pour un joueur 2 (qui devinera)<br>&#8211; Prise en compte de mots avec espaces, apostrophes et traits d&rsquo;union<br>&#8211; V\u00e9rification de si le joueur 2 saisit une lettre et non un caract\u00e8re invalide<br>&#8211; V\u00e9rification de si le joueur 2 ne saisit qu&rsquo;une seule lettre<br>&#8211; Liste des lettres d\u00e9j\u00e0 propos\u00e9es<br>&#8211; Commande \/quit (ou \/q) pour interrompre la partie en cours (d\u00e8s que le joueur 2 commence \u00e0 deviner)<br>&#8211; Correction d&rsquo;un bug du jeu de base : le joueur 2 ne perd pas de vie lorsqu&rsquo;il saisit une lettre erron\u00e9e qu&rsquo;il avait d\u00e9j\u00e0 saisie.<br><br>J&rsquo;ai rencontr\u00e9 comme difficult\u00e9 la structure de if {} else {} de la v\u00e9rification de la saisie.<\/p>\n\n\n\n<div class=\"wp-block-uagb-separator uagb-block-0bc81f38\"><div class=\"wp-block-uagb-separator__inner\" style=\"--my-background-image:\"><\/div><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">J&rsquo;ai publi\u00e9 le code sur GitHub.<br><br>Ce projet m&rsquo;a permis d&rsquo;apprendre \u00e0 g\u00e9rer la saisie d&rsquo;un utilisateur en TypeScript, \u00e0 appliquer en situation r\u00e9elle l&rsquo;usage de constantes et \u00e0 aborder la r\u00e9v\u00e9lation partielle d&rsquo;une cha\u00eene de caract\u00e8re masqu\u00e9e.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Jeu du pendu programm\u00e9 en TypeScript Technologies : TypeScript, readline-sync, Visual Studio CodeR\u00e9alisation : Janvier 2026Contexte : Travail scolaireLien : [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_uag_custom_page_level_css":"","site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"class_list":["post-574","page","type-page","status-publish","hentry"],"uagb_featured_image_src":{"full":false,"thumbnail":false,"medium":false,"medium_large":false,"large":false,"1536x1536":false,"2048x2048":false},"uagb_author_info":{"display_name":"admin1014","author_link":"https:\/\/yanis-guettab.iris-occitanie.fr\/index.php\/author\/admin1014\/"},"uagb_comment_info":0,"uagb_excerpt":"Jeu du pendu programm\u00e9 en TypeScript Technologies : TypeScript, readline-sync, Visual Studio CodeR\u00e9alisation : Janvier 2026Contexte : Travail scolaireLien : [&hellip;]","_links":{"self":[{"href":"https:\/\/yanis-guettab.iris-occitanie.fr\/index.php\/wp-json\/wp\/v2\/pages\/574","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/yanis-guettab.iris-occitanie.fr\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/yanis-guettab.iris-occitanie.fr\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/yanis-guettab.iris-occitanie.fr\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/yanis-guettab.iris-occitanie.fr\/index.php\/wp-json\/wp\/v2\/comments?post=574"}],"version-history":[{"count":27,"href":"https:\/\/yanis-guettab.iris-occitanie.fr\/index.php\/wp-json\/wp\/v2\/pages\/574\/revisions"}],"predecessor-version":[{"id":723,"href":"https:\/\/yanis-guettab.iris-occitanie.fr\/index.php\/wp-json\/wp\/v2\/pages\/574\/revisions\/723"}],"wp:attachment":[{"href":"https:\/\/yanis-guettab.iris-occitanie.fr\/index.php\/wp-json\/wp\/v2\/media?parent=574"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}