Autor | Zpráva | ||
---|---|---|---|
FAKTOR2 Profil |
Min je 3 Max je 6 a generuje len od 0 do 3.
function rn(min,max) { return Math.floor(Math.random()*(max-min+1)+min); Tu zdanlivo vyzerá že to funguje aj ked prvé číslo ( odolnost ) je vyššie ako druhé (obrana ) obrana = <?php echo(json_encode($obrana)); ?> ; odolnost = <?php echo(json_encode($odol)); ?> ; player.Atk = function () { return rn(<?php echo(json_encode($minimal)); ?>,<?php echo(json_encode($maximal)); ?>); }; player.Def = function () { return rn(odolnost,obrana); }; Tu už však nie. Skúšam to rôzne. Chcel som tam aj vložiť php rand(min,max); ale neviem to spraviť. min7 = <?php echo(json_encode($min7)); ?>; max7 = <?php echo(json_encode($max7)); ?>; player.sila2 = function () { return rn(min7,max7); }; |
||
Alphard Profil |
Ta funkce funguje správně (nebo přinejmenším generuje celá čísla z intervalu <3; 6>), viz http://kod.djpw.cz/qwpb. Problémem by mohlo být, kdybyste jí předával stringy (http://kod.djpw.cz/rwpb), to ale hádám, z kódu to nelze říct. Myslete na datové typy.
|
||
FAKTOR2 Profil |
#3 · Zasláno: 4. 9. 2015, 22:19:22
Nie nefunguje. Na samotnej stránke http://kod.djpw.cz/qwpb po 20 pokusoch nepadlo číslo väčšie ako 3
|
||
lionel messi Profil |
#4 · Zasláno: 4. 9. 2015, 22:28:05
FAKTOR2:
„Nie nefunguje. Na samotnej stránke http://kod.djpw.cz/qwpb po 20 pokusoch nepadlo číslo väčšie ako 3“ Mne padlo hneď na prvý (bavíme sa o rovnakej ukážke). |
||
mimochodec Profil |
Mně asi z 30 pokusů nikdy nepadla 1 ani 2. Zbytek víceméně rovnoměrně.
(což jestli dobře počítám má pravděpodobnost 5,21509505084655E-006, takže se mi nechce moc věřit, že by to bylo ok) |
||
FAKTOR2 Profil |
Asi je to dobre. Už neviem ani sám :D
Poprosím zmazať tému. |
||
lionel messi Profil |
#7 · Zasláno: 4. 9. 2015, 23:05:33
FAKTOR2:
„Poprosím zmazať tému.“ Poprosím uviesť dôvod. Témy sa tu obvykle nemažu, postupne zapadnú prachom na smetisko dejín samy. Pokiaľ by niekto mal potrebu zneužiť vlákno na nekalé úmysly, moderátori zakročia. |
||
FAKTOR2 Profil |
#8 · Zasláno: 4. 9. 2015, 23:59:32
Dobre tak takto viem na 100% že $obrana = 5 ( číslo je z DB ) a
$odol = $nao1 + $nao2 + $nao3 + $nao4 + $nao5 + $obrana; určite je to väčšie číslo.
V mojom prípade 10. obrana = <?php echo(json_encode($obrana)); ?> ; odolnost = <?php echo(json_encode($odol)); ?> ; player.Atk = function () { return rn(<?php echo(json_encode($minimal)); ?>,<?php echo(json_encode($maximal)); ?>); }; player.Def = function () { return rn(odolnost,obrana); }; Takto to funguje a dostávam čísla od 5 do 10 ak to však prehodím ako by to po správnosti malo byť player.Def = function () { return rn(obrana,odolnost); }; začnú mi vychádzať aj čísla nižšie ako 5 . Preto som mal podozrenie že tá funkcia nefunguje správne.
Pripadá mi to tak ako keby vzalo iba prvé číslo 5 +1 a generuje čísla od 0-6 // ATTACKING var playerAttack = function(){ var atkSum = player.Atk() - enemy.Def(); if (atkSum>0){ remainingHP = enemy.HP - atkSum;}else{remainingHP = enemy.HP; alert("Netrafil si ho."); } enemy.HP = remainingHP; var ena = enemy.Atk(); var pd = player.Def(); var atkSuma = ena - pd; if (atkSuma>0){ remainingHP = player.HP - atkSuma; alert(+ pd); alert(+ ena);alert(+ atkSuma);}else{remainingHP = player.HP; alert(+ pd); } player.HP = remainingHP; if (player.HP<1){ alert("Si mrtvy"); window.location.href='../mesto/regen.html'; hi(); } if (enemy.HP<1){ alert("Nepriatel skapal!"); window.location.href='expi.php?c=1&a=20&f=8&zona='+dalej+''; } hi(); }; var playerAttacks = function(){ playerAttack(); hi(); }; |
||
Alphard Profil |
#9 · Zasláno: 5. 9. 2015, 02:05:07
Jak vypadá javascript s vyhodnoceným php kódem? Já si myslím, že vstupem json_encode() jsou stringy a on je exportuje jako stringy. Čísla v php vypisujte pomocí
echo (int)$minimal; , případne echo (double)$minimal .
|
||
FAKTOR2 Profil |
Ak si poskladám mozaiku dokopy aj z tejto diskusie zpracování dat z formuláře
Tak som spravil nasledovnú chybu / chyby: INSERT INTO armor_lahke(nazov, ikona, def, typ, nazivot, namanu, naobranu) VALUES ('$nazov', '$ikona','$def', '$typ', '$nazivot', '$namanu', '$naobranu') Čísla sa tým pádom ukladajú aj s apostrofmi. K json_encode som dopracoval zas tu PHP premenná do Javascriptu lebo som nevedel vložiť php premenné do javastriptu. Ďakujem Vám chlapi za všetku pomoc. |
||
Alphard Profil |
#11 · Zasláno: 5. 9. 2015, 11:51:24
Je fajn, že se učíte nové věcí, už jen dořešit pár detailů. json_encode() je lepší než přímý výpis, protože escapuje potenciálně nebezpečná vstupy. Pokud budu např. do javascriptu převádět řetězec
"Zacalo prset", rekl Tom. a udělám to takhle
$message = '"Zacalo prset", rekl Tom.'; echo 'var message = "'.$message.'";'; var message = ""Zacalo prset", rekl Tom."; Proto je lepší použít funkci json_encode, která problém vyřeší $message = '"Zacalo prset", rekl Tom.'; echo 'var message = '.json_encode($message).';'; var message = "\"Zacalo prset\", rekl Tom."; A teď se můžeme dostat k číslům, srovnejte následující 2 případy: echo json_encode(5); // vypíše 5 echo json_encode('5'); // vypíše "5" var vysledek = 5 + 5; // vysledek je 10 var vysledek = "5" + "5"; // vysledek je 55 Proto už v [#2] uvádím „myslete na datové typy“ a v [#9] dodávám nápovědu jak echo (int)$minimal; echo json_encode((int)$minimal); , ale z výše uvedeného by mělo být zřejmé, že to je ekvivalentní zápis.
|
||
Časová prodleva: 8 let
|
0