Track
Jump to navigation
Jump to search
Track is a two-dimensional esoteric programming language made by User:Wh1teWolf. It has a two-dimensional instruction area of 30x? instruction cells, and a one-dimensional memory array,
Commands
Character | What it does |
---|---|
> |
Set the “walking” direction to right. |
< |
Set the “walking” direction to left. |
^ |
Set the “walking” direction to up. |
V |
Set the “walking” direction to down. |
@ |
Set the “walking” direction depending on the number under the pointer: 1 = right, 2 = left, 3 = down, 4 = up, otherwise = right. |
+ |
Increment the cell under the pointer by one. |
- |
Decrement the cell under the pointer by one. |
. |
Output the ASCII character associated with the value in the cell under the pointer. |
: |
Output the numeric stored in the cell under the pointer. |
, |
Input an ASCII character and store it in the cell under the pointer. |
; |
Input a number and store it in the cell under the pointer. |
0 –9 |
Move the memory pointer to the cell n. |
Examples
Infinite loop
V< >^
This program shows how the “walking” direction stuff works. The first instruction is V
, making the program move down to the next line where there is a >
instruction, this changes the “walking” direction to right. We go right one step where there is a ^
and are pointed up to the <
instruction, this makes us go left to the starting point and so on...
Cat program
,.
Counting from 1 to 10 (looping counter)
V V < >1++++++++++++++>1-0+:1@^
This example could also be written like this (which is the best way of doing it):
++++++++++++++>0-1+:0@V ^ <
99 bottles of beer
3++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++ +++++++++++++++++0 +++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++ ++++++++++++ 2++++++++++++++++++++++++++++ ++++0 V 0< >:2.1++++++++++++++++++++++++ +++++++++++++++++++++++++++++ +++++++++++++.+++++++++++++.+ ++++..--------.-------.++++++ ++++++++.2.1----.---------.2. 1----.+++..+++++++++++++.2.1- --.-.2.1++++++.------------.- --.2.1++++++++++++++++++.---- ------------------.++++++++++ +..2++++++++++++.------------ .0:2.1----------.++++++++++++ +.+++++..--------.-------.+++ +++++++++++.2.1----.--------- .2.1----.+++..+++++++++++++.2 ++++++++++++++.-------------- 4++++++++++.1++.------------- ------.++++++++++.------.2.1+ +++++++++.-.---------.2.1-.++ +++++++++.++++++++.---------. 2.1++.---------------.+++++++ +++++++++++..2.1----------.++ +++++++++.2.1---------------- ---.+++++++++++++++++.---.+++ +++.-------.----------.2+++++ +++++++.------------.0-:2.1-- .+++++++++++++.+++++..------- -.-------.++++++++++++++.2.1- ---.---------.2.1----.+++..++ +++++++++++.2.1---.-.2.1+++++ +.------------.---.2.1+++++++ +++++++++++.----------------- -----.+++++++++++..2+++++++++ +++++.--------------4..------ ----1------------------------ ----------------------------- ----------------------- V>V< >3-@ ^
Interpreter
- Common Lisp implementation of the Track programming language.