Ptolomaea

From Esolang
Jump to navigation Jump to search

Ptolmaea is a esoteric "programing language" created by User:MinekPo1. It is mainly inspired by Malbolge and is designed to be even more difficult to use than the language it was inspired by.

Environment

The Ptolomaea language is preformed on a 3125 dimensional plane split into cells.

Each cell contains five quinquets. The starting value for each cell is calculated by preforming the 𐤑 operation on the first three values of the cell position, then on the previous result and the next two axis positions for all remaining axises.

The Beetle

The beetle is the executing body. It remembers:

  • the two last values it was told to remember (these will be referred to as A and A')
  • which dimension it is facing along (D) and if it facing in positive direction or negative
  • how many time-steps have passed since the program started executing (though only the last five quinquets) (T)

If the beatle is awake for 23 timesteps, it will die from exaustion, terminating the program.

On each time-step the beetle does the following actions, in this order:

  • reads the value of the cell beneath it
  • preforms the 𐤑 operation on the value, T and D, with the carry in being zero if the beetle is facing the positive direction and one if it is the negative
  • writes the result to the cell beneath it
  • multiplies the result by 13, before taking the reminder by 17
  • executes the command assigned to the resulting value
  • walks forward one cell
The commands the beetle recognizes
value description
0 listen for a character and remember its code
6 move forward one cell and write the last remembered value to the cell now beneath the Beetle
7 move forward one cell and remember the value now beneath the Beetle
9 scream the character with the code A
10 take a nap for A timesteps
14 preform the 𐤑 operation on A, A' & T and remember the result
16 turn to align yourself with the dimension dictated by A, furthermore if it was facing in the positive direction it will now face in the negative and vice versa

If it does not recognize the command number, it preforms no action.

The Ant

The ant reads from a stream of quinquets provided by the user.

It reads five quinquets at a time. If the read value is the same as the previous, the cell the ant is on will be probed.

Otherwise the ant will move once in the dimension dictated by the read value, in the positive direction if the ant read a odd number of values before this one and in the negative direction otherwise.

Each time a cell is poked, the cell is reinitialized, but instead of the first step being to preform the 𐤑 operation on the first three axies, it is to preform the 𐤑 operation on the previous cell value, zero and the first dimension index.

The 𐤑 operator

The 𐤑 operator takes three arguments and a optional carry in. The resulting value is described by the following table:

The 𐤑 operator
B C\C_in A 0 0 0 1 0 2 0 3 0 4 1 0 1 1 1 2 1 3 1 4
0 0 0 1 0 4 1 4 0 0 0 3 1 2 0 4 1 1 1 0 1 2
0 1 0 1 1 1 0 3 1 3 0 2 1 0 1 0 1 3 1 3 0 2
0 2 1 2 0 4 1 4 0 0 1 1 1 3 0 4 0 0 1 2 0 2
0 3 0 0 1 1 1 4 0 4 0 1 0 4 0 4 1 0 1 4 1 2
0 4 1 0 0 4 0 0 1 4 1 3 0 3 1 1 1 3 1 4 0 1
1 0 1 4 1 4 0 0 0 4 0 1 0 2 0 4 1 3 0 2 1 4
1 1 1 4 0 0 0 1 0 2 0 4 1 2 1 1 0 4 0 0 0 1
1 2 1 1 0 1 1 3 1 1 1 0 0 4 0 3 1 2 1 0 1 1
1 3 0 0 0 1 0 3 0 0 0 4 1 4 0 1 1 2 0 4 1 3
1 4 1 3 1 1 1 3 1 3 0 2 0 2 1 4 1 2 0 3 1 3
2 0 0 0 0 0 0 4 1 2 1 4 0 3 1 4 0 4 1 3 0 0
2 1 1 4 1 4 1 2 0 0 0 2 0 4 0 3 1 2 0 4 0 4
2 2 0 0 1 0 0 3 1 2 1 4 1 1 1 3 1 3 0 0 1 0
2 3 1 3 1 2 0 0 1 4 0 1 1 0 1 4 1 0 0 3 1 1
2 4 0 3 0 1 0 0 1 1 1 2 1 4 0 1 0 2 1 3 0 4
3 0 0 3 1 0 0 1 1 3 1 3 0 1 0 0 1 0 1 3 1 0
3 1 0 2 1 4 1 0 0 2 0 3 0 0 0 4 0 4 1 4 0 1
3 2 0 3 0 0 1 0 1 4 1 1 0 2 1 4 1 0 1 4 0 4
3 3 1 4 0 0 1 3 0 1 1 2 0 3 1 2 0 2 0 4 0 3
3 4 1 0 0 2 1 2 1 4 1 2 1 0 1 3 1 0 1 0 0 0
4 0 1 4 1 4 0 4 1 3 1 2 0 2 1 0 0 1 0 1 0 2
4 1 0 2 0 1 0 0 1 2 0 0 0 3 1 3 1 1 0 2 0 3
4 2 0 2 1 2 1 4 1 4 0 3 1 0 1 4 0 3 0 4 1 2
4 3 1 2 0 0 0 4 0 3 0 2 1 3 1 0 0 0 0 1 0 3
4 4 1 4 1 0 0 2 1 0 0 4 0 1 1 0 0 0 0 2 1 3

External resources

The creators repo, including a implementation.