-1

i don't know why doesn't this work but i think probably because of the statement, Or the testRed and testGreen function conflict with each other. If so, can you please suggest a better way of doing it. Code:

var greenSoldier = 5;
var redSoldier = 5;
var territory = ['green', 'green', 'neutral', 'neutral', 'green', 'neutral', 'neutral', 'neutral', 'neutral', 'neutral', 'neutral', 'red', 'neutral', 'neutral', 'red', 'red'];
var soldier = [4, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 2, 0, 0, 2, 4];
var turn = 'green';

function testGreen(itemNumber, soldiers, itemName) {
    if (greenSoldier > 0 && territory[itemNumber] == 'green') {
        var unchanged = soldier[itemNumber];
        var changed = unchanged + 1;
        soldier[itemNumber] = changed;
        $(itemName).html(soldier[itemNumber]);
        greenSoldier -= 1;
        console.log(greenSoldier);
    } else if (greenSoldier > 0 && territory[itemNumber == 'neutral'] && turn == 'green') {
        soldier[itemNumber] += 1;
        console.log(soldier[itemNumber]);
        $(itemName).html(soldier[itemNumber]);
        greenSoldier -= 1;
        console.log(greenSoldier);
    }
}

function testRed(itemNumber, soldiers, itemName) {
    if (redSoldier > 0 && territory[itemNumber] == 'red') {
        var unchanged = soldier[itemNumber];
        var changed = unchanged + 1;
        soldier[itemNumber] = changed;
        $(itemName).html(soldier[itemNumber]);
        redSoldier -= 1;
        console.log(redSoldier);
    } else if (redSoldier > 0 && territory[itemNumber == 'neutral'] && turn == 'red') {
        soldier[itemNumber] += 1;
        $(itemName).html(soldier[itemNumber]);
        redSoldier -= 1;
        console.log(redSoldier);
    }
}
$('#item4').click(

function () {
    testGreen(3, soldier[3], '#item4');
    testRed(3, soldier[3], '#item4');
})
3
  • Can you add a fiddle? Commented Nov 24, 2013 at 7:09
  • 4
    This question appears to be off-topic because it is about spotting a typo. Commented Nov 24, 2013 at 7:10
  • now i realise it's a typo, thanks Commented Nov 24, 2013 at 7:48

3 Answers 3

3

Try using territory[itemNumber] == 'neutral' instead of territory[itemNumber == 'neutral'] in all occurrence in your code

Sign up to request clarification or add additional context in comments.

Comments

1
else if (redSoldier > 0 && territory[itemNumber == 'neutral'] && turn == 'red')

You goofed up your array access.

else if (redSoldier > 0 && territory[itemNumber] == 'neutral' && turn == 'red')

Comments

0

Make sure that your jquery is properly installed. In javaScript, you can declare an array in this manner:

var soldier=new Array(4, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 2, 0, 0, 2, 4);

Then on your testGreen/testRed function, try to consider your soldier parameter as an array:

function testRed(itemNumber, soldiers, itemName)

{

//action here.

}

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.