Browse Source

hangman

master
Jakub Škrabánek 8 months ago
parent
commit
9ef5199d93
  1. 65
      hangman/index.js
  2. 24
      hangman/package-lock.json
  3. 14
      hangman/package.json
  4. 5
      hangman/tester.js

65
hangman/index.js

@ -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()

24
hangman/package-lock.json

@ -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"
}
}
}
}

14
hangman/package.json

@ -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"
}
}

5
hangman/tester.js

@ -0,0 +1,5 @@
//npm install readline-sync
const readlineSync = require("readline-sync")
var vstup = readlineSync.question("zadej vstup:").toLowerCase()
console.log(vstup)
Loading…
Cancel
Save