Vraag over arrays

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Jeroen

Jeroen

14/02/2009 19:46:00
Quote Anchor link
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
<?php if(isset($_POST['Calculate'])){
$_POST['money'] = ereg_replace("[^0-9]",'',$_POST['money']);
$_POST['money'] = round($_POST['money']);

if(empty($_POST['money'])){
echo "Error: You didn't enter any money.";
}
else{
    
    if(empty($_POST['player'])){
echo "Error: You didn't enter any player.";
}
else{

    if(($_POST['player']) == 1){
echo "Error: Please enter atleast 2 players.";
}
else{
    
    if(($_POST['player']) == 0){
echo "Error: Please enter atleast 2 players.";
}
else{
    
    if(($_POST['money']) == 0){
echo "Error: Please enter atleast $ 1.";
}
else{
    
    $totaal = $_POST['money'];
$aantal = $_POST['player'];

do
{
    $array = array();
    for($i=1; $i<$aantal; $i++)
    {

        $array[] = rand(1, $totaal);
    }
}

while(array_sum($array) >= $totaal);
$array[] = $totaal - array_sum($array);

foreach($array as $value)
{

echo '$' .number_format($value). '<br/>';}
}
//isset Post
} //no money
} //no days
} // 0 days
} // 1 player
} // $0?>


Dit is een simpel dice script waarbij iemand geld kan verdelen over een paar spelers.

Bijv. $100 over 3 spelers. Speler 1 krijgt $10 Speler 2 krijgt $56 en Speler 3 krijgt $34.

Nu staat er:

$10
$56
$34

Mijn vraag is hoe kan ik er bij zetten dat Speler 1 dit krijgt, Speler 2 dat enzovoort..? Het is heel simpel waarschijnlijk als ik mezelf een beetje in arrays verdiep.. maar daar heb ik eigelijk niet zoveel tijd voor. Ook omdat ik het maar voor 1 ding nodig hebt. Dus zou iemand mij kunnen helpen?? Ik zou het erg op prijs stellen.
 
PHP hulp

PHP hulp

04/05/2024 17:37:08
 
Jesper Diovo

Jesper Diovo

14/02/2009 20:03:00
Quote Anchor link
Ik denk dat je de PHP Beginnershandleiding nog maar eens door moet nemen. Je comments wat iedere } is, klopt al niet en je while-voorwaarde klopt ookal niet. Dus als je daar nu mee begint en netjes inspringt, kunnen we misschien meer voor je doen.
 
Jeroen

Jeroen

14/02/2009 20:34:00
Quote Anchor link
Dit script werkt naar mijn mening gewoon. Natuurlijk heb je er meer verstand van.

Ik heb ook nog nooit een handleiding gelezen, heb ik te weinig geduld voor. Net als Photoshop die ik op dit moment perfect beheer zonder enige handleiding. Ik ben meer van het proberen, net zo lang proberen tot het werkt. Alleen werkt dat bij dit onderdeel niet zo. (haha)

Voor mij zijn de comments niet belangerijk. Meer waar elke voorstaat. Ik snap best dat de laatste } de afsluitende is voor isset maarja dat interreseert mij weinig, het werkt.

Normaal zijn de users hier op dit forum heel vriendelijk en helpen mij zo op weg. Jullie vinden dit leuk om te doen (neem ik aan).

Jullie beheersen de php taal zo goed dat bij zo'n klein en simpel script een toevoeging als deze geen enkele moeite kost lijkt mij. Ik zou iedereen willen helpen als ik het goed beheersde.

Maarja als je me liever door verwijst (iets wat ik al had gedacht..) dan accepteer ik dat en dan zal ik zodra ik er tijd voor heb is gaan kijken hoe de basis werkt... misschien dat ik dan over een half jaar is bij de arrays uitkom om zo mijn oh zo simpele script af te maken en andere mensen te helpen (die van dit script gebruik willen maken).

Bedankt Jezput voor je tijd om deze reactie te plaatsen.
 
- SanThe -

- SanThe -

14/02/2009 20:58:00
Quote Anchor link
Jezpur schreef op 14.02.2009 20:03:
... en je while-voorwaarde klopt ook al niet ....

En wat klopt daar dan niet aan. Volgens mij werkt dat perfect.

Edit: In $array staan nu de drie getallen. Dat is toch gewoon uitlezen en aan de juiste spelers toevoegen. Lijkt mij niet moeilijk.
Gewijzigd op 01/01/1970 01:00:00 door - SanThe -
 
