berekening maken voor race.

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Bas Php

Bas Php

03/01/2010 01:06:00
Quote Anchor link
beste PHP'er,

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
 
PHP hulp

PHP hulp

08/09/2024 02:07:34
 
- Mark -

- Mark -

03/01/2010 01:32:00
Quote Anchor link
Ik geloof niet dat iemand de tijd gaat nemen om je hele code door te nemen. Veels te veel code en een te onduidelijke vraag.

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.
 
Bas Php

Bas Php

03/01/2010 02:21:00
Quote Anchor link
de code had ik er alleen bij gedaan als van dit heb ik al heb nergens gezegt dat ik door wil met deze code. maar meestal heb ik na een maand nog wel door wat waarvoor is hoor.
dus ik sta open voor alle ideeën over een nieuwe code, want zoals mark al zegt deze is veel te groot
 
Kumkwat Trender

Kumkwat Trender

03/01/2010 04:04:00
Quote Anchor link
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 -_-'
 
Pepijn

Pepijn

03/01/2010 09:52:00
Quote Anchor link
Waar door kan iemand winnen? Hoger pk hebben? Betere banden? of een combinatie van beiden.

Formuleer eerst even wat je precies wilt.
 
Bas Php

Bas Php

03/01/2010 12:18:00
Quote Anchor link
@pepijn sorry dat was ik vergeten uiteleggen. voor pk en banden en alle andere dingen krijg je gwn punten en het gaat er dus om wie het hoogste aantal punten heeft.

@peter dat heb al verzonnen(zie code van 300 regels)
 
Bas Php

Bas Php

03/01/2010 22:17:00
Quote Anchor link
Edit:
code weggehaald(A)
 
Bas Php

Bas Php

05/01/2010 23:44:00
Quote Anchor link
meer dan 24 uur geen antwoord:S
kan iemand mishien helpen??
alvast bedankt, bas
 
Jelmer -

Jelmer -

06/01/2010 00:12:00
Quote Anchor link
Als je het echt ingewikkeld wilt maken zou je iets kunnen dat iedere factor (pk, kwaliteit banden, kwaliteit coureur) een bepaalde mate meetelt. Want een motor upgraden kost meer dan een paar nieuwe bandjes, dus dat moet ook ergens tegenop wegen.

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)
PHP script in nieuw venster Selecteer het PHP script
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
<?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";
?>
 
Nicoow Unknown

Nicoow Unknown

06/01/2010 11:56:00
Quote Anchor link
En misschien nog een aanvulling op Jelmer zijn code,
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)
PHP script in nieuw venster Selecteer het PHP script
1
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";
?>


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.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.