Autor Zpráva
bobby
Profil
Ahoj, jak zamezit tomu, aby se vylosovaná čísla neopakovala ? Mé dosavadný pokusy selhaly... Díky

<html>
  <head>
  <meta http-equiv="content-type" content="text/html; charset=windows-1250">
  <meta name="generator" content="PSPad editor, www.pspad.com">
  <title></title>
  </head>
  <body>
     <script>
      
var pocet=49;
var ciselnaradku=7;

document.write("<table border=1></tr>");
for(i=1;i<=pocet;i++)
{
document.write("<td>"+i+"</td>");
if(i%ciselnaradku==0){document.write("<tr></tr>")}
}
document.write("</tr></table>");

var randompole=new Array();
for(i=0;i<4;i++)
{
randompole[i]=Math.floor(Math.random()*pocet)+1;
}
for(i=0;i<randompole.length;i++)
{document.write(randompole[i]+" ")}    


  
     </script>
  </body>
</html>
juriad
Profil
Například takto:
Živá ukázka

Někde si musíš pamatovat, která čísla už jsi použil. A ono docela dobře funguje to, že si napřed všechna čísla vygeneruješ, a pak je zamícháš.

Pozor, na řádcích 13 a 17 jsi pomotal počáteční a koncové tagy řádku.
bobby
Profil
Dodělal jsem to takto:

Ještě jsem se chtěl zeptat zda by někdo pomohl s tím, aby mi to tlačítko na stránce zůstalo a já mohl stále generovat. Teď mi zmizí a musím obnovit stránku...


<html>
    <head>
        <title>TODO supply a title</title>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
 
    </head>
  
    <body>
                          <script>
 function gen(){      
var pole = new Array();
while(pole.length<7){
    var cislo=Math.floor(Math.random()*7)+1;
    var shoda=false;
    for(i=0;i<pole.length;i++){
        if(pole[i]==cislo){shoda=true;break;}
    }
    if(!shoda){pole[pole.length]=cislo}
}document.write(pole);}
        </script>
        <input type="submit" value="losuj" onclick="gen()">
    </body>
</html>
Bubák
Profil
Nejjednodušeji asi tak, že stránka bude odkazovat na sebe:
<script>
var pole = new Array();
while(pole.length<7){
    var cislo=Math.floor(Math.random()*7)+1;
    var shoda=false;
    for(i=0;i<pole.length;i++){
        if(pole[i]==cislo){shoda=true;break;}
    }
    if(!shoda){pole[pole.length]=cislo}
}
</script>
<h1>Losování</h1>
<script>document.write(pole);</script>
<br>
<a href="losování.html">Znova</a>
Elegantnější by bylo použít innerHTML.

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:

Prosím používejte diakritiku a interpunkci.

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