Coders Strike Back - Puzzle Discussion

how to do you make it turn from the middle of the map. can you please give me an example code?

to turn the pod towards the middle of the map you just choose the middle of the map as the target so: print(â8000 4500 thrustâ). I do this like 2500 from the next checkpoint away if the angle towards the current checkpoint is low.

I have a pretty nice optimal path for my pod (using bezier curves), but with collisions, itâs pretty random if i win or not.

A tip how to use the enemy position to counter that?

Hope someone can help with this. Inputs are refreshing late. When my bot arrived to a checkpoint it did not receive the new values for the next checkpoint. The new values arrive like 1000 units distance later. That results in my bot late modified the value thrust to 0 and turns late.

Make sure the turn youâre looking at in the output is the same turn youâre looking at on the replay. Check your position versus the position on the graphical screen to verify.

Thanks for your reply. My position is the same with the graphical screen position no problem with that. What I have noticed is when Boss3 arrived to a checkpoint his angle line in red immediately change to the next Checkpoint thats not happen to my bot. Here my code:

``````Module Player
' Auto-generated code below aims at helping you parse
' the standard input according to the problem statement.

Sub Main ()
Dim count as Integer = 0
Dim inputs as String()
' game loop
While True

Dim x as Integer
Dim y as Integer
Dim thrust as Integer
Dim nextCheckpointX as Integer ' x position of the next check point
Dim nextCheckpointY as Integer ' y position of the next check point
Dim nextCheckpointDist as Integer ' distance to the next checkpoint
Dim nextCheckpointAngle as Integer ' angle between your pod orientation and the direction of the next
x = inputs(0)
y = inputs(1)
nextCheckpointX = inputs(2)
nextCheckpointY = inputs(3)
nextCheckpointDist = inputs(4)
nextCheckpointAngle = inputs(5)

Dim opponentX as Integer
Dim opponentY as Integer
opponentX = inputs(0)
opponentY = inputs(1)

if nextCheckpointAngle > 90 or nextCheckpointAngle < -90 then
thrust = 0
else
thrust = 100
end if
if count < 1 and nextCheckpointDist > 5000 and nextCheckpointAngle = 0 then
Console.WriteLine(nextCheckpointX & " " & nextCheckpointY & " " & "BOOST")
count = count + 1
end if
if nextCheckpointDist < 1500 then
thrust = 0
end if

Console.WriteLine(nextCheckpointX & " " & nextCheckpointY & " " & thrust)

End While
End Sub
End Module``````

When printing boost you print two lines (the boost one and the normal one) for one set of input, so after that point your input / output are out of sync.

2 Likes

What he said. Also, the red line doesnât tell you the next checkpoint, it tells you where the bot is currently trying to aim (i.e. your previous output).

1 Like

Replay Settings -> Debug ON gives you some debuging outputs, is that what you are looking for?

1 Like

I am trying to implement a better algorithm for this game than the one I have currently and I try to follow the advices from Magus on his page: http://files.magusgeek.com/csb/csb.html
But what is strange is that Magus seems to be aware of some information I canât find in the description of the rules. For example:

• where does this limit of rotation of 18d max is coming from? I canât see it anywhere in the description.
• How did he guess the logic about collision? There are no explanation neither in the description.
So where can I find these information?

NB: --*-

The pod will pivot to face the destination point by a maximum of 18 degrees per turn and will then accelerate in that direction.

Thatâs from the gold/legend league rules. I reversed these 18Â° myself while being in silver
The physics are poorly described.
The formulas are from reverse engineering or asking the staff, I donât know. Magus himself writes

The collisions in this contest are perfect elastic collisions with a half-momentum of 120. You didnât understand? Me neither. Frankly I wouldâve never found this code without the help of Neumann and pb4608.

Mean Max is the first contest, where you finally get real code for the physics engine and didnât have to guess cornercases yourself, until you got the same values.

3 Likes

I am In Wood league 2 and canât figure out how to switch between
thrust = 100 and
thrust = 0
( Javascript )
Hereâs the code:
if (nextCheckpointAngle) 90; (nextCheckpointAngle) -90;
thrust = 0;
thrust = 100;
Any help would be appreciated!

Is that the actual code or did you mistype?

Itâs not valid syntax. I suggest reading a javascript tutorial to educate yourself on how valid javascript code looks like.

When I try to code, screen didnât load, it stopped loading after few second between 1% and 50% and just didnât load. I have internet connection 3 Mb/s

Iâm agree tooâŚ
Or perhaps can we imagine that we validate the passage to an upper leagues?

I didnât really understand why my code is running automatically in above leaguesâŚ without an action from meâŚ

I am in Bronze and need some help.
I would like to only run a code once and have tried multiple things such as putting the code out of the loop
If I put the code outside of the loop it ignores the code.

Using Javascript and would appreciate any response.

My goal is to boost into an enemy at the very beginning of the game.

``````// Init
var turn = 0;
// game loop

while (true) {