4 changed files with 92 additions and 0 deletions
@ -0,0 +1,66 @@ |
|||
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(); |
@ -0,0 +1,11 @@ |
|||
{ |
|||
"name": "hangman", |
|||
"version": "1.0.0", |
|||
"description": "Mala jednoducha hra", |
|||
"main": "index.js", |
|||
"scripts": { |
|||
"test": "echo \"Error: no test specified\" && exit 1" |
|||
}, |
|||
"author": "KM", |
|||
"license": "ISC" |
|||
} |
@ -0,0 +1,4 @@ |
|||
const readlineSync = require("readline-sync"); |
|||
|
|||
var vstup = readlineSync.question("Zadej vstup:").toLowerCase(); |
|||
console.log(vstup); |
@ -0,0 +1,11 @@ |
|||
{ |
|||
"requires": true, |
|||
"lockfileVersion": 1, |
|||
"dependencies": { |
|||
"readline-sync": { |
|||
"version": "1.4.10", |
|||
"resolved": "https://registry.npmjs.org/readline-sync/-/readline-sync-1.4.10.tgz", |
|||
"integrity": "sha512-gNva8/6UAe8QYepIQH/jQ2qn91Qj0B9sYjMBBs3QOB8F2CXcKgLxQaJRP76sWVRQt+QU+8fAkCbCvjjMFu7Ycw==" |
|||
} |
|||
} |
|||
} |
Loading…
Reference in new issue