TileDots
Jump to navigation
Jump to search
TileDots is a language created by User:WoodyFan3412 in September of 2024, it's set on a 256x256 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.
TileDots's name and functions are partly inspired by AsciiDots
Commands
Each tile can be assigned a "tag" which can be a string or a number.
-
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.
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. |
Stop | Deletes the dot. |
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 | Just a code comment, the tag of the cell acts as the comment. |
Constant | Sets the dot's value to whatever the cell's tag is. |
Dupe | Any dot coming from above will get duplicated to the right. |
Printer | Prints the dot's current value to the console. |
Clearer | Clears the 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. |
Programs
This is a list of test programs made in TileDots. Why am I using galleries for this?
-
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.