Avatar billede exo Nybegynder
11. marts 2004 - 16:17 Der er 13 kommentarer og
1 løsning

Procent regning i php?

Hej allesammen!

Jeg har lavet denne lille kode, som skal demonstere at en bruger angriber en anden. Da ham der forsvare har mere i forsvar end ham der angriber er der størrere chance for at han blokkere slaget, kig her:

<?php
$defense = "37";
$damage = "56";
echo "Defender's Defense: $defense<br>Attacker's Damage: $damage<br><br>";
echo "Der er ";
echo $defense/$damage*100;
echo "% chance for at at blocke slaget";
?>

så burde den gerne udskrive:

"efender's Defense: 37
Attacker's Damage: 56

Der er 66.0714285714% chance for at at blocke slaget"

Så vil jeg gerne have lavet en knap så angriberen angriber! og så er der 66% chance for at forsvareren blokkere slaget. Rammer han, går den hen til et link, rammer han ik går den hen til et andet!

Håber i er forstår ellers spørger i bare løs..

mvh. Exo!
Avatar billede detox Nybegynder
11. marts 2004 - 16:35 #1
Du kan lave det i den her stil:

<?php
$defense = "37";
$damage = "56";
$procent = $defense/$damage*100;
echo "Defender's Defense: $defense<br>Attacker's Damage: $damage<br><br>";
echo "Der er ";
echo $procent;
echo "% chance for at at blocke slaget<br />";
if (round($procent)<=rand(1,100)) {
  $link = 'side1.php';
} else {
  $link = 'side2.php';
}
?>
<form method="post" action="<? echo $link?>">
<!-- Indsæt evt. hidden felter her -->
<input type="submit" name="submit" value="Attack" />
</form>
Avatar billede exo Nybegynder
11. marts 2004 - 17:00 #2
Okay cool..
Forklar lige, så jeg er helt med tak!
Avatar billede exo Nybegynder
11. marts 2004 - 17:13 #3
og forresten!

Der skal stå:

$procent = $defense/$damage;

istedet for:

$procent = $defense/$damage*100;

Ellers står der at der er 9900% chance :D
Avatar billede exo Nybegynder
11. marts 2004 - 17:15 #4
Okay du har lavet en fejl... hvis man skriver $defense og $damage til 50 begge to så har man 1% chance for at ramme? så burde man da ha 50?
Avatar billede exo Nybegynder
11. marts 2004 - 17:21 #5
Okay du har lavet en masse fejl det virker ik.
Kan ikke accepteres, sorry :(
Avatar billede detox Nybegynder
11. marts 2004 - 17:30 #6
Ja, nu tog jeg udgangspunkt i det du skrev og tilføjede blot det med linket ;o)
Avatar billede detox Nybegynder
11. marts 2004 - 17:35 #7
Jeg er ikke sikker på hvordan du vil have denne procent udregnet. Hvis begge står til 50% vil jeg da mene at chancen for at blokere skal være 25%?
Avatar billede detox Nybegynder
11. marts 2004 - 17:36 #8
Måske sådan:

$procent = $defense/(100/$damage);
Avatar billede exo Nybegynder
11. marts 2004 - 18:02 #9
Ja det er rigtig nok men..
Jeg fik den lavet til:

$procent = $damage/$defense*100/5;
(5 tallet giver defenderen størrere chance for at blokere, betyder ik noget)

så det jeg faktisk bare skal have lavet er:
Vi kan blive enige om at maximum på procent er 100, ik ?

Og hvis angriberen har 10000 i damage og defenderen har har 10 i defense bliver det lidt overdrevet.
Så jeg vil gerne have den på maximalt 95% jeg prøvede med:

if ($procent>95) {
$procent == 95;
}

Men det gik ik rigtig, mine php skills er lidt rustne da jeg ik har arbejdet med det længe. Tror du lige du kunne svare på det så synes jeg også du har fortjent dine point :D
Avatar billede detox Nybegynder
11. marts 2004 - 18:40 #10
Der skal kun bruges et = tegn:

if ($procent>95) {
$procent = 95;
}
Avatar billede exo Nybegynder
11. marts 2004 - 20:22 #11
Ja det prøvede jeg også men virkede ik :(
Avatar billede detox Nybegynder
11. marts 2004 - 20:25 #12
Så har du gjort noget forkert:

$procent = 1000;
if ($procent>95) {
$procent = 95;
}
echo $procent; // giver: 95
Avatar billede exo Nybegynder
11. marts 2004 - 20:28 #13
okay har lavet det, der hvor der bare stod:

echo $procent;

Skrev jeg istedet:

if ($procent>95) {
$procent = 95;
echo $procent;
}
elseif ($procent<95) {
echo $procent;
}


Nå men tak for hjælpen :D
Avatar billede detox Nybegynder
11. marts 2004 - 20:38 #14
Velbekommen
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