NOVINKA - Online rekvalifikační kurz Java programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s podporou uplatnění od 0 Kč. Více informací.
Avatar
David Moškoř:29.8.2016 20:54

Dobrý den, mám naprogramovanou hru šibenici v javascriptu. Ale chtěl bych do ní přidat diakritiku. Např. aby při kliknutí na písmeno A se ve slově kráva zobrazilo A i Á. Ale nedokážu si s tím poradit. Pomůžete mi prosím?

Kód hry bez diakritiky zde:

var databaze = ['kráva','zvíře'];
var vysledek = [];
var abeceda = ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"];
var uhodnute = [];

var pokusu = 10, index, i, j, k, l, m = 0, n, o, konec = false, tajenka, napoveda, vyhry = 0, prohry = 0;
var cervena = "#ff0000", zelena = "#00ff00";

var prednacist = [];

for(o=0;o<=pokusu;o++) {
  prednacist[o] = new Image();
  prednacist[o].src = "images/sibenice"+o+".jpg";
}

function nova_tajenka() {

  index = 2*(Math.floor(Math.random()*(databaze.length/2)));

  for(n = 0; n<uhodnute.length; n++) {

    if(uhodnute[n]==index) {

      index = 2*(Math.floor(Math.random()*(databaze.length/2)));
      n = -1;
    }
  }

  tajenka = databaze[index].split("");
  napoveda = databaze[index+1];

  vysledek = [];

  for(k = 0; k<tajenka.length; k++) {

    vysledek[k] = "_";
  }
  obnovit();
}

function pismena() {

  $("#pismena").html("<div class=\"radek\">");

  for(l = 0; l<abeceda.length; l++){

    $("#pismena").html($("#pismena").html()+"<a href=\""+abeceda[l]+"\">"+abeceda[l].toUpperCase()+"</a>");

    if(l==(abeceda.length/2)-1) {
      $("#pismena").html($("#pismena").html()+"</div><div class=\"radek\">");
    }
  }

  $("#pismena").html($("#pismena").html()+"</div>");

  $("#pismena a").click(function(){

    if(($(this).attr("class")!="clicked")&&(konec==false)) {
      hra($(this).attr("href"));
    }

    return false;
  });
}

function reset() {

  i = 0;
  nova_tajenka();
  pismena();
  $("#status").html("");
  $("#sibenice").css({"background-image":"url(images/sibenice"+i+".jpg)"});
}

function obnovit() {
  $("#policko").html(vysledek.join(""));
  $("#help").html(napoveda);
}

function hra(pismeno) {

  if(pismeno.length>1) {
    pismeno = pismeno.charAt(pismeno.length-1);
  }

  spravne_pismeno = false;

  for(j = 0; j<tajenka.length; j++) {

    if((tajenka[j]==pismeno)||(tajenka[j]==pismeno.toUpperCase())) {

      if(tajenka[j]==pismeno) {
        vysledek[j] = pismeno;
      }
      else {
        vysledek[j] = pismeno.toUpperCase();
      }

      spravne_pismeno = true;
      $("#pismena a[href$="+pismeno+"]").css({"background-color":zelena});
    }
  }

  if(spravne_pismeno==false) {
    $("#pismena a[href$="+pismeno+"]").css({"background-color":cervena});
    i++;
    $("#sibenice").css({"background-image":"url(images/sibenice"+i+".jpg)"});
  }

  obnovit();
  $("#pismena a[href$="+pismeno+"]").attr("class", "clicked");

  if(vysledek.join("")==tajenka.join("")) {
    $("#status").css({"color":zelena});
    $("#status").html("Gratuluji, VÝHRA!");
    konec = true;
    vyhry++;
    $("#vyhry").html(vyhry);

    uhodnute[m] = index;
    m++;

    if(uhodnute.length==(databaze.length)/2) {

      uhodnute = [];
      m = 0;
    }
  }

  if(i==pokusu) {
    $("#status").css({"color":cervena});
    $("#status").html("Už nemáš více pokusů, PROHRA!");
    konec = true;
    prohry++;
    $("#prohry").html(prohry);
  }

  if(konec) {
    $("#ovladani input:submit").removeAttr("disabled");
    $("#ovladani input").focus();
  }
}

