Wizzcake+
Jump to navigation
Jump to search
Wizzcake+ was created by user:RainbowDash on March 18th 2024. Wizzcake+ is a upgraded version of Wizzcake which adds functions from brainfuck making it Turing complete. Wizzcake+ contains 1 stack, a pointer, and an infinite array of cells.
Every single word in a given text, gibberish or not preforms 10 different instructions, multiple different times.

Instructions
The Base Instructions
- Putting in the characters [ or ] by themselves will create a loop like in brainfuck.
- Putting "," like in brainfuck will allow you to input a given string from assci into the cells, fowards of the pointer
- Move pointer right
- Move pointer left
- Increment pointer cell
- Decrement pointer cell
- Print out pointer cell
- Print out pointer cell ASCII
- Pop stack
- Push cell to stack
- Clear cell
- Pop stack ASCII
Useful found commands
Some of these found commands have consequences such as moving the cursor left when you don't want to move it left. The good thing is that if you do in fact start at cell 0 so moving left will keep you at cell 0.
- fork - Moves pointer left
- right - Moves pointer right
- added - Increments the pointer cell and then prints it out
- his - Clears the current cell
- give - Adds plus 2 to the cell and moves left
- e - Add plus 1 without printing it
- addanation - Prints out the pointer cell + 1 in assci
Example Programs
Hello world program in Wizzcake+
right e give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give addanation his give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give addanation his right e give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give addanation his right e give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give addanation his give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give addanation his right e give give give give give give give give give give give give give give give addanation his give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give addanation his give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give addanation his right e give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give addanation his right e give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give addanation his right e give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give give addanation his give give give give give give give give give give give give give give give give addanation his
With this Javascript code you can generate a program to print out mostly any string
for (const char of "Hello world!") {
const ascii = char.charCodeAt(0);
if (ascii % 2 === 0) {
console.log("right e " + "give ".repeat((char.charCodeAt(0))/2-1) + "addanation his ");
} else {
console.log("give ".repeat((char.charCodeAt(0))/2) + "addanation his ");
}
}
Interpreter in JavaScript
function wizzcakep(inputPrgm){
// Usage
let words = inputPrgm.toUpperCase().split(" ");
let cells = [0]; // Initalize cells
let stack = [];
let cursorPos = 0 // Set pointer
let i = 0;
while (i < words.length) {
let word = words[i];
if(word != "[" && word != "]" && word != ","){
i++
let hash = 0;
for (let j = 0; j < word.length; j++) {
hash = (hash << 5) - hash + word.charCodeAt(j);
hash |= 0; // Convert to 32-bit integer
}
let seed = Math.abs(hash) / Math.pow(2, 31); // Unique number generated for every word
if (word.length === 1) {
seed = (word.charCodeAt(0) * 2654435761) % Math.pow(2, 31);
}
var x = Math.sin(seed) * 10000;
var outputSeed = x - Math.floor(x);
var amountOfLoops = Math.round(outputSeed * 5)+1;
for (let i = 0; i < amountOfLoops; i++) {
outputSeed = seed;
x = Math.sin(outputSeed) * 10000;
outputSeed = x - Math.floor(x);
let instruction = Math.round(outputSeed * 9)+1;
switch(instruction) {
case 1: // Move pointer right
cursorPos += 1
break;
case 2: // Move pointer left
cursorPos -= 1
break;
case 3: // Increment pointer cell
cells[cursorPos] = (cells[cursorPos] || 0) + 1;
break;
case 4: // Decrement pointer cell
cells[cursorPos] = Math.max(((cells[cursorPos] || 0) - 1),0);
break;
case 5: // Print out pointer cell
console.log(cells[cursorPos] ?? 0);
break;
case 6: // Print out pointer cell ASCII
console.log(String.fromCharCode(cells[cursorPos] ?? 0));
break;
case 7: // Pop stack
if (stack.length > 0){
console.log(stack.join(" "));
stack = [];
}
break;
case 8: // Push cell to stack
stack.push(cells[cursorPos]);
cells[cursorPos] = 0;
break;
case 9: // Clear cell
cells[cursorPos] = 0;
break;
case 10: //Pop stack ASCII
if (stack.length > 0){
stack.forEach(number => {
console.log(String.fromCharCode(number));
});
stack = [];
}
break;
}
seed++;
}
} else {
if(word == ","){
var input = prompt("");
var inputASSCI = input.split('');
for (let h = 0; h < inputASSCI.length; h++) {
cells[cursorPos] = (inputASSCI[h].charCodeAt(0));
cursorPos += 1
}
cursorPos -= 1
i++
} else if (word == "]") {
if ((cells[cursorPos] || 0) <= 0) {
i++; // Move to the next instruction
} else {
let loopDepth = 1;
while (loopDepth > 0) {
i--; // Move back to find the matching [
if (words[i] === "]") {
loopDepth++;
} else if (words[i] === "[") {
loopDepth--;
}
}
}
} else { i++ }
}
}
}