JavaScript/Kenjiro995/Náhodná čísla

Z Wikiverzity

Online editor[editovat]

Není nutné cokoliv instalovat protože existují online editory.

  • https://replit.com/ - osvědčil se mi při ukládání vytvořených programů, při vytváření nové relace si lze vybrat z mnoha programovacích jazyků
  • https://jsfiddle.net/ - ideální pro počáteční experimentování (použít pro tuto hodinu)
    • okno HTML - použití scriptu v html
    • okno CSC - pro kaskádové styly
    • okno JavaScript + No-libray (pure JS) - pro psaní čistě v JavaScriptu

Vysvětlení[editovat]

V JS se pro generování náhodného čísla používá Math.random():

var nahodne = Math.random();

V proměnné nahodne bude něco mezi 0 a 1, například 0.6577748781199532. Vyjít může i přesná nula, ale vždy bude číslo menší než 1.


Protože je zpravidla nutné mít čísla celá, násobí se to celé rozsahem:

nahodne = nahodne * 10;

Obsah nahodne teď bude například 6.577748781199532. Pro dosažení celých čísel je ještě zapotřebí provést zaokrouhlení.

nahodne = Math.floor(nahodne);

Což ovšem vytváří čísla od 0 do 10, pro rozsah 1 až 10 je ještě zapotřebí přičíst jedničku. Celé to lze shrnout do jednoho řádku:

var nahodne = Math.floor((Math.random() * 10) + 1);

Použití[editovat]

Rozsah od 1 do 10:

var nahodne = Math.floor((Math.random() * 10) + 1);
document.write(nahodne);

Sada deseti čísel vložená do pole:

var pole = [];
for (var i = 0; i < 9; i++) {
	var nahodne = Math.floor((Math.random() * 10) + 1);
  pole[i] = nahodne;
}
document.write(pole);

Výstup (náhodných deseti čísel):

5,6,2,7,9,7,1,1,4


Náhodná čísla spojená s odkazy. Hodí se kostkou a podle toho co padne, se objeví odkaz. Náhodně tak vybírá odkaz:

var nahodne = Math.floor((Math.random() * 5) + 1);
document.write("padlo toto číslo: ",nahodne);
if (nahodne == 1) {
	document.write("<a href='http://cs.wikipedia.org'>Wikipedie</a>");
}
else if (nahodne == 2) {
	document.write("<a href='http://cs.wiktionary.org'>Wikislovník</a>");
}
else if (nahodne == 3) {
	document.write("<a href='http://cs.wikisource.org'>Wikizdroje</a>");
}
else if (nahodne == 4) {
	document.write("<a href='http://cs.wikibooks.org'>Wikiknihy</a>");
}
else if (nahodne == 5) {
	document.write("<a href='http://cs.wikinews.org'>Wikizprávy</a>");
}
else {
	document.write("je mi líto, ale pod tímto číslem nemam žádný odkaz");
}

Výstup:

padlo toto číslo: 1Wikipedie

Výstup:

padlo toto číslo: 3Wikizdroje

Varianta s náhodným odkazem dle předešlého, ale za využití switch case:

var nahodne = Math.floor((Math.random() * 5) + 1);
document.write("padlo toto číslo: ",nahodne);
switch (nahodne) {
  case 1:
    document.write("<a href='http://cs.wikipedia.org'>Wikipedie</a>");
    break;
  case 2:
     document.write("<a href='http://cs.wiktionary.org'>Wikislovník</a>");
    break;
  case 3:
    document.write("<a href='http://cs.wikisource.org'>Wikizdroje</a>");
    break;
  case 4:
    document.write("<a href='http://cs.wikibooks.org'>Wikiknihy</a>");
    break;
  case 5:
    document.write("<a href='http://cs.wikinews.org'>Wikizprávy</a>");
    break;
}

Výstup:

padlo toto číslo: 4Wikiknihy

Výstup:

padlo toto číslo: 5Wikizprávy