Mad Pod Racing - Puzzle Discussion

You may read the previous discussion above, which contains a lot of hints and things to try.

I appreciate the reply, but is there anything specific? There are literally years of messagesā€¦
Previous leagues, the improvements were singular taking into account whatever is being introducedā€¦ but from Bronze to Silver Iā€™m doing like 5 more things and still failing.
The thing that was introduced was collision, so should I just focus on that? Or is it supposed to be a marked difference from Bronze onwards?!

Thank you for your reply, with a more specific question this time.

I agree itā€™s difficult to read through all the messages, but you can always use the search function at the upper right corner of the forum. Try searching ā€œsilverā€ in this post, which will lead to some useful advice. You may also try ā€œcollisionā€ or other keywords of your choice.

Many thanks - your last reply actually highlighted to me that the forum can be shown in different ways. I was going via Bot Programming > Mad Pod Racing > Discussion (i.e., the links used when going to view Leaderboard after sending to Arena).
But when you mentioned the search function, I realised you had a different view (Community > Forum > Mad Pod Racing - Puzzle Discussion) and this function is invaluable to get to the keywordsā€¦

1 Like

Not sure if anyone can help hereā€¦ but thereā€™s a user called ā€œmattieuā€ that is holding the #1 spot in Bronze with a score of 25+points. He is seemingly stuck, constantly submitting to the Arena, and it restarts the races, so they never progress further.
I donā€™t know if this is on purpose (bot?), or thereā€™s some process actually stuck . . .

It does look like the process gets stuck - the battles completion percentage has been the same for a few minutes. You may report the issue on #bug-report channel on CodinGameā€™s Discord chat.

OK done - I joined the Discord and reported the issue - one of the mods have said theyā€™d take a look at it.

1 Like

I am wondering to do the training of an AI model you have a simulation that you run locally or you do the training directly on the website ?

Good idea (stuck on bronze)

Guys there is a difference between boost and thrust 100 ? because looking the race data, thrust is always 100

The first boost is fast (equivalent to 450 if I remember correctly) but once youā€™ve used your boost any further boosts are just converted to max thrust (100 / 200 depending on league).

1 Like

Hello,

I need some help

for the scond boss, I have to use nextCheckpointAngle and nextCheckpointDist but theay arenā€™t in the input (x, y, next_checkpoint_x, next_checkpoint_y= [int(i) for i in input().split()]).
I think itā€™s maybe a mistake.

Hello everyone,

I am in bronze league and I am trying to predict enemy pod movement so I can block its way and win time.

However, I am failing to even properly calculate my speed. Here is my code:

[Mod edit: Please avoid posting codes on the forum.]
On first turn, the speed is correctly calculated, but on subsequent turns, the actual acceleration of pod is starting to deviate from thrust.

Are there any reliable formulas to calculate the speed of pod in this game? How can I fix my estimate_speed function?

@5DN1L, the code I posted, it is not the real code of my bot, it is a code specifically written to highlight the problem.

No worries though, I hope that my questions are clear even without code.

  1. Why thrust != acceleration?
  2. Any reliable formulas?

You can still show your calculation formulas for others to comment on without showing them as code.

Thank you. Here are my formula (for simplicity we move strictly to the right, so it is an one-dimensional case).

Let speed be the speed at the current turn.
Let thrust be the thrust.
Let speed_next be the speed we are trying to predict.
Then the formula is: speed_next = speed + thrust

Examples of using the formula:

When speed = 0 and thrust = 100, then speed_next = 100
When speed = 100 and thrust = 100, then speed_next = 200
When speed = 185 and thrust = 100, then speed_next = 285

What we have in reality:

speed = 0, thrust = 100 => speed_next = 100
speed = 100, thrust = 100 => speed_next = 185
speed = 185, thrust = 100 => speed_next = 257
speed = 661, thrust = 100 => speed_next = 661

What are the forumlas used by authors?

There is a friction multiplier of .85 every turn to stop the speeds getting too high. Itā€™s in the advanced rules section (I canā€™t remember if that is visible in bronze - I know a lot of things are simplified before gold). You can get past bronze completely ignoring the enemy / collisions and just focusing on your racing line.

Coders Strikes Back is a good description of all the required physics if you do want all the information before getting to the higher leagues.

1 Like

So, @RoboStac, if I understood correctly, the formula for the simplest movement (in one direction only) is:

movement_speed = starting_speed + thrust
speed_after_friction = movement_speed * 0.85, rounded down

Some calculations:

turn_number  starting_speed  movement_speed  speed_after_friction
1            0               100             85
2            85              185             157
3            157             257             218
...
31           559             659             560
32           560             660             561
33           561             661             561

This matches actual results. Cool, thank you!

I have a bit of trouble calculating angles.

For example, debug output for first turnā€¦

My pod location: (13406, 2239)
Next checkpoint location: (6581, 7817)
Next checkpoint distance by referee: 8814
Calculated distance: 8814
Next checkpoint angle by referee: 0
Calculated angle: 141

Several turns laterā€¦

My pod location: (6925, 7530)
Next checkpoint location: (7473, 1343)
Next checkpoint distance by referee: 6211
Calculated distance: 6211
Next checkpoint angle by referee: 134
Calculated angle: 275
My pod location: (6419, 7904)
Next checkpoint location: (7473, 1343)
Next checkpoint distance by referee: 6645
Calculated distance: 6645
Next checkpoint angle by referee: 120
Calculated angle: 279
My pod location: (5889, 8227)
Next checkpoint location: (7473, 1343)
Next checkpoint distance by referee: 7064
Calculated distance: 7064
Next checkpoint angle by referee: 106
Calculated angle: 283

And a bit more turns laterā€¦

My pod location: (4243, 6831)
Next checkpoint location: (7473, 1343)
Next checkpoint distance by referee: 6368
Calculated distance: 6368
Next checkpoint angle by referee: 1
Calculated angle: 300

Note that at first turn checkpoint was to the left and below my pod, and in last example checkpoint is above and to the right, but referee says almost the same angleā€¦ I do not understand what is happening?

I think I got it, I need to calculate angle between the pod and the next checkpoint and the angle between movement vector and the X-axis and subtract one from another to get next checkpoint angle.

But how I calculate angle between movement vector and the X-axis? I have troubles predicting the movement vector next turn