4 changed files with 108 additions and 0 deletions
@ -0,0 +1,65 @@ |
|||||
|
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() |
@ -0,0 +1,24 @@ |
|||||
|
{ |
||||
|
"name": "hangman", |
||||
|
"version": "1.0.0", |
||||
|
"lockfileVersion": 3, |
||||
|
"requires": true, |
||||
|
"packages": { |
||||
|
"": { |
||||
|
"name": "hangman", |
||||
|
"version": "1.0.0", |
||||
|
"license": "ISC", |
||||
|
"dependencies": { |
||||
|
"readline-sync": "^1.4.10" |
||||
|
} |
||||
|
}, |
||||
|
"node_modules/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==", |
||||
|
"engines": { |
||||
|
"node": ">= 0.8.0" |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
} |
@ -0,0 +1,14 @@ |
|||||
|
{ |
||||
|
"name": "hangman", |
||||
|
"version": "1.0.0", |
||||
|
"description": "Mala jednoducha hra", |
||||
|
"main": "index.js", |
||||
|
"scripts": { |
||||
|
"test": "node tester.js" |
||||
|
}, |
||||
|
"author": "KubMakCZ", |
||||
|
"license": "ISC", |
||||
|
"dependencies": { |
||||
|
"readline-sync": "^1.4.10" |
||||
|
} |
||||
|
} |
@ -0,0 +1,5 @@ |
|||||
|
//npm install readline-sync
|
||||
|
const readlineSync = require("readline-sync") |
||||
|
|
||||
|
var vstup = readlineSync.question("zadej vstup:").toLowerCase() |
||||
|
console.log(vstup) |
Loading…
Reference in new issue