You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

65 lines
2.0 KiB

const readlineSync = require("readline-sync")
function nahodneSlovo() {
//načteme si slova (napište si další)
const slova = ["skola", "zabava", "maturita", "web", "pes", "kocka"];
//nahodne se vybere cislo mezi 0 a delkou pole
// index zarína od NULY
const nahodnyIndex = Math.floor(Math.random()*slova.length)
//vrati pouze slovo na pozici nahodnyIndex
return slova[nahodnyIndex]
}
function zobrazeniSlova(slovo,zadanyPismena) {
return slovo.split('')
.map(pismeno => zadanyPismena.includes(pismeno) ? pismeno : '_')
.join(' ')
}
function hangman() {
//načtení a nastavení hodnot
const maxPokusu = 10;
let zbyvajiciPokusy = maxPokusu;
const hadajiciSlovo = nahodneSlovo();
let hadajiciPismena = [];
//uvítání
console.log("Vitej ve hře Hangman");
console.log(zobrazeniSlova(hadajiciSlovo,hadajiciPismena))
//herni logiku
while (zbyvajiciPokusy > 0){
const uhadnuti = readlineSync.question("Hadej pismeno: ").toLowerCase();
if (hadajiciPismena.includes(uhadnuti)){
console.log("Toto pismeno už si hadal(a)")
continue; // pokud hadajici pismeno už jsme zadali tak jde na začátek while cyklu
}
//přidáme pismeno do pole písmenek
hadajiciPismena.push(uhadnuti);
//Špatné písmeno
if (!hadajiciSlovo.includes(uhadnuti)){
zbyvajiciPokusy--;
console.log(`Špatný pokus, zbyva: ${zbyvajiciPokusy} pokusů`);
}
//zobrazeni pokusu po přidaní písmena
const zobrazeniPoPridaniPismenka = zobrazeniSlova(hadajiciSlovo,hadajiciPismena);
console.log(zobrazeniPoPridaniPismenka);
//když mame všechny písmena - VÝHRA
if(!zobrazeniPoPridaniPismenka.includes('_')){
console.log("WINNER WINNER, CHICKEN DINNER");
break;
}
}
//po vyčerpání pokusů
if (zbyvajiciPokusy === 0) {
console.log (`Bohužel, prohral si nad slovem ${hadajiciSlovo}`)
}
}
hangman()