Vraag over arrays
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
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?>
$_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 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.
Ik denk dat je de 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.
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 -
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.
Waar wil je die getallen aan toevoegen?
Eigelijk zou ik willen dat hij zegt:
Speler 1 ontvangt $50.
Speler 2 ontvangt $10.
Speler 3 ontvangt $20.
In iedergeval dat hij doortelt..
En hoe zijn die speler gegevens opgeslagen?
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
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
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 />';
}
?>
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 />';
}
?>
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
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
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);
?>
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);
?>
Weet je hoe dat komt?
Output:
2500000000
Speler 1 ontvangt $151380587
Speler 2 ontvangt $462426529
Speler 3 ontvangt $611633189
Speler 4 ontvangt $1274559695
2500000000