TileDots
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.
-
Every tile from left to right has a graphic, for example the "stop" tile is a red square with an X on it.
-
This demonstrates a dot moving along a track, the arrows dictate where the dot should turn.
-
The "Constant" tile has a tag assigned to it, the tag is displayed in green text above the tile.
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. |
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.
-
A hello world program, it sets the dot's value to "Hello World!", and then outputs it.
-
A Cat Program, it takes input and then prints it to the console, this also demonstrates how to do loops.
-
A Truth Machine, it gets the input and checks if it's equal to 1, if so then print 1 in a loop, otherwise just print 0 once.
-
Demonstration of function calling, the function has to have a @ prefix, it gets input and then returns, exiting the program, functionally the same as a cat program.
-
This sets the dot's value to "Hello" and duplicates it, causing "Hello" to be printed to the console twice.
Computational class
This language might be Turing-complete if the grid were infinite.