Autor Zpráva
Mozkomor05
Profil
Dobrý den, chtěl jsem naprogramovat hru šibenici s diakritikou. 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 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?";
  }
}
Mozkomor05
Profil
Živá ukázka je zde: Odkaz

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Odkud se sem odkazuje


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0