TileDots

From Esolang
Jump to navigation Jump to search

TileDots is a language created by User:WoodyFan3412 in September of 2024, it's set on a grid where each cell can either be blank, or one of 41 different cell types. When the program starts various dots are spawned where any starting cells are, dots can move along the grid and interact with tiles, in "Commands" there's a list of instructions that can manipulate dots in various ways.
The size of the grid in TileDots can be set by the user, usually it would be 256x256 or 64x64.

Link to the TileDots IDE: https://cheeselover69.itch.io/tiledots-ide

Commands

Each tile can be assigned a "tag" which can be a string or a number.
TileDots's name and functions are partly inspired by AsciiDots.

If any dot moves over a blank space where there's no tiles, it gets deleted.
When there are no dots left in the program, it ends.

Command Name Function
Start Dictates where any "dots" start when the program is ran, multiple of these can be placed at once.
Track Functions as a track a dot can move along.
Left Sets the dot's direction to left.
Right Sets the dot's direction to right.
Up Sets the dot's direction to up.
Down Sets the dot's direction to down.
Bridge Skips the next instruction.
Call Function Jumps to the corresponding function in the program.
Function Defines where the function should start, any dots calling this function gets teleported here.
Return Jumps to where the dot was when it called the function
Comment A code comment.
Constant Sets the dot's value to whatever the cell's tag is.
Dupe If a dot comes in then it duplicates the dots in all 4 directions except the one it came from.
Print Prints the dot's current value to the console.
Clear If the tile has a tag assigned to it, delete that line of the console, otherwise clear the entire console.
Input Asks the user for input and sets the dot's value to the input.
Join Joins 2 strings together, where A is the dot's value and B is the tag.
Set Sets the variable with the name of the tile's tag to the dot's value, if it doesn't exist a new one is created.
Get Gets the variable with the name of the tile's tag and sets the dot's value to it.
Increment Increments the variable with the tile's tag by one.
Decrement Decrements the variable with the tile's tag by one.
Equals If the value of the dot is equal to the tile's tag then the dot's direction is set to down.
Greater than If the value of the dot is greater than the tile's tag then the dot's direction is set to down.
Less than If the value of the dot is less than the tile's tag then the dot's direction is set to down.
Not Equals If the value of the dot is not equal to the tile's tag then the dot's direction is set to down.
And If the value of the dot and the tile's tag is above zero than the dot's direction is set to down.
Or If the value of the dot or the tile's tag is above zero than the dot's direction is set to down.
Xor If either the value of the dot or the tile's tag (not both) is above zero than the dot's direction is set to down.
Nor If neither the value of the dot or the tile's tag is above zero then the dot's direction is set to down.
+ Adds the tile's tag to the dot's value.
- Subtracts the tile's tag from the dot's value.
* Multiplies the dot's value by the tile's tag.
/ Divides the dot's value by the tile's tag.
% Mods the dot's value by the tile's tag.

Console

In TileDots you can clear the console, remove a certain line from the console, or print something to the console, the console can be used for output and can also be used for stacks.

Programs

This is a list of test programs made in TileDots.

Computational class

This language might be Turing-complete if the grid were infinite.