Autor Zpráva
jacbar
Profil
napsal sem si prográmek na házení kostkama, ale při tom, kdy by se mi měly vypsat výsledky tak se vypíšou nevimproč na novou stránku, a navíc se na ní donekonečna něco načítá. Proč to nefunguje? (pozn. je to zkrácená verze původního skriptu, ale dělá tu samou chybu)

<form name="form">
<input name="Xd" maxlength="2" size="2" value="1">
&nbsp;
<select name="dX">
<option>d2
<option>d3
<option>d4
<option>d6
<option>d8
<option>d10
<option>d12
<option>d20
<option>d100
</select>
&nbsp;
<input type="button" value="hoď" onclick="hod ();">
&nbsp;
<!-- Sem se mi leda povedlo udělat onclick="history.go(0);"
ale pak 1) se načítá celá stránka 2)Je to prasárna-->
</form>
<script>
var Xd=document.form.Xd.value;
var dX=document.form.dX.value.replace(/d/g,'');
var a=0;
function hod () {
for(z=0;z<Xd;z++){
document.write(b=Math.ceil(Math.random()*dX));
document.write(", ");
a+=b;
}
document.write("<hr>Celkem: <strong id=\"a\">"+a+"</strong>");
}
</script>

dík Jáchym
Peca
Profil
Zkus dát var Xd a dX až dovnitř funkce hod(); Netestoval jsem to, ale mohl by v tom být problém.
Chamurappi
Profil
Reaguji na jacbar:
Viz můj příspěvek u jiného tématu.
vinnetou
Profil *
takhle mi to funguje bez problemu:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<script language="JavaScript" type="text/javascript">
function hod () {
var Xd=document.form.Xd.value;
var dX=document.form.dX.value;
var a=0;
vystup="";
alert("Xd="+Xd+"/dX="+dX);
for(z=0;z<Xd;z++){
b=Math.ceil(Math.random()*dX)
vystup+=b+", ";
a+=b;
}
document.getElementById("vysledek").innerHTML=vystup+"<hr>Celkem: <strong id=\"a\">"+a+"</strong>";
}
</script>

</head>

<body>
<form name="form">
<input name="Xd" maxlength="2" size="2" value="1">
&nbsp;
<select name="dX">
<option value="2">d2
<option value="3">d3
<option value="4">d4
<option value="5">d6
<option value="8">d8
<option value="10">d10
<option value="12">d12
<option value="20">d20
<option value="100">d100
</select>
&nbsp;
<input type="button" value="hoď" onclick="hod ();">
&nbsp;
</form>
<div id="vysledek"></div>
</body>
</html>


problem byl podle mne v tom, ze se ti nenacitala hodnota dX.
peta
Profil *
jacbar
co treba takto?

neco takovehoto:

<script>
function hodKostky(xForm)
{
var n;
n=xForm.kostka.value;
n=Math.floor(Math.random()*n)+1;
xForm.vysledek.value=n;
return false;
}
</script>

<form name="form" action="#" onsubmit="return hodKostky(this)">
&nbsp;
<select name="kostka">
<option>2
<option>3
<option>4
<option>6
<option>8
<option>10
<option>12
<option>20
<option>100
</select>
&nbsp;
<input type="submit" value="hod">

&nbsp;
<input name="vysledek" size="5" readonly="readonly" onfocus="blur()">
</form>


vinnetou
Ceil, to je podle mne chybna funkce, to zaokrouhluje 0.1 na 1 a 0 na 0, takze ceil(random(3)) dostanes 0 1 2 3 :)
peta
Profil *
oprava, sem si nevsiml, ze mas ten select bez value
<select name="kostka">
<option value="2">d2
<option value="3">d3
<option value="4">d4
<option value="6">d6
<option value="8">d8
<option value="10">d10
<option value="12">d12
<option value="20">d20
<option value="100">d100
</select>
jacbar
Profil
díky za voboje

pár poznámek:

-jako funkce to nejde

-zaokrouhlovat se to má fakt nahoru

-ty Déčka tam taky mám akorát je replacuju ničim (místo zadávání value), akorát sem sem to nepsal
peta
Profil *
jacbar
"zaokrouhlovat se to má fakt nahoru "
no ja, ale
random(5) = 0 0.x 1 1.x 2 2.x 3 3.x 4 4.x 5 5.x
ceil = 0 1 1 2 2 3 3 4 4 5 5 6
vis, co tim chci rici? 1-5 je 2x a 0 a 6 1x
jacbar
Profil
Math.ceil(Math.random()*dX) máš 1 až X každý se stejnou pravděpodobností. A je to.
Chamurappi
Profil
Reaguji na jacbar:
On sice peta neumí moc počítat, ale má pravdu v tom, že je zde jistá extrémně malá šance, že Math.ceil(Math.random()*dX) vrátí nulu. Metoda Math.random() totiž vrací náhodné číslo od nuly (včetně) do jedničky (vyjma).
peta
Profil *
Chamurappi Co mas s mymi pocty?

jacbar
Si precti, co dela funkce ceil, dobra literatura je:
http://javascript-reference.info
Toto téma je uzamčeno. Odpověď nelze zaslat.

0