berekening maken voor race.
ik ben op dit moment bezig met het maken van een race spel een tekstspel, maar ik ben nu aangekomen op het gedeelte van het berekenen van wie er wint als je gaat racen, maar hier kom ik toch niet echt uit. ik heb alwel wat maar het is niet echt een handig iets want je houd toch dat je een beetje et zelfde wint elke keer en dat wil ik eigenlijk niet.
Edit:
code weg gegooit
Gewijzigd op 01/01/1970 01:00:00 door Bas Php
Ten tweede, Is het teveel werk voor je om als je iets maakt je code met commentaar te voorzien? Je snapt nu misschien wel wat alles doet maar of dat over bijvoorbeeld een maand nog is betwijfel ik.
dus ik sta open voor alle ideeën over een nieuwe code, want zoals mark al zegt deze is veel te groot
Quote:
ik ben op dit moment bezig met het maken van een race spel een tekstspel, maar ik ben nu aangekomen op het gedeelte van het berekenen van wie er wint als je gaat racen, maar hier kom ik toch niet echt uit. ik heb alwel wat maar het is niet echt een handig iets want je houd toch dat je een beetje et zelfde wint elke keer en dat wil ik eigenlijk niet.
ehh, wil je nou hulp wanneer er wie en wat wint?
kun je toch zelf ook bedenken -_-'
Formuleer eerst even wat je precies wilt.
@peter dat heb al verzonnen(zie code van 300 regels)
Edit:
code weggehaald(A)
kan iemand mishien helpen??
alvast bedankt, bas
In de meeste racegames van vroeger had je dat je moet kiezen tussen hele snelle maar moeilijk bestuurbare auto's of langzamere auto's die beter sturen. Dit zou je als betrouwbaarheid van een bepaald onderdeel kunnen zien.
Zoiets bijvoorbeeld:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
<?php
$wegingen = array(
'motor' => 0.3,
'banden' => 0.2,
'coureur' => 0.5
); // opgeteld: 1.0
$links = array(
//eigenschap=>array(maximum, betrouwbaarheid)
'motor' => array(1.0, 0.3),
'banden' => array(0.6, 1.0),
'coureur' => array(1.0, 0.9)
);
// eigenschappen van speler met het eerste getal
// hoe hard hij gaat (tussen 0 en 1) en als tweede
// getal hoe zeker je weet dat hij ook daadwerkelijk
// die snelheid oplevert.
$rechts = array(
// heeft iets langzamere maar betrouwbaardere motor
'motor' => array(0.9, 0.9),
'banden' => array(0.6, 1.0),
'coureur' => array(1.0, 0.9)
);
function bereken_prestaties($speler)
{
global $wegingen;
foreach($speler as $eigenschap => $parameters)
{
// $maximum_snelheid = $parameters[0]
// $betrouwbaarheid = $parameters[1]
// $onbetrouwbaarheid = 1 - $betrouwbaarheid
// prestatie: $betrouwbaarheid * $maximum_snelheid + $onbetrouwbaarheid * $maximum_snelheid
$prestatie = $parameters[1] * $parameters[0] + ((1 - $parameters[1]) * mt_rand(0, $parameters[0]));
$prestaties[$eigenschap] = $wegingen[$eigenschap] * $prestatie;
}
return array_sum($prestaties);
}
$prestaties_links = bereken_prestaties($links);
$prestaties_rechts = bereken_prestaties($rechts);
if($prestaties_links == $prestaties_rechts)
echo "Gelijk";
elseif($prestaties_links > $prestaties_rechts)
echo "Links wint";
else
echo "Rechts wint";
?>
$wegingen = array(
'motor' => 0.3,
'banden' => 0.2,
'coureur' => 0.5
); // opgeteld: 1.0
$links = array(
//eigenschap=>array(maximum, betrouwbaarheid)
'motor' => array(1.0, 0.3),
'banden' => array(0.6, 1.0),
'coureur' => array(1.0, 0.9)
);
// eigenschappen van speler met het eerste getal
// hoe hard hij gaat (tussen 0 en 1) en als tweede
// getal hoe zeker je weet dat hij ook daadwerkelijk
// die snelheid oplevert.
$rechts = array(
// heeft iets langzamere maar betrouwbaardere motor
'motor' => array(0.9, 0.9),
'banden' => array(0.6, 1.0),
'coureur' => array(1.0, 0.9)
);
function bereken_prestaties($speler)
{
global $wegingen;
foreach($speler as $eigenschap => $parameters)
{
// $maximum_snelheid = $parameters[0]
// $betrouwbaarheid = $parameters[1]
// $onbetrouwbaarheid = 1 - $betrouwbaarheid
// prestatie: $betrouwbaarheid * $maximum_snelheid + $onbetrouwbaarheid * $maximum_snelheid
$prestatie = $parameters[1] * $parameters[0] + ((1 - $parameters[1]) * mt_rand(0, $parameters[0]));
$prestaties[$eigenschap] = $wegingen[$eigenschap] * $prestatie;
}
return array_sum($prestaties);
}
$prestaties_links = bereken_prestaties($links);
$prestaties_rechts = bereken_prestaties($rechts);
if($prestaties_links == $prestaties_rechts)
echo "Gelijk";
elseif($prestaties_links > $prestaties_rechts)
echo "Links wint";
else
echo "Rechts wint";
?>
Omdat je het toch wel een beetje van toeval af wilt laten hangen,, kan je iemand een hogere kans geven.
Deze code dien je onder de functie neer te zetten,, en de rest haal je dus weg.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
$prestaties_links = bereken_prestaties($links);
$prestaties_rechts = bereken_prestaties($rechts);
$prestaties_totaal = $prestaties_links + $prestaties_rechts;
$rand = rand(0, $prestaties_totaal);
if($rand < $prestaties_links)
echo "Links wint";
elseif($rand > $prestaties_links)
echo "Rechts wint";
else
echo "Gelijk";
?>
$prestaties_links = bereken_prestaties($links);
$prestaties_rechts = bereken_prestaties($rechts);
$prestaties_totaal = $prestaties_links + $prestaties_rechts;
$rand = rand(0, $prestaties_totaal);
if($rand < $prestaties_links)
echo "Links wint";
elseif($rand > $prestaties_links)
echo "Rechts wint";
else
echo "Gelijk";
?>
Dit is even snel tussen het werk door,, dus pin me er niet op vast,, maar zo kan je toch een beetje zorgen dat het niet altijd degene met de snelste auto is die wint.
En de random functie is iets beters voor,, maar heb daar even geen tijd voor.