Fantastic Bits - Missing Inputs

There are many pieces of information that I can see in the video replays, but is not available to the AI while playing. These would be easy to provide as extra inputs, but some are very difficult to calculate otherwise.

  • My Score, and opponent’s Score. Needed to decide a good strategy. Can probably be calculated when snaffles disappear.

  • My current Magic Points. Such an important value to know. Do points accumulate at the start or end of the turn? If a spell fails, are magic points still lost? How can we even tell if a spell succeeded or failed?

  • Opponent’s Magic Points. What spells can the opponent cast this turn? This is much more difficult to know.

  • What spells did my opponent cast? When? What entity did the cast them on?

  • What spells are currently in effect? How many turns do they have to go?

  • More importantly, are there any spells on my wizards that will change where they move to next turn?

  • Who is each Bludger targeting? If there are two wizards equal distance, which one does it choose? Is there a team currently invisible to it? If both teams are invisible, what does it do?

Some of these can only be calculated if you have implemented a perfect physics collisions model, and can tell if entities are not on the expected pixel at the start of a turn, and then can guess what spells might have been cast last turn…
But this is already a lot of time, and impossible for beginner (and intermediate) coders. 80%+ of AIs will never know the answers to these basic questions.


This is the new codingame fashion. Less input. The supposed goal is to be “casual friendly”. But actually it’s “heuristic friendly”. It makes me sick too.

But this is a contest so your opponent has the same inputs.

But at the moment, i think this contest is a “noob killer”. There’s so many thing that you can’t have if you don’t know how collisions works. You can’t guess your own score. Even for an heuristic code, you’ll miss so many informations that you’ll probably can’t do something good.


Two input modes would be nice. A mode with all the inputs and another with the minimum.
Our AIs would output the desired mode at the beginning, or use the light mode if nothing is chosen.
It’s a win-win system.

Thats too complicated. Better add inputs in higher leagues (e.g. wood = casual-friendly input, gold = “so much is going on” input)

Score can be calculated as you said, I don’t think that’s a major problem. If last turn’s ball.X < 1 and now it doesn’t appear on the input array then score player2 else score player1
Bludger target can more or less be inferred. Equal distance wizards problem is very transitory, you should get the real one on the next turn as they move.
But I agree on spell stuff. Maybe on higher leagues there are more info.
As others said we were in the same conditions. Hidden vars and/or randomness is a real problem you’ll face anyways in real life.

This was already discussed during Smash the Code contest.

Too sad nothing changed since then.

1 Like

I would suggest that even if all this information was given, 80% of the solutions wouldn’t use this information…

Of those the score was not too hard to calculate, and I got 104/2399 thus top 95% and I didn’t have time to write code that would have cared about having those details… (excluding score)… to be fair now the mana is expressed in the multiplayer zone, I will not flipendo balls that will making it in before the opposition has the mana to halt it… not sure it will make a huge difference…