Voor school leren we nu javascript. Hier had ik al wel wat ervaring mee dus het gaat me vrij makkelijk af. Tot ik toch tegen een probleem aanliep waar ik na uren pielen nog steeds niet uit ben gekomen. Op internet (w3schools enzo) kan ik er niks over vinden en op GoT vond ik dit draadje wat wel enigszins wat ideeen naar bovenbracht maar deze hebben tot nu toe niet geholpen.
Het gaat hier om een proggie dat random rekenvragen stelt; je gaat pas door als een vraag goed is beantwoord met een totaal van vijf vragen. Het probleem is echter dat de variabelen die in de functie bereidVoor() gedeclareerd worden niet gebruikt kunnen worden in de functie vraag(). In FireFox krijg ik foutmeldingen dat variabelen undefined zijn. Misschien erg n00bisch, maar dit probleem ben ik nog nooit tegen gekomen.
Heeft iemand hier een oplossing voor?
JavaScript:
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
| var vraagNummer = 1; var totaalPogingen = 1; //functie voor het voorbereiden op een vraag; variabelen setten en nieuwe randInts maken function bereidVoor() { //functie voor het random genereren van een getal, met mee te geven toe hoe ver ie mag gaan function genereerGetal(limiet) { randInt = Math.random(); getal = randInt * limiet; getal = Math.floor(getal); return(getal); } //vars setten var getal0 = genereerGetal(10); var getal1 = genereerGetal(10); var operatorInt = genereerGetal(3); var pogingen = 1; var antwoordGoed = false; //random operator generaten if(operatorInt == 0){ var operator = "+"; var antwoord = getal0 + getal1; } else if(operatorInt == 1){ var operator = "-"; var antwoord = getal0 - getal1; } else if(operatorInt == 2){ var operator = "x"; var antwoord = getal0 * getal1; } else if(operatorInt == 3){ var operator = ":"; var antwoord = getal0 / getal1; } } //antwoord-checkende lus als functie function vraag() { while (antwoordGoed != true) { var invoer = prompt(vraagNummer + "\nHoeveel is " + getal0 + " " + operator + " " + getal1 + "?",""); if (invoer == antwoord) { antwoordGoed = true; document.write('<br><br>Vraag 1 correct beantwoord! Goed zo! En dat in maar ' + pogingen + ' keer!'); document.write('<br><a href=\'javascript:top.location=window.location\'>Speel nogmaals</a>'); volgendeVraag(); } pogingen++; document.write("Oeps, foutje! " + invoer + " is helaas niet het goede antwoord..!<br>"); } } function volgendeVraag() { if(vraagNummer <= 4) { vraagNummer++; totaalPogingen = totaalPogingen + pogingen; bereidVoor(); vraag(); } else if(vraagNummer > 5) { document.write('<br><br><br><strong>Je hebt alle vragen succesvol beantwoordt! En dat in slechts ' + totaalPogingen + ' keer!'); exit(); } else { document.write('<br><br><br><strong>Er is iets heeeeeeel erg fout gegaan! Misschien een hacker :P ?'); } } bereidVoor(); vraag(); |
Het gaat hier om een proggie dat random rekenvragen stelt; je gaat pas door als een vraag goed is beantwoord met een totaal van vijf vragen. Het probleem is echter dat de variabelen die in de functie bereidVoor() gedeclareerd worden niet gebruikt kunnen worden in de functie vraag(). In FireFox krijg ik foutmeldingen dat variabelen undefined zijn. Misschien erg n00bisch, maar dit probleem ben ik nog nooit tegen gekomen.
Heeft iemand hier een oplossing voor?