SCREAMCODE
Jump to navigation
Jump to search
Paradigm(s) | imperative |
---|---|
Designed by | Baguette |
Appeared in | 2020 |
Memory system | Cell-based |
Dimensions | one-dimensional |
Computational class | Turing complete |
Reference implementation | Screamterpreter |
Influenced by | brainfuck |
File extension(s) | .AUGH , .PAIN |
Screamcode (stylized as SCREAMCODE) is a Trivial brainfuck substitution created by Baguette one night while taking a break from Codewars. Every instruction in Screamcode is a pained yell, reflecting how painful brainfuck and its derivatives are to code in. It has unlimited, unbounded tape.
Overview
Command | Description |
---|---|
AAAH
|
Move the pointer to the right |
AAAAGH
|
Move the pointer to the left |
FUCK
|
Increment the memory cell at the pointer |
SHIT
|
Decrement the memory cell at the pointer |
!!!!!!
|
Output the character signified by the cell at the pointer |
WHAT?!
|
Input a character and store it in the cell at the pointer |
OW
|
Jump past the matching OWIE if the cell at the pointer is 0
|
OWIE
|
Jump back to the matching OW if the cell at the pointer is nonzero
|
Instructions may be seperated by a space, newline, or both, although it is not required.
Examples
Hello World
FUCK FUCK FUCK FUCK FUCK FUCK FUCK FUCK FUCK FUCK OW AAAH FUCK FUCK FUCK FUCK FUCK FUCK FUCK AAAH FUCK FUCK FUCK FUCK FUCK FUCK FUCK FUCK FUCK FUCK AAAH FUCK FUCK FUCK AAAH FUCK AAAAGH AAAAGH AAAAGH AAAAGH SHIT OWIE AAAH FUCK FUCK !!!!!! AAAH FUCK !!!!!! FUCK FUCK FUCK FUCK FUCK FUCK FUCK !!!!!! !!!!!! FUCK FUCK FUCK !!!!!! AAAH FUCK FUCK !!!!!! AAAAGH AAAAGH FUCK FUCK FUCK FUCK FUCK FUCK FUCK FUCK FUCK FUCK FUCK FUCK FUCK FUCK FUCK !!!!!! AAAH !!!!!! FUCK FUCK FUCK !!!!!! SHIT SHIT SHIT SHIT SHIT SHIT !!!!!! SHIT SHIT SHIT SHIT SHIT SHIT SHIT SHIT !!!!!! AAAH FUCK !!!!!! AAAH !!!!!!
Trivial brainfuck substitution interpreter
#!/usr/bin/env ruby eval 'm=Hash.new(p=0);'+ARGF.read.gsub( /[!-~]+|./, 'AAAH' => 'p+=1;', 'AAAAGH' => 'p-=1;', 'FUCK' => 'm[p]+=1;', 'SHIT' => 'm[p]-=1;', '!!!!!!' => 'putc m[p];', 'WHAT?!' => 'm[p]=STDIN.getbyte if !STDIN.eof;', 'OW' => '(', 'OWIE' => ')while((m[p]&=255)!=0);')