Functie werkt niet naar behoren met subtraction...
Uit verveling ben ik begonnen met een JS dart-script te bouwen. Het is nog erg simpel en zal later misschien worden uitgebreid met PHP. Maar voor het zover is, moet ik eerst een oplossing vinden/krijgen voor mijn probleem.
Stel: Ik speel een 501 potje en ik gooi 110. Dan hoor ik 391 over te houden en dat is ook zo. Maar dan het vreemde, zodra ik dan 40+ gooi, geeft ie mijn error melding aan, dat het niet mogelijk is... Nu ben ik er dus achter dat het laatste getal niet wordt meegeteld... Want zodra ik op 31 sta bijvoorbeeld, kan ik niet hoger dan 3 gooien.
Hier het linkje naar mijn code: JS Bin
Hopelijk kunnen jullie me (op weg) helpen!
Gewijzigd op 19/02/2014 15:57:10 door Richard Hansma
Plaats je code even hier. Op die JSBin krijg ik in elk geval niets te zien, dus wordt helpen ook onmogelijk.
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
var i = 0;
function dartScore(value) {
if (event.which == 13 || event.keyCode == 13) {
var y = document.getElementById("output").innerHTML;
var x = value;
var z = y - x;
if (x == 159 || x == 162 || x == 163 || x == 165 || x == 166 || x == 168 || x == 169 || x == 172 || x == 173 || x == 175 || x == 176 || x == 178 || x == 179 || x > 180 || y < x) {
alert("Dit is niet mogelijk, vul het opnieuw in!");
} else {
i++;
document.getElementById("output").innerHTML = z;
if (z === 0) {
if (z < 0) {
z = 0;
}
if (i == 3) {
document.getElementById("output").innerHTML = "Speler 1 heeft gewonnen met een 9 darter!!!!!";
} else {
document.getElementById("output").innerHTML = "Speler 1 heeft gewonnen in " + i + " beurten!";
}
}
}
}
}
function dartScore(value) {
if (event.which == 13 || event.keyCode == 13) {
var y = document.getElementById("output").innerHTML;
var x = value;
var z = y - x;
if (x == 159 || x == 162 || x == 163 || x == 165 || x == 166 || x == 168 || x == 169 || x == 172 || x == 173 || x == 175 || x == 176 || x == 178 || x == 179 || x > 180 || y < x) {
alert("Dit is niet mogelijk, vul het opnieuw in!");
} else {
i++;
document.getElementById("output").innerHTML = z;
if (z === 0) {
if (z < 0) {
z = 0;
}
if (i == 3) {
document.getElementById("output").innerHTML = "Speler 1 heeft gewonnen met een 9 darter!!!!!";
} else {
document.getElementById("output").innerHTML = "Speler 1 heeft gewonnen in " + i + " beurten!";
}
}
}
}
}
if (z === 0) {
if (z < 0) {
Als z nul is kan ie nooit ook nog kleiner dan nul zijn.
Dat moet natuurlijk zijn.
Maar dat lost helaas mijn probleem nog niet op...
Waar komt event vandaan op regel 3?
Ook dan zal z daar nooit kleiner dan nul zijn.
Beetje zinloos dus.
Erwin H op 19/02/2014 17:50:37:
Waar komt event vandaan op regel 3?
Ik nam aan dat ik dat gewoon kan gebruiken. Zodat de functie pas werkt wanneer ik op enter druk. Verder niet bij nagedacht omdat het ook werkt...
- SanThe - op 19/02/2014 17:59:51:
if (z <= 0) {
Ook dan zal z daar nooit kleiner dan nul zijn.
Beetje zinloos dus.
Ook dan zal z daar nooit kleiner dan nul zijn.
Beetje zinloos dus.
Ik heb het weggehaald, door de 'y < x' kan het niet minder dan 0 zijn.
Richard Hansma op 19/02/2014 18:10:56:
Ik nam aan dat ik dat gewoon kan gebruiken. Zodat de functie pas werkt wanneer ik op enter druk. Verder niet bij nagedacht omdat het ook werkt...
Erwin H op 19/02/2014 17:50:37:
Waar komt event vandaan op regel 3?
Ik nam aan dat ik dat gewoon kan gebruiken. Zodat de functie pas werkt wanneer ik op enter druk. Verder niet bij nagedacht omdat het ook werkt...
Bij mij in elk geval niet. FF begint te mekkeren dat event niet gedeclareerd is (en wat mij betreft klopt dat).
Edit: Overigens geeft JSlint aan dat 'event' globaal is.
Gewijzigd op 19/02/2014 19:13:30 door Richard Hansma
Events zijn global maar niet het event op zich zelf.
Dus je zal op bepaalde elementen altijd een eventListener moeten zetten.
Iemand misschien een goede tutorial? Ik zat die van Jeffrey Way te kijken, alleen na de 1e les krijg ik helaas alleen maar 'page not found' bij de rest.