$(document).ready(function(){

  $("a[href=about]").click(function(){
    alert("Hra šibenice\n"
    +"Počet slov v databázi: " +(databaze.length/2) +"\n"
    +"Jazyk: JavaScript\n"
    +"Autor: David Moškoř\n"
    +"© 2016");
    return false;
  });

  $("a[href=help]").click(function(){
    alert("Známá hra šibenice (hangman)\n\n"

    +"1) Cílem hry je uhodnout celé slovo podle nápovědy.\n"
    +"2) Počet podržítek značí, kolik je ve slově písmen.\n"
    +"3) Písmena pište na klávesnici nebo na ně klikejte.\n"
    +"4) Správné písmeno bude označeno zeleně špatné červeně.\n"
    +"5) Každé písmeno je možné použít jen jednou.\n"
    +"6) Slovo musíte uhodnout dřív než budete oběšen :-)\n\n"

    +"Přeji příjemnou zábavu :-)");
    return false;
  });

  $("#vyhry").html(vyhry);
  $("#prohry").html(prohry);

  reset();

  $("#ovladani").submit(function(){
    konec = false;
    reset();
    $("#ovladani input:submit").attr("disabled", "disabled");
    return false;
  });

  $(document).keydown(function(klavesa) {

    if(konec==false) {
      if(((klavesa.keyCode-65)>=0)&&((klavesa.keyCode-65)<abeceda.length)) {

        pismeno_klavesnice = abeceda[klavesa.keyCode-65];

        if($("#pismena a[href$="+pismeno_klavesnice+"]").attr("class")!="clicked") {
          hra(pismeno_klavesnice);
        }
      }
    }
  });
});

window.onbeforeunload = function(){
  if(konec==false) {
    return "Máte rozehranou hru opravdu chcete odejít?";
  }
}
Odpovědět
29.8.2016 20:54
Život je příliš krátký na to, abyste vymýšleli smysluplné názvy proměnných...
Avatar
Odpovídá na David Moškoř
Libor Šimo (libcosenior):30.8.2016 7:52

Toto ti možno pomôže

var diakritika = "aábcčdďeéěfgh iíjklmnňoópqrřsštťuúůvwxyýzž";

function vypis() {
    for (var i = 0; i < diakritika.length; i++) {
        if (diakritika[i] == " ") {
           var p = $('<p></p>').text(i + ". ch");
           $('body').append(p);
        }
        else
           var p = $('<p></p>').text(i + ". " + diakritika[i]);
           $('body').append(p);
    }
}

$(function() {
    vypis();
});
Nahoru Odpovědět
30.8.2016 7:52
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
David Moškoř:30.8.2016 8:43

Bohužel mi to nepomohlo. Vložil jsem to tam a pod hrou se mi zobrazilo toto:

0. a

1. á

2. b

3. c

4. č

5. d

6. ď

7. e

8. é

9. ě

10. f

11. g

12. h

13. ch

14. i

15. í

16. j

17. k

18. l

19. m

20. n

21. ň

22. o

23. ó

24. p

25. q

26. r

27. ř

28. s

29. š

30. t

31. ť

32. u

33. ú

34. ů

35. v

36. w

37. x

38. y

39. ý

40. z

41. ž
Nahoru Odpovědět
30.8.2016 8:43
Život je příliš krátký na to, abyste vymýšleli smysluplné názvy proměnných...
Avatar
Odpovídá na David Moškoř
Libor Šimo (libcosenior):30.8.2016 8:46

To nebol kód na vloženie do hry, ale na ilustráciu poľa s celou českou abecedou bez a s diakritikou.
Manipulácia s jednotlivými prvkami poľa je ti určite jasná.

Editováno 30.8.2016 8:46
Nahoru Odpovědět
30.8.2016 8:46
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
David Moškoř:30.8.2016 8:50

