Rychlá kostka
Autor: | Alcator |
---|---|
Přidáno: | |
Hlasovalo: | 11 |
Popis: | Nástroj na rychlé házení kostkami (1 a 10 hodů naráz libovolnou kostkou) pro Windows 95+ |
Autor: | Alcator |
---|---|
Přidáno: | |
Hlasovalo: | 11 |
Popis: | Nástroj na rychlé házení kostkami (1 a 10 hodů naráz libovolnou kostkou) pro Windows 95+ |
Diskuze
abbé, ty mezní hodnoty skutečně padají, ale skutečně jen velmi zřídka.
Ten házecí algoritmus je nezávislý na počtu hodů a velikosti kostky, tohle jsou parametry:
for Rolling := 1 to Count do
begin
TotalRoll := TotalRoll + (Random(Dice)+1);
end;
TotalRoll := TotalRoll+CurValue+Modifier;
CurValue --> předchozí hod, nebo nula, pokud není zaškrtnuto "sčítat"
Modifier --> hodnota na "modifikátoru"
Count --> Počet hodů
Dice --> velikost kostky.
JJ, inicializace generátoru náhodných čísel tam chybí a je to ode mě velká chyba. Opravím to a nahraju sem novou verzi :-(
(O zvýšení hodnocení nežádám, nezasloužím si to :-) )
// Nahrána nová verze.
abbé faria: statistiku jsi asi neměl, co? Hod 5 nebo 50 (minimum a maximum) na 5k10 je 1 z 10 000. Tudíž během 10 000 hodů ti takové číslo průměrně padne jedinkrát. Takže se tě zeptám, dělal jsi alespoň 100 000 pokusů, aby jsi mohl říct takový verdikt, jaký jsi řekl (podotýkám, že těch 100 000 je takové minimum se stále velkou pravděpodobnostní odchilkou)?
(ve zkratce, považuji argument který jsi uvedl za obrovskou pitomost)
Legar: 1k6+ je docela zajímavá myšlenka. Při hodnocení mě vůbec nenapadla.
Ale že jsem si během testování nevšiml chyby číslo 3 ve tvém výčtu, za to se stydím, a to jsem testoval kdejakou kravinu. Pravda pravdoucí - na občasném použití to nejspíše moc neudělá, ale pokud by to někdo chtěl používat častěji, mohlo by to zkreslovat náhodnost hodů (neboť by si třeba jen podvědomě zapamatoval některé části řetězce). A bohužel ani reset danou chybu nenapraví.
Své hodnocení proto měním na 4* - zmýlil jsem se a přiznávám to.
Malou útěchou je, že je tedy na co navázat a udělat lepší verzi (kdyby se do toho někdo pouštěl a chtěl to udělat opravdu pořádně, tak ať se spojí se mnou, mám pár nápadů na docela šikovné featurky, které udělají program "skoro dokonalým", na které jsme přišel při pročítání diskuze).
No, Alký co bych ti k tomu řekl, na házení kostkou je to dobrý, ale po chvlíli užívání jsem zjistil že např. u 5k10 se nikdy nehodí maximální hodnota, ani nejnižší a cifry se většinou pohubují ve středu, za to strhnu jednu hvězdu, jinak je to velmi povedený prográmek.
abbé Faria
Dradol:
Pokud si myslíš, že by to nedokázal Alcator naprogramovat, tak jsi na omylu. Tento prográmek je hodně jednoduchý. Řekl bych, že byl napsán tak do dvou hodin (ne-li méně) a z toho hodina byla strávena na nápovědě. Pokud chceš vidět opravdu mohutný program, který dokazuje kvality programátora, tak si stáhni DuTool z downloadu (musíš zajet trochu více dolů).
K těm statistikám:
No naflákal jsem tam chyby. Nulu jsem bral jako nulu a ne jako deset -> rozsah 0-90. Pravděpodobnost hodu 45 (nebo 55) není 567:1562500. A už vůbec není pravděpodobnost hodu 45 (55) 2755 x větší, než pravděpodobnost hodu 90 (100).
Legar:
No skutečně. Hází to ty samé čísla. Tohle bych měl brát jako chybu a ne ty nemožnosti, které jsem sem předtím vepsal. Nevím, jak Alcator psal program, ale asi nepoužil funkci random. Napsal jsem jednoduchý program v Delphi, kde jsem použil fci random a generovalo to vždy jiné číslo.
Dormon
Alcator: Opravdu dobr kostka, je tam hodně možných hodů (1k4...) a líbí se mi také další věci, například, že de naráz hodit třeba 10K6 a že de k hodu dát nějaký postich nebo bonus...
Je to vážně perfektní prográmek.
A ještě mám dotazi:
Tosi dělal sám Alcator?
A je to stoprocentě poctivé? :D
Zdravím autora i ostatní v diskusi,
Po pravdě řečeno tento příspěvek mě velmi zklamal. Hned vysvětlím proč:
1) když je "elektronická kostka" na serveru o DrD, tak by neměl chybět kod 1k6+ - detail.
2) "Čtvrtá (trochu závažnější chyba)", kterou objevil Dormon (posouvání StringGridu) by mohla nebo spíše měla být ošetřena. Když jsem to zkoušel, tak mi trvalo přes půl minuty, než jsem zjistil, jak to uvést do původního stavu bez restartu programu. Asi nejsem dostatečně bystrý, ale přece... - opět jen detail, který se dá snadno překousnout.
3) Největší problém jsem našel při svém oblíbeném testu generátorů náhodných čísel. Nejde o nic složitého, může si to zkusit každý:
Spustím program a začnu kázet kostkou 1k6 (v programu, ne vedle na stole).
Padlo mi: 1, 1, 6, 2, 2, 5, 2, 1, 3, ... a tak dále.
Ukončím program.
Spustím jej znovu a zase házím 1k6.
Opět mi padlo: 1, 1, 6, 2, 2, 5, 2, 1, 3... (že by náhoda?).
No nic, zkusím to znovu.
A zase: 1, 1, 6, 2, 2, 5, 2, 1, 3... (to už asi náhoda nebude).
A zas a znovu, pořád stejná posloupnost.
Prostě jsi zaponměl inicializovat generátor pseudonáhodných čísel po startu programu. Tohle považuji za obrovskou chybu a program se tím v mých očích stává prakticky nepoužitelný (kdo by chtěl kostku, která pokaždé po vyndání z kapsy hází ta samá čísla?).
Hlasovat zatím nebudu, rád bych znal názor ostatních a hlavně autora na tento problém.
Legar
On ve skutečnosti není kvalitní, ale není na něm co kritizovat. Je jednoduchý a přehledný.
Ehm... u 10k10 padá nejčastěji číslo 55 (rozsah je 10 - 100; rozdíl = 90; 90:2 = 45; 10 + 45 = 55)
Sniper:
Narážíš-li tím na moje hodnocení, tak jsem nehodnotil nejvyšším hodnocením skoro ze stejného důvodu jako Nekroskop.
Ještě jsem chvíli myslel, že je tam chyba v rozsazích, ale pak mi došlo, že to tak není. To, jak jsem se skoro „uklikal k smrti“, abych na generování 10k10 hodil 90 nebyla chyba v rozsazích, ale moje. Neuvědomil jsem si, že pravděpodobnost padnutí pro číslo 90 na rozsahu 0-99 je (1:100), kdežto u rozsahu 10*(0-9) je pravděpodobnost pro hod mnohem, mnohem menší a to: (1:10000000000). Nejpravděpodobněji padá číslo 45 – (567:1562500) což je přibližně 2755 vícekrát.
Dormon