Jeroen

Jeroen

15/02/2009 15:53:00
Quote Anchor link
Sorry voor late reactie. Ik waardeer dat je positief antwoord op mijn vraag geeft.

Toch ben ik echt een lake op gebied van $array, ik ben geholpen met die script en zou niet weten hoe ik het toevoeg. Ik snap de werking maar daar houdt het mee op. Het is echt alleen voor dit script zou je misschien kunnen uit leggen hoe ik het uitlees en de spelers toe voeg? En als je daar geen tijd voor hebt zou je me dan kunnen vertellen waar ik er uitleg over kan krijgen (handleiding over array ofzo?)

Alvast bedankt.
 
- SanThe -

- SanThe -

15/02/2009 16:18:00
Quote Anchor link
Waar wil je die getallen aan toevoegen?
 
Jeroen

Jeroen

15/02/2009 16:23:00
Quote Anchor link
Nu geeft hij als uitkomst bijvoorbeeld $50 (afhankelijk wel bedrag je ingeeft en hoe hij het verdeeld)

Eigelijk zou ik willen dat hij zegt:

Speler 1 ontvangt $50.
Speler 2 ontvangt $10.
Speler 3 ontvangt $20.

In iedergeval dat hij doortelt..
 
- SanThe -

- SanThe -

15/02/2009 16:25:00
Quote Anchor link
En hoe zijn die speler gegevens opgeslagen?
 
Jeroen

Jeroen

15/02/2009 16:29:00
Quote Anchor link
Het is een soort van calculator/dice

Dus er zijn 2 velden:

Spelers:
Geld:

Als je dan invult:

Spelers: 4
Geld: 500

Dan zou er eigelijk (die is random) moeten staan:
Speler 1 ontvangt: $120
Speler 2 ontvangt: $50
Speler 3 ontvangt: $250
Speler 4 ontvangt: $80
 
- SanThe -

- SanThe -

15/02/2009 16:31:00
Quote Anchor link
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
<?php
ini_set('display_errors', 1); // 0 = uit, 1 = aan
error_reporting(E_ALL);

$totaal = 500;
$aantal = 4;

do
{
    $array = array();
    for($i=1; $i<$aantal; $i++)
    {

        $array[] = rand(1, $totaal);
    }
}

while(array_sum($array) >= $totaal);
$array[] = $totaal - array_sum($array);

for($i=1; $i<=count($array); $i++)
{

    echo 'Speler ' . $i . ' ontvangt $' . $array[$i-1] . '<br />';
}


?>
 
Jeroen

Jeroen

15/02/2009 16:33:00
Quote Anchor link
Bedankt voor je snelle reactie. Waardeer ik echt!

Ik ga het uitproberen :)

Edit: Het werkt, je hebt me weekend nog wat beter gemaakt. Bedankt!

Edit2: Bij getallen boven de 2,500,000,000 doet hij het niet meer dan komen er negatieve getallen. Is daar nog een oplossing voor?
Gewijzigd op 01/01/1970 01:00:00 door Jeroen
 
- SanThe -

- SanThe -

15/02/2009 18:03:00
Quote Anchor link
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
<?php
ini_set('display_errors', 1); // 0 = uit, 1 = aan
error_reporting(E_ALL);

$totaal = 2500000000;
echo $totaal . '<br />';
$aantal = 4;

do
{
    $array = array();
    for($i=1; $i<$aantal; $i++)
    {

        $array[] = abs(rand(1, $totaal));
    }
}

while(abs(array_sum($array)) >= $totaal);
$array[] = $totaal - array_sum($array);

for($i=1; $i<=count($array); $i++)
{

    echo 'Speler ' . $i . ' ontvangt $' . $array[$i-1] . '<br />';
}


echo array_sum($array);
?>
 
Jeroen

Jeroen

15/02/2009 20:02:00
Quote Anchor link
Zo gaat hij niet meer in de min, maar zet hij bij de eerste getallen een $1 en het laatste getal het overige deel.

Weet je hoe dat komt?
 
- SanThe -

- SanThe -

15/02/2009 20:51:00
Quote Anchor link
Bij mij werkt ie gewoon.

Output:
2500000000
Speler 1 ontvangt $151380587
Speler 2 ontvangt $462426529
Speler 3 ontvangt $611633189
Speler 4 ontvangt $1274559695
2500000000
 



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.