MCBlocks
Jump to navigation
Jump to search
MCBlocks is a three dimensional esoteric programming language created by User:Dominicentek. It's code is written as a build in a Minecraft world with each block representing a command that the interpreter follows. The interpreter accepts .nbt files exported by Structure Blocks. The command pointer starts at XYZ 0 0 0 of the structure moving in X+ direction. Because of the Structure Block limit, each program is limited to 48x48x48 grid.
Blocks
Block | Description |
---|---|
Oak Planks | Moves the command pointer X+ |
Spruce Planks | Moves the command pointer X- |
Birch Planks | Moves the command pointer Y+ |
Jungle Planks | Moves the command pointer Y- |
Acacia Planks | Moves the command pointer Z+ |
Dark Oak Planks | Moves the command pointer Z- |
Dirt | Pops a value off the stack |
Cobblestone | Reverses the stack |
Stone | Swaps the first 2 values |
Deepslate | Duplicates the top value on the stack |
Cobbled Deepslate | Pushes a number of values currently on the stack (This number not included) |
Block of Iron | Pops two values X and Y, performs a Math operation Y + X and pushes the result |
Block of Coal | Pops two values X and Y, performs a Math operation Y - X and pushes the result |
Block of Gold | Pops two values X and Y, performs a Math operation Y × X and pushes the result |
Block of Diamond | Pops two values X and Y, performs a Math operation Y ÷ X and pushes the result |
Block of Netherite | Pops two values X and Y, performs a Math operation Y % X and pushes the result |
White Wool ... Black Wool | Pushes current wool color on the stack (White = 0, Orange = 1, Magenta = 2, ..., Black = 15) |
Sign | Pushes ASCII characters of the sign on the stack (multiple lines are joined by a space, empty lines are ignored) |
Block of Lapis Lazuli | Asks user for number input |
Block of Emerald | Asks user for string input (ASCII values will then be pushed) |
Block of Quartz | Outputs top value of the stack as a number |
Block of Redstone | Outputs top value of the stack as an ASCII character |
Oak Log (Rotated in X axis) | If the top two values match, The command pointer moves X+, otherwise it moves X- |
Oak Log (Rotated in Y axis) | If the top two values match, The command pointer moves Y+, otherwise it moves Y- |
Oak Log (Rotated in Z axis) | If the top two values match, The command pointer moves Z+, otherwise it moves Z- |
Crimson Hyphae | Pops two values off the stack X and Y. X is used as address and Y is used as value. Value is then put on the corresponding address in the heap memory. |
Warped Hyphae | Pops a value off the stack used as an address. It pushes a value on the stack that is on that address in the heap memory. If there is no value, a 0 is pushed. |
Red Concrete | Ends the program |
Examples
-
Hello World -
Truth Machine -
Cat Program