**AoM Ascension Riddle**

in Ascension MMORPG (an Age of Mythology mod)
In this article, I'll show a general solution for the monument puzzle created by *Zenophobia*found on floors 5 to 9 using vector math. Breaking down the - at first glance - confusing riddle into basic connections and formulas, which can be solved with low effort computation.

*no guarantee for mathematical correctness in writing and proving*Last modified: 07/23/2024 10:32 AM

#### Table of Contents

### Riddle Description

The riddle on the last floor is a special form as the monuments are not arranged in a circle but in a grid. Additionally, there are two types of monuments where one type has to face north and the other has to face south.

### Mathematical Model

To calculate a general solution, the riddle has to be modelled using mathematical concepts. In here we can describe three different types:

- The rotation of each monument
- The connections between monuments
- An action we can perform

Given a riddle of **n** monuments, each monument can have **4** different rotations. Therefore, we define a vector *s* containing **n** elements
holding an integer of ring mod 4 (s ∈ ℕ_{4}^{n}).
A 0-value would indicate a correct rotation, any positive number the rotations performed clock-wise
and a negative value rotations performed counter clock-wise related to the correct rotation.
All rotations combined in one single vector describe the changeable state of the riddle.

Next we have to specify how each monument is connected to each other. Therefore, we define a **n x n** adjacent matrix **M**,
where the value in the i-th column and j-th row describe the connection, **1** for connected and **0** if no connection is present.

The last thing we need to create a model for is the actions we can perform in the riddle.
Since we can rotate each monument one-by-one, we will have **n** different actions.
An action affects the monument we are attacking plus any connected monuments.
As the matrix already describes this behavior, we can simply take the i-th column of the matrix if we want to attack the monument indexed by **i**.
Mathematically, we define our actions as vectors of size **n** again, for the first monument it holds an **1** as first element and an **0** for any other elements.
Generally speaking, attacking monument **i** will hold an **1** at index **i** inside the vector.
Since we might also affect other monuments, we multiply the matrix with the given action vector to get our final vector **v _{i}**.

Now we got everything we need for the calculation. The mathematical model for the screenshot above would look like this:

### Solution Algorithm

The riddle is solved. \(_\Box\)