Lost Viking Help needed

Can someone please help me with the Lost Viking Code Challenge? I’m not sure how to make the character continuously go south. Here is the code I have written.

while steps <= 35:

# Take the next step:
self.moveXY(steps * X_PACE_LENGTH, sideSteps * Y_PACE_LENGTH)

# Increment steps and sideSteps as appropriate, taking into account the special rules.
steps += 1
if steps% (SWITCH+1) == 0:
    self.say("Reached SWITCH point")
    sideSteps -= 1
else:
    sideSteps += 1

I used a new variable to change the direction of movement

s=1

while steps <= 35:
    
    # Take the next step:
    self.moveXY(steps * X_PACE_LENGTH, sideSteps * Y_PACE_LENGTH)
    
    # Increment steps and sideSteps as appropriate, taking into account the special rules.
    
    
    if steps%SWITCH ==0:
        s=-s

Well, the problem is that the code will only execute once, meaning the next step is south, and the step after is north again. This is the problem I wish to solve, but thank you for your reply anyway!

Use sideSteps+=s and your problem is solved.

 steps++;
    if(steps % (SWITCH + 1) === 0) {
        s=-s;
        this.say("SWITCH");
    }
    if(steps % (SKIP + 1) === 0) {
        if(s % 2 === 0) {
            s = s/2;
            this.say("SKIP OFF");
        }
        else {
            s *= 2;
            this.say("SKIP ON");
        }
    }
    sideSteps += s;

What’s wrong with my code, can’t really catch the problem

You must sideStep TWICE for that step (this is called SKIPping).

    
    if steps%SKIP ==0:
       sideSteps+=s
    sideSteps+=s
    steps += 1
   

In my programm is steps += 1 in another place , I can use if steps%SKIP ==0:

Thank you very much, i’ve figured out i misunderstood the skip mechanics. I had to double-step only one, not untill i reached the next “SKIP” point.

Hi,

I’m having trouble with my code. At the moment my switch doesn’t work. Here is my code

// Take the next step:
    
    hero.moveXY(steps * X_PACE_LENGTH, sideSteps * Y_PACE_LENGTH);
    hero.say("Steps:");
    hero.say(steps);
    hero.say("sideSteps:");
    hero.say(sideSteps);
    // Increment steps and sideSteps as appropriate, taking into account the special rules.
    
    steps+= 1;
    sideSteps+= 1*PosNeg;
    
    
    if(steps % 6 === 0 ){
        PosNeg == PosNeg*-1;
        }
    
    
    
    if(steps % 9 === 0){
        sideSteps+= PosNeg*1;
    }
    
    if(sideSteps > 10){
     sideSteps = 1;   
    }
    
    if(sideSteps < 1){
        sideSteps = 10;
    }
}

If you could help me that would be great.

Thanks!

IDK IDK IDK IDK IDK IDK IDK IDK IDK IDK IDK IDK okay

Please. Don’t revive dead topics unless you need help.

1 Like