Možná, že jsem to špatně popsal. Já nepotřebuji vypsat celou abecedu s diakritikou. Já potřebuji vypsat abecedu bez diakritiky, aby při kliknutí na písmeno se například ve slově kráva zobrazilo A i Á, ne pouze A .

Nahoru Odpovědět
30.8.2016 8:50
Život je příliš krátký na to, abyste vymýšleli smysluplné názvy proměnných...
Avatar
Odpovídá na David Moškoř
Libor Šimo (libcosenior):30.8.2016 11:21

Jedno z možných riešení. Neriešil som písmeno ch, to sa mi už nechcelo.

index.html

<!DOCTYPE html>

<html lang="sk">
<head>
  <meta charset="utf-8" />
  <link rel="stylesheet" href="css/style.css" type="text/css" />
  <script type="text/javascript" src="js/jquery.js"></script>
  <script type="text/javascript" src="js/testy.js"></script>
  <title>Narodeniny</title>
</head>
<body>
  <p id="tajnicka"></p>
  <a>hádaj písmeno: </a>
  <input id="hadaj" type="text" />
  <p id="uhadol"></p>

</body>
</html>

style.css

#hadaj {
  width: 50px;
  text-align: center;
  font-size: 1.5em;
}

#tajnicka {
  font-size: 2em;
  margin-left: 95px;
}

testy.js

var diakritika = "aábcčdďeéěfgh iíjklmnňoópqrřsštťuúůvwxyýzž";
var pole = [
    [0,1], // a, á
    [2],   // b
    [3,4], // c, č
    [5,6], // atd....
    [7,8,9],
    [10],
    [11],
    [12],
    [13],
    [14,15],
    [16],
    [17],
    [18],
    [19],
    [20,21],
    [22,23],
    [24],
    [25],
    [26,27],
    [28,29],
    [30,31],
    [32,33,34],
    [35],
    [36],
    [37],
    [38,39],
    [40,41]
]
var test = ['kráva','zvíře'];
var pom = new Array;

function vypisTajnicky(taj) {
    var vysledok = "";
    for (var i = 0; i < taj.length; i++) {
        vysledok += pom[i];
    }
    $('#tajnicka').text(vysledok);
    $('#hadaj').val("");
}

function naplnenieTajnicky() {
    for (var i = 0; i < test[0].length; i++) {
        pom[i] = "-";
    }
    vypisTajnicky(pom);
}

function hadajPismeno(p) {
    $('#uhadol').text("");
    if (test[0].match(p)) { // ak sa písmeno nachádza v tajničke
        var x = diakritika.indexOf(p);
        for (var i = 0; i < pole.length; i++) {
            for (var j = 0; j < pole[i].length; j++) {
                if (pole[i][j] == x) {
                    var xy = pole[i];

                }
            }
        }
        for (var i = 0; i < xy.length; i++) {
            for (var j = 0; j < test[0].length; j++){
                if (test[0][j] == diakritika[xy[i]]) {
                    pom[j] = diakritika[xy[i]];
                }
                else {
                    if ([0][j] == p)
                        pom[j] = p;
                }
            }
        }
        vypisTajnicky(pom);
    }
    else {
        $('#uhadol').text("Neuhádol!");
        $('#hadaj').val("");
    }
}

$(function() {
    $('#hadaj').focus();
    naplnenieTajnicky();
    $('#hadaj').change(function() {
        hadajPismeno($(this).val());
    });
});
Akceptované řešení
+20 Zkušeností
+2,50 Kč
Řešení problému
Nahoru Odpovědět
30.8.2016 11:21
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
David Moškoř:30.8.2016 11:53

Díky, CH nepotřebuji. Stačí, aby hráč zadal C a H.

Nahoru Odpovědět
30.8.2016 11:53
Život je příliš krátký na to, abyste vymýšleli smysluplné názvy proměnných...
Avatar
David Moškoř:30.8.2016 12:34

Pokoušel jsem se tvůj kód spojit s tím mým, ale šibenice mi přestala fungovat. Nevíš proč?

Kód zde:

