Emoji-gramming
Emoji-gramming (proper name π») is a simple emoji-based esolang.
Variables
There are 24 normal variables, each indicated by a specific emoji:
β β β β β β β β β β β β(Aries Taurus Gemini Cancer Leo Virgo Libra Scorpio Saggitarius Capricorn Aquarius Pisces)
π π π π π π π π π π π π(Look at the clock by yourself)
All 24 store unbounded, signed, integers and are initialized to 0.
There is 1 special variable: π¨
It is the Instruction Counter and stores the current line number being run.
Lines without commands are still counted.
It can be used like any other variable.
Setting it to another value jumps code execution to that line.
The Instruction Counter starts at 0 and increases by 1 before each command.
Commands
There are four commands; each command must be on its own line.
Any line that doesn't start with a command is treated as a comment.
The first command is on line 1.
In all commands, replace π³ and π² with variables.
ππ³π² Set π³ to π².
ππ³π² Set π³ to π³ plus π².
ππ³π² Set π³ to π³ minus π².
π΅π³π² If π³ equals π², skip the next command.
Constants
Hearts can be used as constants, as desired.
Use a constant instead of variable π².
π is 0
π is 1
π is 2
π is 4
π is 8
Input/Output
Input and Output can only be used as part of π commands, replacing the indicated variable. Using both in the same command is forbidden.
π€ Replace π²; input one ASCII/Unicode character and store value into variable π³.
π’ Replace π³; output the ASCII/Unicode character matching variable π².
Sample Code
Cat:
πβπ€ π΅βπ π΅ββ ππ¨π ππ’β ππ¨π
Hello world:
πππ πππ πππ πππ πππ πππ πβπ πβπ ππ’β πβπ πβπ πβπ πβπ ππ’β πβπ πβπ πβπ πβπ ππ’β ππ’β πβπ πβπ πβπ πβπ πβπ πβπ ππ’β πβπ πβπ πβπ ππ’β ππ’π πβπ πβπ πβπ πβπ πβπ ππ’β ππ’β πβπ πβπ πβπ πβπ ππ’β ππ’β πβπ πβπ πβπ ππ’β πβπ πβπ ππ’β πβπ πβπ ππ’β
A+B problem, only supports one-digit numbers separated by any character:
πβπ€ πβπ πβπ πβπ πβπ πβπ πβπ πβπ€ πβπ€ πββ ππ’β
Because of a bug in the interpreter, the input command only reads the first character in each line, so you can remove line 8 to get a better experience, but I found a way to fix the bug in talk page.