Mad Pod Racing - Puzzle Discussion

Hello, I don’t understand how I’m supposed to implement steering ?
I tried to understand this guide Understanding Steering Behaviors: Seek but I’m missing something so if someone could confirmate or deny what I understood It would be nice.
In this equation : desired_velocity = normalize(target - position) * max_velocity
target is the checkpoint , position is the pod current position and normalize is a function that calculate the unit vector and max_vel is 100 because it’s the thrust ?
In this equation : steering = desired_velocity - velocity
velocity is the current velocity of the pod, I have a doubt on how to calculate it, for me there is two possibility either it’s the thrust so you calculate it like this :

curr_velocity = (np.cos(next_checkpoint_angle)*thrust,np.sin(next_checkpoint_angle))

or like this :

curr_velocity=curr_pod_poss-prev_pod_poss

then you just calculate the next_position with this :

velocity = curr_velocity + steering
position = position + velocity

I’m doing this but my simulation isn’t really changing much.

I’m in Bronze league

1 Like

How do I get the previous x and y position of my pod?
I want to calculate the velocity with the previous x and y position.

For the first turn, previous x and previous y are the same as current x and current y, because the pod has not moved.
For subsequent turns, previous x = current x of last turn, previous y = current y of last turn. You may use some variables to store those values yourself.

It’s because at the bottom there is a timer and the timer is set to 1 second. To change it, some reason you have to change the destination for what you set or/and change the thrust.

I don’t quite understand how scoring works. How is my score calculated? It doesn’t seem to simply be the ratio of wins to losses. Also, does it just play 40 matches immediately when you submit and then you have to submit again to play 40 more? I will admit that at first I thought the matches I was watching were going on in real time and was confused as to why I could win a lot in a row without moving up the leaderboard–but from what I can tell they are replays of matches that have already taken place? so is it just 40 matches each time you submit?

1 Like

Please refer to this post for more information and relevant links: https://www.codingame.com/forum/t/how-is-the-rank-for-single-finished-bot-programming-computed/194147

Oh, thanks, that helps!

A post was merged into an existing topic: How is the rank for single finished bot-programming computed?

Hello! i am trying to calculate my current trajectory angle in contrast to the direction the pod is moving in is there a way i could calculate this?
any help would be much appreciated

Please read the post-mortem by Magus as linked on the cover page of the game.

Hi, I’ve beaten the boss in Silver league but got stuck there.
I always have the message “you will be promoted to golden league in …” and timer keeps resetting… for more than a day now.
Any clue please?
Thanks.

Please refer to the discussion here: https://www.codingame.com/forum/t/bug-report-league-not-promoted-in-bot-programming-game/194995

If you still aren’t promoted after re-submitting your code, write a post in the above thread to let CG know so that they may take action to fix the issue for you.

Thanks. I will check that.

i’m doint the task now in c++ and i can’t understand, bc i thought it would teach me first about if and else loops. i did it that way, but it also say that i need use cout. i thought that i need use it only, but i still cant finish it. What should i do, if it doesn’t teach…

This website assumes you have basic coding knowledge already. If you don’t, it’s better for you to learn it elsewhere before coming back here to practise.

Hi, do you know why i get an error saying “this.nextAngleCheckpoint is not a function” (currently in Gold) when i continue using the exact same class as my previous code to get Gold and from Bronze to Gold they were no any problem ? This in in JS and both are in the same class.
Part of the code :

nextAngleCheckpoint (distance) {
if (distance > 1800) {
return 1;
}

    let diffCP = difference(this.nextCheckpoint, this.currentPosition);
    let vectorCP = new Vector(diffCP.x, diffCP.y);
    let diffNP = difference(this.nextNextCheckpoint, this.nextCheckpoint);
    let vectorNP = new Vector(diffNP.x, diffNP.y);
    let angle = Vector.angleBetween(vectorCP, vectorNP) * 180 / Math.PI;

    return (180 - angle) / 180;
}

speedMultiplier (distance, angle) {
    let coeff1 = this.speedAngleMultiplier(angle);
    //let coeff2 = this.nextAngleCheckpoint(distance);

    return coeff1 //* coeff2;
}

The problem comes from the line : let coeff2 = this.nextAngleCheckpoint(distance);

Different inputs are provided in Gold league. You have to reset the code to see the new template, or refer to the explanation of what the inputs are in the statement.

I changed it, but i kept the parts that still are useful in this new league. I’m really not sure that it comes from inputs, because these functions only makes calculations to output the speed. I’ve been looking for the problem but they are no problems to me.

Hi,
is there someone who know how to compute this ?
thrust → pixels/second
I think it will be very useful, thx !

So, anyone knows why they change the name from Coders Strike Back to a rather less interesting name Mad Pod Racing? It can’t be copyright strikes right?