Plaatjes in array om random 3x te echo'en.
Ik ben bezig met een simpele slotmachine. Ik heb 6 plaatjes die ik in een array heb gestopt.
Code (php)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
<?php
$images = array(
0 => 'a.gif',
1 => 'b.gif',
2 => 'c.gif',
3 => 'd.gif',
4 => 'e.gif',
5 => 'f.gif'
);
?>
$images = array(
0 => 'a.gif',
1 => 'b.gif',
2 => 'c.gif',
3 => 'd.gif',
4 => 'e.gif',
5 => 'f.gif'
);
?>
Ik echo dit doormiddel van een for-loop.
Code (php)
Dit werkt allemaal naar behoren. Maar nu zit ik met het volgende. Stel hij geeft 3 keer 'a.gif' of 'b.gif', dan heb je dus prijs. Kan ik dat met een simpele if/else constructie controleren of benader ik het helemaal verkeerd?
Gewijzigd op 28/01/2013 19:17:15 door Richard Hansma
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
<?php
$image = array();
for ($i = 1; $i <= 3; $i++) {
$image[$i] = $images[rand(0,(count($images)-1))];
$output = '<td width="20%" height="60" bgcolor="#FFFFFF"><img src="../image/objecten/slotmachine/'.$image[$i].'" alt="" border="0"></td>';
echo $output;
}
if(max(array_count_values($image)) == 3)
{
echo 'Gewonnen';
}
?>
$image = array();
for ($i = 1; $i <= 3; $i++) {
$image[$i] = $images[rand(0,(count($images)-1))];
$output = '<td width="20%" height="60" bgcolor="#FFFFFF"><img src="../image/objecten/slotmachine/'.$image[$i].'" alt="" border="0"></td>';
echo $output;
}
if(max(array_count_values($image)) == 3)
{
echo 'Gewonnen';
}
?>
Ik heb alleen nog een extra wens. Bij sommige plaatjes heb je ook al prijs als 2 van de 3 hetzelfde zijn. Hoe kan ik bijvoorbeeld controleren dat wanneer 'f.gif' 2 keer geëchood wordt je wel prijs hebt, maar bij 'a.gif' dat niet het geval is?
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
$image = array();
for ($i = 1; $i <= 3; $i++) {
$image[$i] = $images[rand(0,(count($images)-1))];
$output = '<td width="20%" height="60" bgcolor="#FFFFFF"><img src="../image/objecten/slotmachine/'.$image[$i].'" alt="" border="0"></td>';
echo $output;
}
$hulp = array_count_values($image);
if(max($hulp) == 3)
{
echo 'Gewonnen';
}
if(isset($hulp['f.gif']) and $hulp['f.gif'] == 2)
{
echo 'Gewonnen met een F';
}
?>
$image = array();
for ($i = 1; $i <= 3; $i++) {
$image[$i] = $images[rand(0,(count($images)-1))];
$output = '<td width="20%" height="60" bgcolor="#FFFFFF"><img src="../image/objecten/slotmachine/'.$image[$i].'" alt="" border="0"></td>';
echo $output;
}
$hulp = array_count_values($image);
if(max($hulp) == 3)
{
echo 'Gewonnen';
}
if(isset($hulp['f.gif']) and $hulp['f.gif'] == 2)
{
echo 'Gewonnen met een F';
}
?>
Edit: Toch nog een probleem...
Code (php)
Als ik dit doe krijg ik ondanks dat er 2 'a.gif' zijn toch te zien: 'Gewonnen met een A1'. Moet ik iets extra's in mijn if-constructie zetten of kan het beter anders?
Edit 2: Inmiddels toch op kunnen lossen.
Code (php)
Gewijzigd op 28/01/2013 23:55:43 door Richard Hansma
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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
<?php
$random = rand(1,100);
if ($random < 5) {
$image1 = 'a.gif';
echo '<td width="20%" height="60" bgcolor="#FFFFFF"><img src="../image/objecten/slotmachine/'.$image1.'" alt="" border="0"></td>';
}
elseif ($random < 12 && $random >= 5) {
$image1 = 'b.gif';
echo '<td width="20%" height="60" bgcolor="#FFFFFF"><img src="../image/objecten/slotmachine/'.$image1.'" alt="" border="0"></td>';
}
elseif ($random < 28 && $random >= 12) {
$image1 = 'c.gif';
echo '<td width="20%" height="60" bgcolor="#FFFFFF"><img src="../image/objecten/slotmachine/'.$image1.'" alt="" border="0"></td>';
}
elseif ($random < 45 && $random >= 28) {
$image1 = 'd.gif';
echo '<td width="20%" height="60" bgcolor="#FFFFFF"><img src="../image/objecten/slotmachine/'.$image1.'" alt="" border="0"></td>';
}
elseif ($random < 67 && $random >= 45) {
$image1 = 'e.gif';
echo '<td width="20%" height="60" bgcolor="#FFFFFF"><img src="../image/objecten/slotmachine/'.$image1.'" alt="" border="0"></td>';
}
else {
$image1 = 'f.gif';
echo '<td width="20%" height="60" bgcolor="#FFFFFF"><img src="../image/objecten/slotmachine/'.$image1.'" alt="" border="0"></td>';
}
$random = rand(1,100);
if ($random < 5) {
$image2 = 'a.gif';
echo '<td width="20%" height="60" bgcolor="#FFFFFF"><img src="../image/objecten/slotmachine/'.$image2.'" alt="" border="0"></td>';
}
elseif ($random < 12 && $random >= 5) {
$image2 = 'b.gif';
echo '<td width="20%" height="60" bgcolor="#FFFFFF"><img src="../image/objecten/slotmachine/'.$image2.'" alt="" border="0"></td>';
}
elseif ($random < 28 && $random >= 12) {
$image2 = 'c.gif';
echo '<td width="20%" height="60" bgcolor="#FFFFFF"><img src="../image/objecten/slotmachine/'.$image2.'" alt="" border="0"></td>';
}
elseif ($random < 45 && $random >= 28) {
$image2 = 'd.gif';
echo '<td width="20%" height="60" bgcolor="#FFFFFF"><img src="../image/objecten/slotmachine/'.$image2.'" alt="" border="0"></td>';
}
elseif ($random < 67 && $random >= 45) {
$image2 = 'e.gif';
echo '<td width="20%" height="60" bgcolor="#FFFFFF"><img src="../image/objecten/slotmachine/'.$image2.'" alt="" border="0"></td>';
}
else {
$image2 = 'f.gif';
echo '<td width="20%" height="60" bgcolor="#FFFFFF"><img src="../image/objecten/slotmachine/'.$image2.'" alt="" border="0"></td>';
}
$random = rand(1,100);
if ($random < 5) {
$image3 = 'a.gif';
echo '<td width="20%" height="60" bgcolor="#FFFFFF"><img src="../image/objecten/slotmachine/'.$image3.'" alt="" border="0"></td>';
}
elseif ($random < 12 && $random >= 5) {
$image3 = 'b.gif';
echo '<td width="20%" height="60" bgcolor="#FFFFFF"><img src="../image/objecten/slotmachine/'.$image3.'" alt="" border="0"></td>';
}
elseif ($random < 28 && $random >= 12) {
$image3 = 'c.gif';
echo '<td width="20%" height="60" bgcolor="#FFFFFF"><img src="../image/objecten/slotmachine/'.$image3.'" alt="" border="0"></td>';
}
elseif ($random < 45 && $random >= 28) {
$image3 = 'd.gif';
echo '<td width="20%" height="60" bgcolor="#FFFFFF"><img src="../image/objecten/slotmachine/'.$image3.'" alt="" border="0"></td>';
}
elseif ($random < 67 && $random >= 45) {
$image3 = 'e.gif';
echo '<td width="20%" height="60" bgcolor="#FFFFFF"><img src="../image/objecten/slotmachine/'.$image3.'" alt="" border="0"></td>';
}
else {
$image3 = 'f.gif';
echo '<td width="20%" height="60" bgcolor="#FFFFFF"><img src="../image/objecten/slotmachine/'.$image3.'" alt="" border="0"></td>';
}
if($image1 == 'a.gif' && $image2 == 'a.gif' && $image3 == 'a.gif') {
echo 'gewonnen';
}
elseif($image1 == 'b.gif' && $image2 == 'b.gif' && $image3 == 'b.gif') {
echo 'gewonnen';
}
elseif($image1 == 'c.gif' && $image2 == 'c.gif' && $image3 == 'c.gif') {
echo 'gewonnen';
}
elseif($image1 == 'd.gif' && $image2 == 'd.gif' && $image3 == 'd.gif') {
echo 'gewonnen';
}
elseif($image1 == 'e.gif' && $image2 == 'e.gif' && $image3 == 'e.gif') {
echo 'gewonnen';
}
elseif($image1 == 'f.gif' && $image2 == 'f.gif' && $image3 == 'f.gif') {
echo 'gewonnen';
}
else {
echo 'verloren';
}
?>
$random = rand(1,100);
if ($random < 5) {
$image1 = 'a.gif';
echo '<td width="20%" height="60" bgcolor="#FFFFFF"><img src="../image/objecten/slotmachine/'.$image1.'" alt="" border="0"></td>';
}
elseif ($random < 12 && $random >= 5) {
$image1 = 'b.gif';
echo '<td width="20%" height="60" bgcolor="#FFFFFF"><img src="../image/objecten/slotmachine/'.$image1.'" alt="" border="0"></td>';
}
elseif ($random < 28 && $random >= 12) {
$image1 = 'c.gif';
echo '<td width="20%" height="60" bgcolor="#FFFFFF"><img src="../image/objecten/slotmachine/'.$image1.'" alt="" border="0"></td>';
}
elseif ($random < 45 && $random >= 28) {
$image1 = 'd.gif';
echo '<td width="20%" height="60" bgcolor="#FFFFFF"><img src="../image/objecten/slotmachine/'.$image1.'" alt="" border="0"></td>';
}
elseif ($random < 67 && $random >= 45) {
$image1 = 'e.gif';
echo '<td width="20%" height="60" bgcolor="#FFFFFF"><img src="../image/objecten/slotmachine/'.$image1.'" alt="" border="0"></td>';
}
else {
$image1 = 'f.gif';
echo '<td width="20%" height="60" bgcolor="#FFFFFF"><img src="../image/objecten/slotmachine/'.$image1.'" alt="" border="0"></td>';
}
$random = rand(1,100);
if ($random < 5) {
$image2 = 'a.gif';
echo '<td width="20%" height="60" bgcolor="#FFFFFF"><img src="../image/objecten/slotmachine/'.$image2.'" alt="" border="0"></td>';
}
elseif ($random < 12 && $random >= 5) {
$image2 = 'b.gif';
echo '<td width="20%" height="60" bgcolor="#FFFFFF"><img src="../image/objecten/slotmachine/'.$image2.'" alt="" border="0"></td>';
}
elseif ($random < 28 && $random >= 12) {
$image2 = 'c.gif';
echo '<td width="20%" height="60" bgcolor="#FFFFFF"><img src="../image/objecten/slotmachine/'.$image2.'" alt="" border="0"></td>';
}
elseif ($random < 45 && $random >= 28) {
$image2 = 'd.gif';
echo '<td width="20%" height="60" bgcolor="#FFFFFF"><img src="../image/objecten/slotmachine/'.$image2.'" alt="" border="0"></td>';
}
elseif ($random < 67 && $random >= 45) {
$image2 = 'e.gif';
echo '<td width="20%" height="60" bgcolor="#FFFFFF"><img src="../image/objecten/slotmachine/'.$image2.'" alt="" border="0"></td>';
}
else {
$image2 = 'f.gif';
echo '<td width="20%" height="60" bgcolor="#FFFFFF"><img src="../image/objecten/slotmachine/'.$image2.'" alt="" border="0"></td>';
}
$random = rand(1,100);
if ($random < 5) {
$image3 = 'a.gif';
echo '<td width="20%" height="60" bgcolor="#FFFFFF"><img src="../image/objecten/slotmachine/'.$image3.'" alt="" border="0"></td>';
}
elseif ($random < 12 && $random >= 5) {
$image3 = 'b.gif';
echo '<td width="20%" height="60" bgcolor="#FFFFFF"><img src="../image/objecten/slotmachine/'.$image3.'" alt="" border="0"></td>';
}
elseif ($random < 28 && $random >= 12) {
$image3 = 'c.gif';
echo '<td width="20%" height="60" bgcolor="#FFFFFF"><img src="../image/objecten/slotmachine/'.$image3.'" alt="" border="0"></td>';
}
elseif ($random < 45 && $random >= 28) {
$image3 = 'd.gif';
echo '<td width="20%" height="60" bgcolor="#FFFFFF"><img src="../image/objecten/slotmachine/'.$image3.'" alt="" border="0"></td>';
}
elseif ($random < 67 && $random >= 45) {
$image3 = 'e.gif';
echo '<td width="20%" height="60" bgcolor="#FFFFFF"><img src="../image/objecten/slotmachine/'.$image3.'" alt="" border="0"></td>';
}
else {
$image3 = 'f.gif';
echo '<td width="20%" height="60" bgcolor="#FFFFFF"><img src="../image/objecten/slotmachine/'.$image3.'" alt="" border="0"></td>';
}
if($image1 == 'a.gif' && $image2 == 'a.gif' && $image3 == 'a.gif') {
echo 'gewonnen';
}
elseif($image1 == 'b.gif' && $image2 == 'b.gif' && $image3 == 'b.gif') {
echo 'gewonnen';
}
elseif($image1 == 'c.gif' && $image2 == 'c.gif' && $image3 == 'c.gif') {
echo 'gewonnen';
}
elseif($image1 == 'd.gif' && $image2 == 'd.gif' && $image3 == 'd.gif') {
echo 'gewonnen';
}
elseif($image1 == 'e.gif' && $image2 == 'e.gif' && $image3 == 'e.gif') {
echo 'gewonnen';
}
elseif($image1 == 'f.gif' && $image2 == 'f.gif' && $image3 == 'f.gif') {
echo 'gewonnen';
}
else {
echo 'verloren';
}
?>
Dit ziet er natuurlijk niet uit... Iemand die me kan helpen om dit wat netter te maken?
Gewijzigd op 30/01/2013 00:06:40 door Richard Hansma
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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
<?php
/* --------------------------------------------------------------------------------------------------------------------------
* Config.
* --------------------------------------------------------------------------------------------------------------------------
*/
# De namen van de afbeeldingen.
$images = array('a', 'b', 'c', 'd', 'e', 'f');
# De hoeveelheid kans iedere afbeelding heeft om gekozen te worden.
$chance = array(4, 7, 16, 17, 22, 34);
/* --------------------------------------------------------------------------------------------------------------------------
* Defaults.
* --------------------------------------------------------------------------------------------------------------------------
*/
# De array waarin we het resultaat gaan opslaan.
$results = array();
/* --------------------------------------------------------------------------------------------------------------------------
* $images array herschrijven.
* --------------------------------------------------------------------------------------------------------------------------
Afbeeldingen toevoegen aan de hand van de hoeveelheid kans de afbeelding heeft om gekozen te worden.
*/
foreach($chance as $id => $amount){
for($i = 0; $i < $amount; $i++){
$images[] = $images[$id];
}
}
/* --------------------------------------------------------------------------------------------------------------------------
* Het resultaat genereren.
* --------------------------------------------------------------------------------------------------------------------------
*/
for($reel = 0; $reel < 3; $reel++){
$results[$reel] = $images[array_rand($images)];
}
/* --------------------------------------------------------------------------------------------------------------------------
* De rollen weergeven.
* --------------------------------------------------------------------------------------------------------------------------
LET OP! Ik heb je inline styling eruit gegooid, dat hoort in je CSS bestand(en) te staan.
*/
foreach($results as $image){
echo '<td class="reel"><img src="../image/objecten/slotmachine/'.$image.'.gif"></td>';
}
/* --------------------------------------------------------------------------------------------------------------------------
* Controleren of er iets is gewonnen.
* --------------------------------------------------------------------------------------------------------------------------
*/
if($result[0] == $result[1] and $result[1] == $result[2]){
// And we have a winner! Alle 3 de resultaten hetzelfde zijn.
}
elseif($results[0] == 'f' and $results[1] == 'f'){
// And we have a winner! De eerste twee f's zijn hetzelfde.
}
else{
// Better luck next time, mate! Helaas pindakaas, we hebben verloren.
}
?>
/* --------------------------------------------------------------------------------------------------------------------------
* Config.
* --------------------------------------------------------------------------------------------------------------------------
*/
# De namen van de afbeeldingen.
$images = array('a', 'b', 'c', 'd', 'e', 'f');
# De hoeveelheid kans iedere afbeelding heeft om gekozen te worden.
$chance = array(4, 7, 16, 17, 22, 34);
/* --------------------------------------------------------------------------------------------------------------------------
* Defaults.
* --------------------------------------------------------------------------------------------------------------------------
*/
# De array waarin we het resultaat gaan opslaan.
$results = array();
/* --------------------------------------------------------------------------------------------------------------------------
* $images array herschrijven.
* --------------------------------------------------------------------------------------------------------------------------
Afbeeldingen toevoegen aan de hand van de hoeveelheid kans de afbeelding heeft om gekozen te worden.
*/
foreach($chance as $id => $amount){
for($i = 0; $i < $amount; $i++){
$images[] = $images[$id];
}
}
/* --------------------------------------------------------------------------------------------------------------------------
* Het resultaat genereren.
* --------------------------------------------------------------------------------------------------------------------------
*/
for($reel = 0; $reel < 3; $reel++){
$results[$reel] = $images[array_rand($images)];
}
/* --------------------------------------------------------------------------------------------------------------------------
* De rollen weergeven.
* --------------------------------------------------------------------------------------------------------------------------
LET OP! Ik heb je inline styling eruit gegooid, dat hoort in je CSS bestand(en) te staan.
*/
foreach($results as $image){
echo '<td class="reel"><img src="../image/objecten/slotmachine/'.$image.'.gif"></td>';
}
/* --------------------------------------------------------------------------------------------------------------------------
* Controleren of er iets is gewonnen.
* --------------------------------------------------------------------------------------------------------------------------
*/
if($result[0] == $result[1] and $result[1] == $result[2]){
// And we have a winner! Alle 3 de resultaten hetzelfde zijn.
}
elseif($results[0] == 'f' and $results[1] == 'f'){
// And we have a winner! De eerste twee f's zijn hetzelfde.
}
else{
// Better luck next time, mate! Helaas pindakaas, we hebben verloren.
}
?>
Gewijzigd op 30/01/2013 13:17:50 door - Mark -
Dennis WhoCares op 30/01/2013 13:02:44:
Je vergeet er één.
Ik dacht met te herinneren dat je alleen met twee won als het om de eerste twee ging?
- Mark - op 30/01/2013 13:20:31:
Ik dacht met te herinneren dat je alleen met twee won als het om de eerste twee ging?
Nee, de volgorde maakt niets uit.
- SanThe - op 30/01/2013 13:09:37:
Je vergeet er één.
Ik neem aan dat de plaatjes wel naast elkaar moeten staan ? :P