Is mijn code bijna goed?
En ik weet eigenlijk niet of ik nu helemaal fout zit of dat het een klein dingetje is dat fout is.
Graag tips, maar geen oplossingen :)
Bij drie de zelfde plaatjes moet de tekst jackpot verschijnen.
Else 'nog een keer';
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
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
<?php
$fruitkast = array(1 => "http://i332052.iris.fhict.nl/sinas.jpg", 2 => "http://i332052.iris.fhict.nl/appel1.jpg", 3 => "http://i332052.iris.fhict.nl/kers1.jpg");
$willekeurig1 = mt_rand (1,3);
$willekeurig2 = mt_rand (1,3);
$willekeurig3 = mt_rand (1,3);
$fruit1 = $fruitkast[$willekeurig1];
$fruit2 = $fruitkast[$willekeurig2];
$fruit3 = $fruitkast[$willekeurig3];
$a = '<img src="'.$fruit1.'">';
$b = '<img src="'.$fruit2.'">';
$c = '<img src="'.$fruit3.'">';
$totaal = $a.''.$b.''.$c;
echo $totaal;
if ($totaal === true) {
echo 'jackpot';
}
else (
echo 'nog een keer';
)
?>
$fruitkast = array(1 => "http://i332052.iris.fhict.nl/sinas.jpg", 2 => "http://i332052.iris.fhict.nl/appel1.jpg", 3 => "http://i332052.iris.fhict.nl/kers1.jpg");
$willekeurig1 = mt_rand (1,3);
$willekeurig2 = mt_rand (1,3);
$willekeurig3 = mt_rand (1,3);
$fruit1 = $fruitkast[$willekeurig1];
$fruit2 = $fruitkast[$willekeurig2];
$fruit3 = $fruitkast[$willekeurig3];
$a = '<img src="'.$fruit1.'">';
$b = '<img src="'.$fruit2.'">';
$c = '<img src="'.$fruit3.'">';
$totaal = $a.''.$b.''.$c;
echo $totaal;
if ($totaal === true) {
echo 'jackpot';
}
else (
echo 'nog een keer';
)
?>
Je code ziet er in eerste instantie goed uit, alleen regel 20 vind ik apart.
Je vergelijkt namelijk een string ($totaal) met een boolean.
DIt doe je met behulp van '===' wat betekent 'is identiek aan'. Wat in jou code nooit zal gebeuren aangezien een string zeker geen boolean is.
Misschien is een betere oplossing:
Code (php)
Gewijzigd op 22/10/2014 23:51:07 door Patrick Bergman
hoe kan ik die $a $b $c vergelijken.
ik weet wel hoe ik $a en $b moet vergelijken maar die derde $c
hoe kun je drie of meerdere strings vergelijken met if?
zie de code in mijn voorbeeld. Eigenlijk vrij simpel
Eerst wordt er gekeken of a en b aan elkaar gelijk zijn, waarna gekeken wordt of a en c aan elkaar gelijk zijn
Als a == b en a == c dan is b == c.
wat er in mijn voorbeeld staat is:
als a gelijk is aan b EN a gelijk is aan c
dan jackpot
anders nog een keer
ik was al bij geweest $a == $b&& $c alleen die tweede == had ik nog niet door.
tevens dacht ik dat $totaal === misschien de totaale code ging vergelijken en dus dan op een true of false uit zou komen.
maar het werkt wel idd ;)
for loop.
Ook zou ik gewoon met een lijst werken (array zonder expliciete keys). Dat de keys bij 0 beginnen is meer iets wat je jezelf moet aanleren, want je kan er echt niet altijd op deze manier omheen werken (pas dan wel de rand range aan tot 0 tot 2).
Ook zou ik regels 4-6 en 8-10 en 12-14 samenvoegen tot 1 regel. Dat kan makkelijk en bespaard je een hoop geheugen gebruikt (variabelen zijn een van de zwakke plekken in PHP).
Als laatste raad ik je aan je code makkelijk te indenten. Een algemene conventie is om na een { met 1 tab of 4 spaties in te springen. Dit houdt je code, vooral wanneer je straks structures gaat mengen, overzichtelijk.
Het eerste wat opvalt is dat je een groot gedeelte 3 keer uitvoert. Dit kun je dus vervangen met een Ook zou ik gewoon met een lijst werken (array zonder expliciete keys). Dat de keys bij 0 beginnen is meer iets wat je jezelf moet aanleren, want je kan er echt niet altijd op deze manier omheen werken (pas dan wel de rand range aan tot 0 tot 2).
Ook zou ik regels 4-6 en 8-10 en 12-14 samenvoegen tot 1 regel. Dat kan makkelijk en bespaard je een hoop geheugen gebruikt (variabelen zijn een van de zwakke plekken in PHP).
Als laatste raad ik je aan je code makkelijk te indenten. Een algemene conventie is om na een { met 1 tab of 4 spaties in te springen. Dit houdt je code, vooral wanneer je straks structures gaat mengen, overzichtelijk.
Echter vraag ik me af, wil je niet alleen bij een bepaalde score de jackpot alleen uitgekeerd wordt? Nu keer je de jackpot uit als je 3 dezelfde plaatje hebt.
Wat je nu dus aangeeft is:
3x sinas = prijs
3x appel = prijs
3x kers = prijs
Wellicht kun je dus net zo goed vergelijken met waarvan jij vindt dat er een jackpot is, en wellicht (ter uitbreiding) kun je halve prijzen gaan uitkeren.
Code (php)
En inderdaad zoals wouter aangeeft kun je nu met behulp van een loop en alles in 1 regel plakken gelijk de link van het plaatje aanmaken.
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
<?php
// Loop begin bij 1 <= 3
for($index = 1; $index <= 3; $index++)
{
$willekeurig[$index] = "";
}
?>
// Loop begin bij 1 <= 3
for($index = 1; $index <= 3; $index++)
{
$willekeurig[$index] = "";
}
?>
Let wel op, bouw eerst je loop in! Daarna pas code gaan samenvoegen...
het was even voor mijn eigen duidelijkheid en kijken of het wel kon.
Met die forloop...
dat gaat me nog een beetje snel maar ik doe mijn best... :)
de loop doet dit:
$willekeurig[1]
$willekeurig[2]
$willekeurig[x]
x is dan het $index getal.