Code VS Zombies - Optimization - Puzzle discussion

You could improve that and finding better solutions between the next frame (with lower time) and begin the simulation with current game state. The algorithm might find still better solutions. If so, just update the path. You can repeat that in every frame.

It wonā€™t compute a score for me. I am submitting with Python3.

We had an issue yesterday with the submits. It is solved now.

I have a problem with the YNext move of a zombie. In a map with one human and one zombie, the XNext of the zombie will be the X of the human but the YNext will be a weird integer changing each turn.

It does not seem normal to me but if it does, i would appreciate some explanation about this behavior.

Thanks

1 Like

Is something wrong with the ranking? Some players have 0 score now.

Weā€™re currently changing the machines used for optimization puzzles (+code golf puzzles). Hence, weā€™re rerunning all solutions.

1 Like

Any chance you can check the current status of the Code Golf and Optimization problems? None of them show the score or the leaderboards. Itā€™s most likely an internal bug.

The start point of our " Ash" is very important, but I canā€™t find it.
Help~

1 Like

Ashā€™s position is the first line of input given each turn.
So, his starting position is his turn1 position.

1 Like

Hey guys,

I got the my code to work (with the exception of one edge caseā€¦ Iā€™ll figure it out), which is a first for one of these kinds of puzzles. Iā€™m pretty new to all of this stuff, and have yet to do any kind of optimization.

Where would be the best place to start to work on improving score? Currently my logic is super rudimentary: I find the nearest human that I can save, and I sit on top of him. Which is fun to watch everyone else get slaughtered whilst I wait and watch :sunglasses:

Iā€™m just looking to see where I can take it, one baby step at a time. Iā€™m already super happy I managed to even make the thing run.

4 Likes

@Mimodo,

First of all, I find it helpful to think of the challenge not as a coding optimization problem, but as if it were a board game. This makes it easier to come up with strategies to get a higher score. Once you have a fleshed out strategy, try to implement it into your code, one idea at a time. Test each idea you have before moving on to new strategies.

The implementation is almost always the hard part. Of course you can come up with a strategy like ā€œdonā€™t let any humans dieā€, which would be hard to implement with no further knowledge. Instead, you can refine this strategy into smaller and smaller tasks which can be implemented more easily. For example, you can break this down into ā€œwhich humans canā€™t be saved?ā€ and then ā€œonly focus on saving humans that can be saved.ā€ This breakdown will make it so you donā€™t unnecessarily target humans that have no chance anyway.

Once again, this breakdown becomes a challenge as well. The question ā€œwhich humans canā€™t be saved?ā€ is a lot to think about and would have to be broken down into smaller subtasks as well. If you continue this process for any strategy you might want to implement, you should end up with a strong AI.

8 Likes

How can I check if a zombie has died or not so that I can move towards the other zombies?

P.S. Has anyone noticed the weirdness of dates and repeated replies in the forums?

Zombies are given in the input at every turn. In case you already read it but donā€™t see any changes, maybe you donā€™t clear your list between turns.

What do you mean?

I think the text 1 months later / 2 months later is unnecessary info while date is already there, and the replies are shown twice, once under the replied post like a reply and again a little below like a new post.
Isnā€™t that weird?

I imagine that asking a question over 2 years later may be futile, but Iā€™ll give it a whirl anyway :

Do you know how long the response time is, and why would it differ from the 100ms per round as given in the problem statement? I am mostly interested in having an answer for the first question, the second question is merely curiosity.

The first turn on multiturn codingame games is usually 1 second instead of the normal turn times. I believe it differs from other turns as some languages have large delays near the start when things are used for the first time (eg Java streams are very slow on first use but fine afterwards, so people often end up making sure all their streams are run once during turn 1) but I think it mostly gets used for setting up things to make later turns faster (eg precomputing distances / routes between points)

3 Likes

In the problem statement :
Each turn, every zombie will target the closest human, including Ash , and step 400 units towards them. If the zombie is less than 400 units away, the human is killed and the zombie moves onto their coordinate.

But further down it says the order of execution is :

1. Zombies move towards their targets.
2. Ash moves towards his target.
3. Any zombie within a 2000 unit range around Ash is destroyed.
4. Zombies eat any human they share coordinates with.

Arenā€™t these two actions contradictory? Letā€™s say a human is just within the 2000 kill range of Ash and a zombie is within 400 of the human but outside Ashā€™s kill range. The first statement implies that the next turn will result in the humans death, but the list implies that the zombie moves to the human, which is in the kill range, but is destroyed before being able to eat the human; Two very different outcomes which require different simulation.

3 Likes

In fact you first have the comportment details for each entity, and then the order of resolution of the actions. So in your example, the human is saved.
But I understand what you mean, the first sentence should precise that itā€™s not immediate and can be interrupted.

4 Likes

The max score that I have seen seems bound by an Integer so far. However, fibonacci multipliers make far greater numbers possible (eg fib(99 (max zombies)+2) is much larger than even a long). If you were able to stack even 50 zombies this could easily be blown out. Also, if this is the real game engine, scores seemed bound by an integer (Although I have no way of confirming this program actually uses this). Can the game really handle scores larger than an Integer (2147483647) or is there a potnetial for overflow when the scores get this big?

Scored 37k with 95% and 22k with 100% weird. Points donā€™t fully make sense, winning should have a higher ranking than not, but I understand saving more humans is the goal.

1 Like