var diakritika = "aábcčdďeéěfgh iíjklmnňoópqrřsštťuúůvwxyýzž";
var pole = [
    [0,1], // a, á
    [2],   // b
    [3,4], // c, č
    [5,6], // atd....
    [7,8,9],
    [10],
    [11],
    [12],
    [13],
    [14,15],
    [16],
    [17],
    [18],
    [19],
    [20,21],
    [22,23],
    [24],
    [25],
    [26,27],
    [28,29],
    [30,31],
    [32,33,34],
    [35],
    [36],
    [37],
    [38,39],
    [40,41]
]
var pom = new Array;

var databaze = ['kráva','zvíře'];
var vysledek = [];
var abeceda = ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"];
var uhodnute = [];

var pokusu = 10, index, i, j, k, l, m = 0, n, o, konec = false, tajenka, napoveda, vyhry = 0, prohry = 0;
var cervena = "#ff0000", zelena = "#00ff00";

var prednacist = [];

for(o=0;o<=pokusu;o++) {
  prednacist[o] = new Image();
  prednacist[o].src = "images/sibenice"+o+".jpg";
}

function nova_tajenka() {

  index = 2*(Math.floor(Math.random()*(databaze.length/2)));

  for(n = 0; n<uhodnute.length; n++) {

    if(uhodnute[n]==index) {

      index = 2*(Math.floor(Math.random()*(databaze.length/2)));
      n = -1;
    }
  }

  tajenka = databaze[index].split("");
  napoveda = databaze[index+1];

  vysledek = [];

  for(k = 0; k<tajenka.length; k++) {

    vysledek[k] = "_";
  }
  obnovit();
}

function pismena() {

  $("#pismena").html("<div class=\"radek\">");

  for(l = 0; l<abeceda.length; l++){

    $("#pismena").html($("#pismena").html()+"<a href=\""+abeceda[l]+"\">"+abeceda[l].toUpperCase()+"</a>");

    if(l==(abeceda.length/2)-1) {
      $("#pismena").html($("#pismena").html()+"</div><div class=\"radek\">");
    }
  }

  $("#pismena").html($("#pismena").html()+"</div>");

  $("#pismena a").click(function(){

    if(($(this).attr("class")!="clicked")&&(konec==false)) {
      hra($(this).attr("href"));
    }

    return false;
  });
}

function reset() {

  i = 0;
  nova_tajenka();
  pismena();
  $("#status").html("");
  $("#sibenice").css({"background-image":"url(images/sibenice"+i+".jpg)"});
}

function obnovit() {
  $("#policko").html(vysledek.join(""));
  $("#help").html(napoveda);
}

function hra(pismeno) {
  spravne_pismeno = false;
    for (k = 0; k < tajenka.length; k++){
    if (tajenka[k].match(pismeno)) {
        var x = diakritika.indexOf(pismeno);
        for (i = 0; i < pole.length; i++) {
            for (j = 0; j < pole[i].length; j++) {
                if (pole[i][j] == x) {
                    var xy = pole[i];

                }
            }
        }
        for (i = 0; i < xy.length; i++) {
                if (tajenka[k] == diakritika[xy[i]]) {
                    pom[k] = diakritika[xy[i]];
                }
                else {
                    if (tajenka[k] == pismeno)
                        pom[k] = pismeno;
                }
        }

      spravne_pismeno = true;
      $("#pismena a[href$="+pismeno+"]").css({"background-color":zelena});
    }
  }

  if(spravne_pismeno==false) {
    $("#pismena a[href$="+pismeno+"]").css({"background-color":cervena});
    i++;
    $("#sibenice").css({"background-image":"url(images/sibenice"+i+".jpg)"});
  }

  obnovit();
  $("#pismena a[href$="+pismeno+"]").attr("class", "clicked");

  if(vysledek.join("")==tajenka.join("")) {
    $("#status").css({"color":zelena});
    $("#status").html("Gratuluji, VÝHRA!");
    konec = true;
    vyhry++;
    $("#vyhry").html(vyhry);

    uhodnute[m] = index;
    m++;

    if(uhodnute.length==(databaze.length)/2) {

      uhodnute = [];
      m = 0;
    }
  }

  if(i==pokusu) {
    $("#status").css({"color":cervena});
    $("#status").html("Už nemáš více pokusů, PROHRA!");
    konec = true;
    prohry++;
    $("#prohry").html(prohry);
  }

  if(konec) {
    $("#ovladani input:submit").removeAttr("disabled");
    $("#ovladani input").focus();
  }
}

