## What will I learn?

In this puzzle, you have to use an associative array that maps arbitrary types to directions.

You compute the list of all possible actions from a complex environment (lots of different variables).

You go through the nodes of a tree using a depth first search algorithm.

You handle complex data structure, like trees, to store the list of possibilities over the time.

You have to optimize your algorithm to reduce the number of combinations in order to decrease the overall computation time. You have to prune a decision tree based on heuristics.

You can perform advanced backtracking operations.

## TO HELP YOU GET STARTED

Focus on a Puzzle: The Last Crusade by fafl#### External resources

Associative arrayTreeTree traversalDepth First SearchBacktracking## Learning Opportunities

This puzzle can be solved using the following concepts. Practice using these concepts and improve your skills.

## Statement

The goal of the puzzle is to select rooms to pivot from a 2 dimensional grid to help Indiana Jones find his way to the exit. This puzzle requires to build the tree of all the possible rotations that can be performed over time, and use some heuristics to perform some predictive optimisations to avoid unnecessary computation.

A higher resolution is required to access the IDE

## Story

Indiana never listens. We told him that forbidden temples are dangerous, but there he is, dashing through a moving labyrinth and risking his life.

Dodge the traps, and help him find his way out of this highway to hell. Beware of the rolling stone!

*This difficult puzzle is the second out of a series of 3 exercises, proposed for the challenge « The Last Crusade ». Before you try to solve it, we recommend you solve the first level, an easy puzzle that will provide you with a useful base code before you start this puzzle.*