Wizzcake
Jump to navigation
Jump to search
Wizzcake is created by user:RainbowDash. Wizzcake contains 1 register, and 1 stack. Every single word in a given text, gibberish or not preforms 7 different instructions, multiple different times.

Instructions
The instructions
- Pop stack
- Set reg to number
- Push reg to stack
- Add number to reg (Used to be "in" wizzcake but is now removed due to a bug that if fixed ruins previous programs)
- Subtract number from reg
- Clear reg
- Clear stack
- Pop stack but in ASCII letters
Useful found commands
- Foxy - Pop stack once
- Sus - Push the register to the stack then pop the stack in ASCII letters
- I - Clear the reg and stack
Example Programs
This program does not output Hello world, it only outputs the number -2887711.
Hello world
This program prints out a 5x5 list of 0's
i a fault among i a fault among i a fault among i a fault among i a fault among
This JavaScript program made by user:Salpynx outputs a given Unicode character
i = 1; // this is the count for how many times to repeat for the target char
a = -4889132; // "baka " does this to the reg
while (String.fromCharCode(Math.abs(a*i)*0.0149878) != "ඞ") { i += 1}
wizzcake("baka ".repeat(i) + "sus");
Interpreter in JavaScript
function wizzcake(inputPrgm){
// Usage
let reg = 0;
let stack = [];
let words = inputPrgm.toUpperCase().split(" ");
for (let i = 0; i < words.length; i++) {
let word = words[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 * 8)+1;
switch(instruction) {
case 2: // Pop stack
if (stack.length > 0){
console.log(stack.join(" "));
stack = [];
}
break;
case 3: // Set reg to number
var newRandom = Math.sin(outputSeed * 10000) * 10000;
reg = Math.round((newRandom - (Math.floor(newRandom)))*10000000);
break;
case 4: // Push reg to stack
stack.push(reg);
reg = 0;
break
case 5: // Subtract number from reg
var newRandom = Math.sin(outputSeed * 10000) * 10000;
reg -= Math.round((newRandom - (Math.floor(newRandom)))*10000000);
break
case 6: // Clear reg
reg = 0;
break
case 7: // Clear stack
stack = [];
break
case 8: //Pop stack but in ASCII letters
if (stack.length > 0){
stack.forEach(number => {
console.log(String.fromCharCode(Math.abs(number)*0.0149878));
});
stack = [];
}
break;
}
seed++;
}
}
}