$(document).ready(function(){

  $("a[href=about]").click(function(){
    alert("Hra šibenice\n"
    +"Počet slov v databázi: " +(databaze.length/2) +"\n"
    +"Jazyk: JavaScript\n"
    +"Autor: David Moškoř\n"
    +"© 2016");
    return false;
  });

  $("a[href=help]").click(function(){
    alert("Známá hra šibenice (hangman)\n\n"

    +"1) Cílem hry je uhodnout celé slovo podle nápovědy.\n"
    +"2) Počet podržítek značí, kolik je ve slově písmen.\n"
    +"3) Písmena pište na klávesnici nebo na ně klikejte.\n"
    +"4) Správné písmeno bude označeno zeleně špatné červeně.\n"
    +"5) Každé písmeno je možné použít jen jednou.\n"
    +"6) Slovo musíte uhodnout dřív než budete oběšen :-)\n\n"

    +"Přeji příjemnou zábavu :-)");
    return false;
  });

  $("#vyhry").html(vyhry);
  $("#prohry").html(prohry);

  reset();

  $("#ovladani").submit(function(){
    konec = false;
    reset();
    $("#ovladani input:submit").attr("disabled", "disabled");
    return false;
  });

  $(document).keydown(function(klavesa) {

    if(konec==false) {
      if(((klavesa.keyCode-65)>=0)&&((klavesa.keyCode-65)<abeceda.length)) {

        pismeno_klavesnice = abeceda[klavesa.keyCode-65];

        if($("#pismena a[href$="+pismeno_klavesnice+"]").attr("class")!="clicked") {
          hra(pismeno_klavesnice);
        }
      }
    }
  });
});

window.onbeforeunload = function(){
  if(konec==false) {
    return "Máte rozehranou hru opravdu chcete odejít?";
  }
}
Nahoru Odpovědět
30.8.2016 12:34
Život je příliš krátký na to, abyste vymýšleli smysluplné názvy proměnných...
Avatar
Odpovídá na David Moškoř
Libor Šimo (libcosenior):30.8.2016 13:02

Môj kód je iba ukážka, ako sa to dá.
Upraviť si svoju hru už musíš sám, ak môjmu kódu rozumieš.
Ak ti kód nefunguje, stlač F12 a v konzole by si mal mať vypísané prečo.

Editováno 30.8.2016 13:04
Nahoru Odpovědět
30.8.2016 13:02
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
David Moškoř:30.8.2016 13:33

Už mi to funguje. Jen jsem tam potřeboval dopsat vysledek[k]=pis­meno;. Ale diakritika bohužel ne. Když kliknu na a tak nic. To je zvláštní protože by fungovat měla. Mám PSPad editor a konzole mi nic nepíše.

Editováno 30.8.2016 13:35
Nahoru Odpovědět
30.8.2016 13:33
Život je příliš krátký na to, abyste vymýšleli smysluplné názvy proměnných...
Avatar
Libor Šimo (libcosenior):30.8.2016 14:25

Ja tiež na kódenie používam PSPad. Ale keď si to otvorím v prehliadačí (chrome), potom F12 otvorí spodné okno, kde je okrem iného záložka console. ;-)

Ak chceš, aby som ti to pozrel poriadne, zbaľ celú zložku s html, css aj js do zip-u a pošli mi to na libcosenior@gmail.com, aby som to mohol otestovať.

Editováno 30.8.2016 14:27
Nahoru Odpovědět
30.8.2016 14:25
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
David Moškoř:30.8.2016 14:37

