//npm install const readlineSync = require("readline-sync"); //funkce pro vybrání náhodne slo pro hru function nahodneSlovo() { //načtou se slova const slova = ["skola", "zabava", "node", "hangman", "programovani"]; //náhodně se vybere číslo mezi 0 a délkou pole //nezapomenout že index začíná od NULY!!!! const nahodnyIndex = Math.floor(Math.random()*slova.length); //vrátí pouze 1 slovo z daného indexu return slova[nahodnyIndex]; } // funkce pro zobrazování slova pro hraní (zobrazuje uhodnutá písmena) -> formátovač function zobrazeniSlova(slovo,uhadnutaPismena) { return slovo .split('') //rozdělí slovo na písmena .map(pismeno => uhadnutaPismena.includes(pismeno) ? pismeno : '_') //zkontroluje jednotlivá písmena .join(' '); //zas spojí slovo dohromady se zobrazením uhodnutých písmenek } function hangman() { //načtení a nastavení hodnot const maxPokusu = 10; let zbyvajiciPokusy = maxPokusu; const hadajiciSlovo = nahodneSlovo(); let hadajiciPismenka = []; //zobrazení uvítaní console.log("Vítej ve hře Hangman!"); console.log(zobrazeniSlova(hadajiciSlovo,hadajiciPismenka)); //herní logiku while (zbyvajiciPokusy > 0) { const uhadnuti = readlineSync.question("Hadej pismeno: ").toLowerCase(); if(hadajiciPismenka.includes(uhadnuti)){ console.log("Toto písmeno už si hadal"); continue; //pokud hadajici pismeno už jsme zadali tak jde na zacatek while cyklu } //přidá písmeno do pole písmenek hadajiciPismenka.push(uhadnuti); //špatné písmeno if (!hadajiciSlovo.includes(uhadnuti)) { zbyvajiciPokusy--; console.log(`Špatný pokus! zbýva: ${zbyvajiciPokusy} pokusů`); // AltGR+ý Mezera } //zobrazení postupu po přidanání písmena const zobrazeniPoPridaniPismenka = zobrazeniSlova(hadajiciSlovo,hadajiciPismenka); console.log(zobrazeniPoPridaniPismenka); //když už máme všechny písmena - VÝHRA if (!zobrazeniPoPridaniPismenka.includes('_')){ console.log("WIN WIN, CHICKEN DINNER"); break; // nam vyskočí z cyklu } } //po vyčerpání všech pokusuů if (zbyvajiciPokusy === 0) { console.log(`Bohuže, prohral si nad slovem ${hadajiciSlovo}`); } } hangman();