Diskuze: Opakování

JavaScript JavaScript Opakování

Avatar
wimpy
Člen
Avatar
wimpy:

Ahoj, poradil by mi někdo techniku, jak v následujícím příkladě použít cyklus for. Cílem je 5x zopakovat zadání a vyhodnocení příkladu. Předem děkuji za radu či odkaz. Viz http://www.wimpy.dukla166.cz/pocitani/.

var zadej_priklad = function()
{
    var sc1 = Math.round(100*Math.random());
    var sc2 = Math.round(100*Math.random());
    soucet = sc1 + sc2;
    var priklad = sc1 + " + " + sc2 + " = " + "<input type=\"text\" id=\"tip\" size=\"5\" /> <input type=\"button\" id=\"kontrola\" value=\"Zkontroluj!\">";
    $('#priklad').append(priklad);
    $("#kontrola").click(kontroluj);
};

var kontroluj = function()
{
        if ($("#tip").val() == soucet) {var obr = "<img src=\"ok.png\"> <br>"}
         else {var obr = "<img src=\"chyba.png\"> <br>"};
          $('#priklad').append(obr);
};

var pocatecni_nastaveni = function()
{
      zadej_priklad();
};

$(document).ready(pocatecni_nastaveni);
 
Odpovědět 18.5.2014 12:49
Avatar
wimpy
Člen
Avatar
wimpy:

Už v pohodě, pomohl kamarád po mailu. Díky

 
Nahoru Odpovědět 18.5.2014 17:37
Avatar
BlugW
Redaktor
Avatar
BlugW:

Tak napiš jak to ma být, možna někdo bude mít stejný problem. ;)

Editováno 18.5.2014 17:41
Nahoru Odpovědět 18.5.2014 17:40
Pořiď si mac na www.appletrh.cz. Novinky a zajímavosti ze světa Apple na https://www.applemagazin.eu
Avatar
wimpy
Člen
Avatar
wimpy:
var celkovyPocetPokusu = 5;
var pocetPokusu = celkovyPocetPokusu;
var pocetSpravne = 0;
var idClicker = 0;

function klasifikace(){
  $('#container').text('Z celkového počtu pokusů '+ pocetPokusu + ' jste měli ' + pocetSpravne + ' správně');

}

var zadej_priklad = function()
{
    idClicker++;
    var sc1 = Math.round(100*Math.random());
    var sc2 = Math.round(100*Math.random());
    var priklad ="<div class='prikladek' data-tip='test'>"+sc1 + " + " + sc2 + " = <input type=\"text\" class='tipecek' id=\"tip\" size=\"5\"><button id='"+ idClicker + "' data-second=\""+sc2+"\" data-first=\""+sc1+"\" class=\"kontrola\" value=\"Zkontroluj!\">Pocitej</button><br></div>" ;
    $('#priklad').append(priklad);
    setClicks(idClicker);
};


function setClicks(idClicker){

   $("#"+idClicker).click(function(){
        if(celkovyPocetPokusu == 1){
          klasifikace();
          return;
        }
         celkovyPocetPokusu--;
        $('.pocetPokusu').text('Zbývá pokusů: ' + celkovyPocetPokusu);
        var first = $(this).attr('data-first');
        var second = $(this).attr('data-second');
        var tip = $(this).parent().attr('data-tip');
        obr = kontroluj(first,second,tip);
        $(this).parent().append(obr);
        if(tip == parseInt(first) + parseInt(second))
          zadej_priklad();

    });
     $('.tipecek').keyup(function(){
        $(this).parent().attr('data-tip',$(this).val());
      });
}



 function kontroluj(first,second,tip)
{

         if (tip == parseInt(first) + parseInt(second) ) {
           var obr = "<img src=\"ok.png\">";

          pocetSpravne++;
        }
         else {
          var obr = "<img src=\"chyba.png\">";


           };
        return obr;

};

var pocatecni_nastaveni = function()
{

      zadej_priklad();
       setClicks();

};

$(document).ready(pocatecni_nastaveni);
 
Nahoru Odpovědět 18.5.2014 22:02
Avatar
wimpy
Člen
Avatar
wimpy:

A jednodušeji:

var idCislo = 0;

var zadej_priklad = function()
{
    idCislo++;
    var sc1 = Math.round(100*Math.random());
    var sc2 = Math.round(100*Math.random());
    soucet = sc1 + sc2;
    idTip = "tip"+idCislo;
    idKontrola = "kontrola"+idCislo;
    var priklad = sc1 + " + " + sc2 + " = " + "<input type=\"text\" id='"+idTip+"' size=\"5\" /> <input type=\"button\" id='"+idKontrola+"' value=\"Zkontroluj!\">";
    $("#priklad").append(priklad);
    $("#"+idKontrola).click(kontroluj);
};

var kontroluj = function()
{
        if ($("#"+idTip).val() == soucet) {var obr = "<img src=\"ok.png\"> <br>"}
         else {var obr = "<img src=\"chyba.png\"> <br>"};
        $('#priklad').append(obr);
        $("#"+idKontrola).unbind("click");
        if (idCislo == 4) {
           $('#priklad').append("Konec");
           return;
        };
        zadej_priklad();
};

var pocatecni_nastaveni = function()
{
      zadej_priklad();
};

$(document).ready(pocatecni_nastaveni);
 
Nahoru Odpovědět 18.5.2014 22:25
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 5 zpráv z 5.