Poslal jsem

Nahoru Odpovědět
30.8.2016 14:37
Život je příliš krátký na to, abyste vymýšleli smysluplné názvy proměnných...
Avatar
Odpovídá na David Moškoř
Libor Šimo (libcosenior):30.8.2016 14:54

Zatiaľ mi nič neprišlo.

Nahoru Odpovědět
30.8.2016 14:54
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
David Moškoř:30.8.2016 15:04

A teď už jo? Posílal jsem to 14:37 na email: libcosenior@gmail.com

Nahoru Odpovědět
30.8.2016 15:04
Život je příliš krátký na to, abyste vymýšleli smysluplné názvy proměnných...
Avatar
Libor Šimo (libcosenior):30.8.2016 15:06

Už to pozriem len doma, za chviľku idem z práce.

Nahoru Odpovědět
30.8.2016 15:06
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
Nahoru Odpovědět
30.8.2016 19:39
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
David Moškoř:30.8.2016 19:59

Super, měl jsem tam malou chybu. Už jsem to vyřešil takhle:

var diakritika = "aábcčdďeéěfgh iíjklmnňoópqrřsštťuúůvwxyýzž";
var pole = [
    [0,1], // a, á
    [2],   // b
    [3,4], // c, č
    [5,6], // atd....
    [7,8,9],
    [10],
    [11],
    [12],
    [13],
    [14,15],
    [16],
    [17],
    [18],
    [19],
    [20,21],
    [22,23],
    [24],
    [25],
    [26,27],
    [28,29],
    [30,31],
    [32,33,34],
    [35],
    [36],
    [37],
    [38,39],
    [40,41]
]
var pom = new Array;

var databaze = ['kráva','zvíře', 'cestování','moje záliba'];
var vysledek = [];
var abeceda = ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"];
var uhodnute = [];

var pokusu = 10, index, i, j, k, l, m = 0, n, o, konec = false, tajenka, spravna_tajenka, napoveda, vyhry = 0, prohry = 0;
var cervena = "#ff0000", zelena = "#00ff00";

var prednacist = [];

for(o=0;o<=pokusu;o++) {
  prednacist[o] = new Image();
  prednacist[o].src = "images/sibenice"+o+".jpg";
}

function nova_tajenka() {

  index = 2*(Math.floor(Math.random()*(databaze.length/2)));

  for(n = 0; n<uhodnute.length; n++) {

    if(uhodnute[n]==index) {

      index = 2*(Math.floor(Math.random()*(databaze.length/2)));
      n = -1;
    }
  }
  spravna_tajenka = databaze[index];
  tajenka = databaze[index].split("");
  napoveda = databaze[index+1];

  vysledek = [];

  for(k = 0; k<tajenka.length; k++) {

    vysledek[k] = "_";
  }
  obnovit();
}

function pismena() {

  $("#pismena").html("<div class=\"radek\">");

  for(l = 0; l<abeceda.length; l++){

    $("#pismena").html($("#pismena").html()+"<a href=\""+abeceda[l]+"\">"+abeceda[l].toUpperCase()+"</a>");

    if(l==(abeceda.length/2)-1) {
      $("#pismena").html($("#pismena").html()+"</div><div class=\"radek\">");
    }
  }

  $("#pismena").html($("#pismena").html()+"</div>");

  $("#pismena a").click(function(){

    if(($(this).attr("class")!="clicked")&&(konec==false)) {
      hra($(this).attr("href"));
    }

    return false;
  });
}

function reset() {

  i = 0;
  nova_tajenka();
  pismena();
  $("#policko").css({"color":"white"});
  $("#status").html("");
  $("#sibenice").css({"background-image":"url(images/sibenice"+i+".jpg)"});
}

function obnovit() {
  $("#policko").html(vysledek.join(""));
  $("#help").html(napoveda);
}

