##Introduction
So many of the devs here may have heard of BrainF**k, an esoteric programming language with just 8 instructions. The idea of the language is to be incredibly simple, but to be turing complete (given enough memory). The language works with a theoretically infinite array, and functions by moving a pointer left or right, and adding 1 or subtracting 1 from values. The only conditional in the language is a loop which terminates when the pointer points to a zero value.
###Video
So that’s the boring description out of the way, but here’s BrainF**k at a cool 20 Hz (note that most modern computers run at greater than 1 Ghz, so it’s kinda slow, but it is totally awesome!):
(and yes, this program took ~a minute and half to print hello world… Instructions per tick can be edited in the config, so can the max amount of instructions a program can execute (to prevent infinite loops))
Note: this video is slightly out of date. New versions show the pointer moving
###Information:
Commands:
- Base Command: brainfkmc, bfm, bf
- Sub Commands (in the form [aliases]; [permission]; [description]):
- reload, re, r; brainfkmc.admin; reloads the config
- view, v, list, l; brainfkmc.admin; displays all currently running programs
- executepre, execpre, exep; brainfkmc.run; runs a pre-defined program, pre-defined programs are:
- hello_world; prints “Hello World”
- hello_world2; prints “Hello World” (with a different method than hello_world)
- trump; builds a wall
- trump2; builds a different wall
- execute, exec, exe; brainfkmc.run; runs a program
Config:
- instructions_per_tick; represents the number of program instructions to execute each tick, defaults to 5. Above example video has this set to 1
- max_instructions; represents the maximum number of instructions a program is allowed to run. Set this to a negative to allow infinite instructions. This can be used to prevent infinite loops from running forever
Version: Supports Sponge 4.x, should support all other versions that have the same methods in Extent
, since this plugin only interacts by setting blocks, sending messages, and getting block types and locations
Links: