Uibreiden if/else loop
Heb even een klein probleempje met een dartspelletje want moet 324 posities in een 2d assenstelsel
van een cijfermatige waarde voorzien zo dat er een bijbehorende score weggeschreven kan worden.
Voorbeeld:
Code (php)
1
2
3
4
5
6
2
3
4
5
6
function telling1() {
if (countx1 == 10 && county1 == 10) { score1 = 50; } else { score1 = 0; } //moet uitgebreidt worden
maxscore = maxscore - score1;
document.getElementById("pg4d1").innerHTML = maxscore;
}
}
if (countx1 == 10 && county1 == 10) { score1 = 50; } else { score1 = 0; } //moet uitgebreidt worden
maxscore = maxscore - score1;
document.getElementById("pg4d1").innerHTML = maxscore;
}
}
Nu is mijn vraag of deze lus uit te breiden is middels een elseif of is er een betere manier want het
wordt wel een lang verhaal?
B.v.d.
Maak eens een kleine uitbreiding zodat we kunnen zien wat de bedoeling is.
Zal er straks even een uitbreiding er bij maken.
Als ik dingen zie als telling1() (een cijfer in een functienaam, een functie zonder parameters), en countx1, county1 en score1 (wederom cijfers in namen van variabelen, die verder niet meegegeven worden aan de functie, dus dit zijn globale(re) variabelen?) dan stemt mij dat niet erg hoopvol.
Ze zijn er wel en een hoop.
Zal hier even een lijst neerzetten' kijk en huiver:
Code (php)
1
2
3
2
3
var vis1; var vis2; var dart1; var dart2; var dart3; var dart4; var countx1 = 0; var tx1 = 0; vxs1 = 0; var county1 = 0; var ty1 = 0; var vys1 = 0; var maxscore = <?php echo $spel;?>;
var maxsets = <?php echo $sets;?>; var maxlegs = <?php echo $legs;?>; countx2 = 0; var tx2 = 0; var vxs2 = 0; var county2 = 0; var ty2 = 0; var vys2 = 0 ; var countx3 = 0;
var tx3 = 0; var vxs3 = 0; var county3 = 0; var ty3 = 0; var vys3 = 0; var tel1 = 0; var tel2 = 0; var tel3 = 0; var score1 = 0; var score2 = 0; var score3 = 0; tw = 0;
var maxsets = <?php echo $sets;?>; var maxlegs = <?php echo $legs;?>; countx2 = 0; var tx2 = 0; var vxs2 = 0; var county2 = 0; var ty2 = 0; var vys2 = 0 ; var countx3 = 0;
var tx3 = 0; var vxs3 = 0; var county3 = 0; var ty3 = 0; var vys3 = 0; var tel1 = 0; var tel2 = 0; var tel3 = 0; var score1 = 0; var score2 = 0; var score3 = 0; tw = 0;
Heb hen er alleen wegens de leesbaarheid achterwege gelaten, sorry. Maar ik ben van origine cnc-programmeur & een cijfer in een functiebenaming komt in mijn werk dagelijks voor. Maar het zijn superglobals , globals, enz. Er zijn zelfs aangemaakte variabelen binnen een functie aanwezig die in een andere functie overgenomen worden.
Toevoeging op 13/01/2019 18:10:55:
@ -SanThe-
Heb me eerst eens wat in gelezen over deze materie want het verhaal was me iets te onduidelijk.
Onderstaande is net getest en werkt.
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
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
function telling1() {
if (countx1 == 10 && county1 == 10) //bullseye waarde 50 punten, posities met de klok mee
{
score1 = 50;
}
else if (countx1 == 9 && county1 == 9) //single bull waarde 25 punten begin
{
score1 = 25;
}
else if (countx1 == 10 && county1 == 9)
{
score1 = 25;
}
else if (countx1 == 11 && county1 == 9)
{
score1 = 25;
}
else if (countx1 == 11 && county1 == 10)
{
score1 = 25;
}
else if (countx1 == 11 && county1 == 11)
{
score1 = 25;
}
else if (countx1 == 10 && county1 == 11)
{
score1 = 25;
}
else if (countx1 == 9 && county1 == 10)
{
score1 = 25;
}
else if(countx1 == 9 && county1 == 11) //einde single bull
{
score1 = 25;
}
else {
score1 = 0;
}
maxscore = maxscore - score1;
document.getElementById("pg4d1").innerHTML = maxscore; if(maxscore == 0) { endscore(); } else { oldposv(); show3(); timex2(); }
if (countx1 == 10 && county1 == 10) //bullseye waarde 50 punten, posities met de klok mee
{
score1 = 50;
}
else if (countx1 == 9 && county1 == 9) //single bull waarde 25 punten begin
{
score1 = 25;
}
else if (countx1 == 10 && county1 == 9)
{
score1 = 25;
}
else if (countx1 == 11 && county1 == 9)
{
score1 = 25;
}
else if (countx1 == 11 && county1 == 10)
{
score1 = 25;
}
else if (countx1 == 11 && county1 == 11)
{
score1 = 25;
}
else if (countx1 == 10 && county1 == 11)
{
score1 = 25;
}
else if (countx1 == 9 && county1 == 10)
{
score1 = 25;
}
else if(countx1 == 9 && county1 == 11) //einde single bull
{
score1 = 25;
}
else {
score1 = 0;
}
maxscore = maxscore - score1;
document.getElementById("pg4d1").innerHTML = maxscore; if(maxscore == 0) { endscore(); } else { oldposv(); show3(); timex2(); }
Heb het idee dat als dit 3x moet wegens 3x een telling het een te lang verhaal wordt. Zit meer aan array of een functie te denken.
Gewijzigd op 13/01/2019 18:04:37 door Yoop Overmaat
goniometrie hier niet bij uitstek geschikt voor om te bepalen waar een pijltje in een dartbord is beland?
Met behulp van hoek en straal weet je in welk vakje je zit? Je hoeft "alleen" maar de intervallen te definiëren dan?
Is Met behulp van hoek en straal weet je in welk vakje je zit? Je hoeft "alleen" maar de intervallen te definiëren dan?
Gewijzigd op 13/01/2019 22:02:28 door Thomas van den Heuvel
Het was in eerste instantie ook het idee maar door een hoop bugs in de gebruikte script talen binnen de
configuratie niet te doen wegens de onoplosbare conflicten die er ontstaan plus aanwezige technische
beperkingen, de loop van richtmiddelen middels een javascript animatie op een x & y-as versus de
symmetrie van een dartbord is bijvoorbeeld ook een onmogelijk iets. Dat is de reden van deze opzet.