function hra(pismeno) {
  spravne_pismeno = false;
    for (m = 0; m < databaze.length; m++){
    for (k = 0; k < tajenka.length; k++){
    if (databaze[m].match(pismeno)) {
        var x = diakritika.indexOf(pismeno);
        for (i = 0; i < pole.length; i++) {
            for (j = 0; j < pole[i].length; j++) {
                if (pole[i][j] == x) {
                    var xy = pole[i];

                }
            }
        }
        for (i = 0; i < xy.length; i++) {
                if (tajenka[k] == diakritika[xy[i]]) {
                    vysledek[k] = diakritika[xy[i]];
                }
                else {
                    if (tajenka[k] == pismeno)
                        vysledek[k] = pismeno;
                }
        }

      spravne_pismeno = true;
      $("#pismena a[href$="+pismeno+"]").css({"background-color":zelena});
    }

  }
  }

  if(spravne_pismeno==false) {
    $("#pismena a[href$="+pismeno+"]").css({"background-color":cervena});
    i++;
    $("#sibenice").css({"background-image":"url(images/sibenice"+i+".jpg)"});
  }

  obnovit();
  $("#pismena a[href$="+pismeno+"]").attr("class", "clicked");

  if(vysledek.join("")==tajenka.join("")) {
    $("#status").css({"color":zelena});
    $("#status").html("Gratuluji, VÝHRA!");
    konec = true;
    vyhry++;
    $("#vyhry").html(vyhry);

    uhodnute[m] = index;
    m++;

    if(uhodnute.length==(databaze.length)/2) {

      uhodnute = [];
      m = 0;
    }
  }

  if(i==pokusu) {
    $("#status").css({"color":cervena});
    $("#status").html("Už nemáš více pokusů, PROHRA!");
    $("#policko").css({"color":cervena});
    $("#policko").html(spravna_tajenka);
    konec = true;
    prohry++;
    $("#prohry").html(prohry);
  }

  if(konec) {
    $("#ovladani input:submit").removeAttr("disabled");
    $("#ovladani input").focus();
  }
}

$(document).ready(function(){

  $("a[href=about]").click(function(){
    alert("Hra šibenice\n"
    +"Počet slov v databázi: " +(databaze.length/2) +"\n"
    +"Jazyk: JavaScript\n"
    +"Autor: David Moškoř\n"
    +"© 2016");
    return false;
  });

  $("a[href=help]").click(function(){
    alert("Známá hra šibenice (hangman)\n\n"

    +"1) Cílem hry je uhodnout celé slovo podle nápovědy.\n"
    +"2) Počet podržítek značí, kolik je ve slově písmen.\n"
    +"3) Písmena pište na klávesnici nebo na ně klikejte.\n"
    +"4) Správné písmeno bude označeno zeleně špatné červeně.\n"
    +"5) Každé písmeno je možné použít jen jednou.\n"
    +"6) Slovo musíte uhodnout dřív než budete oběšen :-)\n\n"

    +"Přeji příjemnou zábavu :-)");
    return false;
  });

  $("#vyhry").html(vyhry);
  $("#prohry").html(prohry);

  reset();

  $("#ovladani").submit(function(){
    konec = false;
    reset();
    $("#ovladani input:submit").attr("disabled", "disabled");
    return false;
  });

  $(document).keydown(function(klavesa) {

    if(konec==false) {
      if(((klavesa.keyCode-65)>=0)&&((klavesa.keyCode-65)<abeceda.length)) {

        pismeno_klavesnice = abeceda[klavesa.keyCode-65];

        if($("#pismena a[href$="+pismeno_klavesnice+"]").attr("class")!="clicked") {
          hra(pismeno_klavesnice);
        }
      }
    }
  });
});

window.onbeforeunload = function(){
  if(konec==false) {
    return "Máte rozehranou hru opravdu chcete odejít?";
  }
}
Nahoru Odpovědět
30.8.2016 19:59
Život je příliš krátký na to, abyste vymýšleli smysluplné názvy proměnných...
Avatar
Odpovídá na David Moškoř
Libor Šimo (libcosenior):31.8.2016 5:58

Fajn ze si to vyriesil sam.

Nahoru Odpovědět
31.8.2016 5:58
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 18 zpráv z 18.