Add separate behaviour for processing player positions

Just as is being done for bombs... And we leave a regular
ticking behaviour only for processing movements.

Signed-off-by: Aharon Campos <aharoncampos@gmail.com>
Modify logic to avoid bombs

Prevent the player from moving by any instruction other
than avoiding bombs, if there are any bombs in the field.

Also modify the key press event time for movement, to
approximately move one square per cycle.

Signed-off-by: Aharon Campos <aharoncampos@gmail.com>
Add utilities to detect the type of block

Add warning block type support
Actually the grid is not update with such stat to avoid any possible side
eefect for adding a new type where nothing is expected, a grid was created
to keep a track of any grid which is a a grid that the agent should be careful
Add debug prints

To try and figure out why we don't escape.

Signed-off-by: Aharon Campos <aharoncampos@gmail.com>
Add utilities for block type detection
Update current position after moving

To avoid outdated information as much as possible.

Signed-off-by: Aharon Campos <aharoncampos@gmail.com>
Move cautiously by checking for dangers

Maybe too cautiously...

Signed-off-by: Aharon Campos <aharoncampos@gmail.com>
Debug prints

To look through evaluated moves

Signed-off-by: Aharon Campos <aharoncampos@gmail.com>
More debug, eliminate some conditions

Do not avoid FIRE.

Signed-off-by: Aharon Campos <aharoncampos@gmail.com>
More debug, eliminate some conditions

Do not avoid FIRE, cells get marked like that even
if the bomb has not exploded.

Signed-off-by: Aharon Campos <aharoncampos@gmail.com>
Mark lists and current position as volatile

Because they're being accessed from several threads.

Also, try to ignore bombs which theorethicaly can't hit me.

TODO: need to store the actual firepower of the player who
placed the bomb, to know how much I should care about.

Signed-off-by: Aharon Campos <aharoncampos@gmail.com>
Merge branch 'autonomous_action' of https://github.com/cristopherson/BomberJade into autonomous_action
Use shift to determine the proper coords in the table

Add more utilities to MOveValidator such as hasSafeMove evaluation
Add paranoid checks

Try to move safely whenever possible by avoiding dangerous but
accessible positions.

Go there once there's no choice.

Signed-off-by: Aharon Campos <aharoncampos@gmail.com>
Add lock for only one bomb at a time

To avoid more mass suicides.

Signed-off-by: Aharon Campos <aharoncampos@gmail.com>
Add some extra checks

thats that