Turbulence
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.