Avatar billede code_freak Nybegynder
31. marts 2003 - 18:05 Der er 23 kommentarer og
1 løsning

random efter %

Jeg er hved at lave et lille webspil, hvor man skal være tæner for et dyr som minder meget om digimon (træne, kæmpe, udvide). Når man udvikler sig, og en minde modstander vil prøve at kæmpe mod en, vil jeg godt have at den mindre har en chance, hved at en randomizer vælger efter %, f.eks.

--------------
Spiller 1:
70% chance

Spiller 2:
30% chance
--------------

Random funkrionen vælger (med stort hæld) Spiller 2

findes den function? kunne ikke finde noget på http://dk.php.net/manual/en/
Avatar billede code_freak Nybegynder
31. marts 2003 - 18:06 #1
undskyld min staven :\
Avatar billede Slettet bruger
31. marts 2003 - 18:13 #2
Jeg ville ligge det antal procent der er i en array altså lave 30 input med Spiller 2 og 70 med spille 1 og derefter kører en random på arrayen
Avatar billede erikjacobsen Ekspert
31. marts 2003 - 18:15 #3
Så meget bøvl for så lidt, cyberfinn?
www.php.net/rand
Avatar billede code_freak Nybegynder
31. marts 2003 - 18:16 #4
nu er jeg ikke lige så informeret i array randomizer, har du tid til et lille eksempel?
Avatar billede code_freak Nybegynder
31. marts 2003 - 18:17 #5
den skulle jo gerne vælge med %delen
Avatar billede erikjacobsen Ekspert
31. marts 2003 - 18:20 #6
Hvorfor tror du at du skal bruge % ?
Avatar billede code_freak Nybegynder
31. marts 2003 - 18:23 #7
det skal jeg heller ikke, men den skal give støre chance til det dyr der er bedre, og mindre til den der er mindst
Avatar billede code_freak Nybegynder
31. marts 2003 - 18:24 #8
....altså man difinere vægten på vilken spiller der skal vinde
Avatar billede code_freak Nybegynder
31. marts 2003 - 18:28 #9
kan man gøre så rand vælger et tal, også kan en anden funktion se om det er indenfor 0-30 eller 30-100?
Avatar billede code_freak Nybegynder
31. marts 2003 - 19:10 #10
lavede lige denne hurtigt me den vil ikke virke?

################################
<?
function battlestats()
{
$int1 = 7;
$str1 = 8;
$dex1 = 2;
$intpoint1 = $int1 * 30;
$strpoint1 = $str1 * 100;
$dexpoint1 = $dex1 * 70;
$stat1 = $intpoint1 + $strpoint1 + $dexpoint1;
$int2 = 3;
$str2 = 8;
$dex2 = 2;
$intpoint2 = $int2 * 30;
$strpoint2 = $str2 * 100;
$dexpoint2 = $dex2 * 70;
$stat2 = $intpoint2 + $strpoint2 + $dexpoint2;
$player1 = round($stat1/($stat1+$stat2)*100,0);
$player2 = round($stat2/($stat1+$stat2)*100,0);
echo $player1."<BR>";
echo $player2."<BR>";
}
battlestats();
$randomcounter = rand(0,100);

if($player1 >= $randomcounter)
    {
echo "Spiller 1 vandt ".$randomcounter;
    }
else
    {
echo "Spiller 2 vandt ".$randomcounter;
    }
?>
################################
Avatar billede code_freak Nybegynder
31. marts 2003 - 19:12 #11
oh, glæmte return :)
Avatar billede schaefner Juniormester
31. marts 2003 - 19:28 #12
Forstår ikke helt måden du vil regne vinderen ud på. Som erik skriver, så er det vel bare en simpel random-udvælgelse.

<?php
$nr = rand(1,2);
echo "Spiller nr. $nr vandt";
?>
Avatar billede code_freak Nybegynder
31. marts 2003 - 19:30 #13
<?php
$nr = rand(1,2);
echo "Spiller nr. $nr vandt";
?>
Ville de være lige gode, den kode jeg viser gør at de ikke er ligegode
Avatar billede code_freak Nybegynder
31. marts 2003 - 19:35 #14
Vis nogen kender til rollespil og PHP vil de forstå min kode...
er ikke lige så interaseret i fodbold, men jeg vil forklare det på denne måde her...
----------------------
forestil dig 2 fodboldshold, alle hved de ikke er ligegode, derfor er chancen for at hold 1 vinder over hold 2, end modsat... derfor går kampen på måden med at hold 2 sikkert har 20% chance og hold 1 har resten altså 80% chance.
De spiller så kampen... på coputer vil den gå gennem min kode (med lidt ændringer) og det viser sig hold 1 vinder.... med de 80% de havde
Avatar billede code_freak Nybegynder
31. marts 2003 - 19:36 #15
derfor er chancen for at hold 1 vinder over hold 2

Skulle være

derfor er chancen for at hold 1 vinder over hold 2 støre end modsat,
Avatar billede erikjacobsen Ekspert
31. marts 2003 - 19:38 #16
Virker din funktion så efter hensigten?
Avatar billede code_freak Nybegynder
31. marts 2003 - 19:38 #17
ja
Avatar billede code_freak Nybegynder
31. marts 2003 - 19:40 #18
men vis i/du kan gøre den mere sikker vil jeg være glad...

$randomcounter = rand(0,100);

if($player1 >= $randomcounter)
    {
echo "Spiller 1 vandt ".$randomcounter;
    }
else
    {
echo "Spiller 2 vandt ".$randomcounter;
    }
Avatar billede code_freak Nybegynder
31. marts 2003 - 19:44 #19
$player1 er % som er = 100 sammen med $player2
$player2 er % som er = 100 sammen med $player1
Avatar billede erikjacobsen Ekspert
31. marts 2003 - 19:49 #20
Det ser fint nok ud - jeg kan så ikke gennemskue om
du vender vinderchancherne korrekt. Altså om du i stedet
for skal skrive    if ($player1 <= $randomcounter) ...
Prøv dig frem
Avatar billede code_freak Nybegynder
31. marts 2003 - 19:51 #21
den køre rigtigt
Avatar billede code_freak Nybegynder
31. marts 2003 - 19:53 #22
point erikjacobsen?
Avatar billede erikjacobsen Ekspert
31. marts 2003 - 19:58 #23
nej tak - samler ikke på dem
Avatar billede code_freak Nybegynder
31. marts 2003 - 20:00 #24
k... så får cyberfinn dem :), som en trystegave :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester