Here is my strategy, and I think doing Thor and the Giants this month helped me a lot.
1st hour of challenge :My only logic was to save the humans. So i first chose the first human close to me and staid with him... It worked immediately, and i was very happy... and I thought : "already finished ?". So I tried some more...
I replaced "human closest to me" with "human with closest zombie". I had to add too "if i can save him" to succeed 100% of tests. Then I changed my target to the attacking Zombie instead of the protected human because I thought score would be better. So I validated and got some 64k.
Pause 1h30 to think...
End of first day (till morning :):
I had all datas in a structure, and was ready to make a tree (fortunately I did not). So i decided to code the next situation : node1 -> node2. With this new situation, I could calculate how many zombies I would kill next turn. Then when all was clean, I began to give some freedom to Ash. What if he doesn't go where I say to go, but choose between some other positions. Those positions would be in a square grid and would have values : side and step. Each position was simple to transform in coordinates in the circle limits, and to evaluate with calculating node2 each time I needed.
Then I had to say to Hash which positition is the best. The best was for me another value : number of zombies to kill. So Ash could choose if he kills 0 or N zombies. Playing with values of grid, I could give Ash less or more freedom. If grid is 1000, Ash has more free movements and if grid is 100, he can only follow the right direction with less choice.
Game analysis then was to decide when Ash has to do exactly what I demand (when humans are everywhere and you have to run quickly to save them), or when Ash could have some free movements (when you have to save humans but there is a great number of zombies, so let Ash optimize).
Last day :
When I woke up (late), my position in leaderboard had doubled... And I had no idea on how to improve my score (82k). So i decided to let Ash do what he wanted. I tried a grid of 2500 to let him go.
But in this situation; I had to give Ash another objective. so I remembered Thor, where I calculated the barycenter of the Giants. I gave Ash the center of zombies so he should go where he wants, but he would know that the center of Zombies was better. With some tries, Ash could succeed the Combo test (140k)
I spent the last time of the contest evaluating in whitch situation I had to let Ash do what he wanted or not. But when I saw the CG test on a video, I realized than I could earn more points not saving the humans. So I did a trick that was to say Ash : "If you want to kill a lot of zombies, let humans die !". I did'nt have time to improve my algo to pack Zombies, because it is very "naïve" (search the center but try to kill the most), but this trick gave me some more points (161k in final score).
This was a great challenge (my 4th). Thanks a lot to Codingame.
(sorry for my french english