Turbulence

From Esolang
Jump to navigation Jump to search

Turbulence is a cell-based esolang based around malfunctioning airplanes created by User:Random.esotera.

Planes

Each plane contains an infinite tape of cells. They all start initially at null. Null is equal to 0 and changes to 1 or -1 as soon as its cell is modified, except that it will not get outputted.

Each step, the plane moves down, starting at 0.05 units per step + the sum of all cells in that plane * 0.007. If a plane reaches < -1 altitude per step, gets to -3 altitude or gets to 100 altitude (space!), it crashes and the program raises an error.

You can also fix your plane slightly using the f command, which changes 0.07 multiplier by -0.0000000000140222042025032408585427263611055253625 every time it is used. You would need about 5 billion fs to fully fix your plane.

Planes also skip every xth command, depending on how much information is in the plane when it takes off. x = 72/(the sum of all cells in the plane) rounded to the nearest integer + 2. If the cells are all 0, i.e, division by 0, do not skip any commands.

Commands

Command Function
o Take off, starting at altitude 0, cell 0, with all loaded values in the plane. If used while in the air, does nothing.
^ Lift the plane up 1 unit.
e(n) Land the plane at the specified airport, clearing all data inside of it and storing it at that airport to the right of all other data. n could be anything.
a(n, m) Load the nth cell from the right stored at the current airport into the plane at the specified cell m. When used in the air, does nothing.
i* Input characters that get stored as individual ASCII values in the current airport.
i` Input integers that get stored as individual values in the current airport.
@ Land at an unspecified airport and output the plane's cells from right to left as ASCII characters with no spaces between them with no newline at the end.
# Land at an unspecified airport and output the plane's cells from right to left as integers with no spaces between them with no newline at the end.

All other commands will only be executed if the plane is between 0 and 1 altitude, because if it isn't, the pilot is too nervous to run them. The plane moves down after one of these commands are used.

Command Function
< Move one cell left.
> Move one cell right.
- Decrement current cell.
+ Increment current cell.
* Lift the plane up by the current cell's value * 0.2.
] Go back to the corresponding [ in the code.
x NOP.
j Turns current cell into a null value.

Examples

Truth machine

e(port)i`a(0,0)#o*[x^x#xo]e(port)

Hello, World!

o^+++++++++>[^++++++++<-e(port)o*****>]<j#e(port)a(0, 1)o>^^^^+++++++++++++++++++++++++++++#e(port)a(0,1)

This is just He for now.