Ik ben nu bezig met een war-game. ( nee geen criminals :p )
En dan is het zo:
je hebt 2 mensen die vechten
player1 en player2 ( klinkt logisch )
en dan heb je dus bijvoorbeeld zo:
Player 1 heeft 20 attack_power_punten en 10 verdedig dingen
Player 2 heeft 30 attack_power_punten en 18 verdedig_punten...
Nou, je ziet dus meteen dat player 2 beter is.
Maar dan wil ik maken
dat er een soort van 'winpercentage' word berekent
Dan word er gekeken wie er beter is, en hoeveel 'kans' je dan hebt om te winnen.
Stel er komt dan uit dat player1 80% kans heeft om te winnen, dan word er een getal tussen de 1 en de 100 ( met rand() ) gemaakt, en als het getal dan tussen de 1 en de 80 is, dat dan player1 wint, als het getal dan tussen de 81 en 100 is, wint player2
Dan word er dus gebruik gemaakt van die winstpercentages.
En alles staat ook in mijn database, maaar: ik heb geen flauw idee hoe ik dat dan moet maken!? dus: hoe maak ik dat hij die percentages uitrekent, en hoe maak ik dat hij daaraan de rand() functie aanpast?
CREATE TABLE `game_members` (
`id` int(5) NOT NULL auto_increment,
`naam` text NOT NULL,
`pass` text NOT NULL,
`weapon` int(2) NOT NULL,
`punten` int(9) NOT NULL,
`level` int(5) NOT NULL,
`defence` int(9) NOT NULL,
PRIMARY KEY (`id`)
)
hoe moet ik dan maken dat ie dus kijkt welk cijfer? dus in dit geval cijfer 1 tot 45: player 1 wint.
cijfer 46 tot 100 player 2 wint.
Hoe moetik dat dan makne? daar kom ik niet uit...
Misschien heb je hier nog wat aan:
<?php
function bool_rand($procent)
{
if ($procent >= 0 && $procent <= 100) {
$toeval = mt_rand(0, 100);
return $toeval <= $procent;
} else {
return false;
}
}
?>
die functie geeft true of false terug op basis van een percentage.
Misschien heb je hier nog wat aan:
<?php
function bool_rand($procent)
{
if ($procent >= 0 && $procent <= 100) {
$toeval = mt_rand(0, 100);
return $toeval <= $procent;
} else {
return false;
}
}
?>
die functie geeft true of false terug op basis van een percentage.
Hoe moet ik die dan in mijn script plaatsen? ik werk namelijk nooit met functies..
In principe heb je hier alleen maar het percentage van 1 player nodig:
trouwens:
100/($p1tot/$p2tot) klopt niet, want als je $p1tot groter is dan $p2tot, komt er een getal onder de 1 uit ($p1tot/$p2tot). 100/0.5=200, dus dat klopt niet, beter zo:
($p2tot/$p1tot)*100
Verder zie dit stukje voorbeeldcode.
<?php
$p1_kans=round(($p2tot/$p1tot)*100);