🅿🅸🅴🆃 is a programming language inspired by Piet. It is a text-based equivalent of Piet.
The colors in 🅿🅸🅴🆃 are shown below:
|Light red ❤ (U+2764)||Light yellow 🧡 (U+1F9E1)||Light green 💛 (U+1F49B)||Light cyan 💚 (U+1F49A)||Light blue 💙 (U+1F499)||Light magenta 💜 (U+1F49C)|
|Red 🔴 (U+1F534)||Yellow 🟠 (U+1F7E0)||Green 🟡 (U+1F7E1)||Cyan 🟢 (U+1F7E2)||Blue 🔵 (U+1F535)||Magenta 🟣 (U+1F7E3)|
|Dark red 🟥 (U+1F7E5)||Dark yellow 🟧 (U+1F7E7)||Dark green 🟨 (U+1F7E8)||Dark cyan 🟩 (U+1F7E9)||Dark blue 🟦 (U+1F7E6)||Dark magenta 🟪 (U+1F7EA)|
Black ⚫ (U+26AA) and white ⚪ (U+26AB) do not fall into either cycle.
You can also use 🖤⬛ for black or 🤍⬜ for white, but please remember that a "black" symbol of one "shape" can not restrict the pointer sliding in a "white" block of another shape, and that a "white" symbol of one shape will restrict the pointer sliding in a "white" block of another shape unless the pointer sees non- "white" symbols on both its left (port) and its right (starboard). Therefore, it is better to just use ⚫ and ⚪ rather than the other "black" or "white" shapes in your program.
Brown (🤎🟤🟫) is considered undefined behavior.
Some compilers may feature an additional symbol, the "grey circle" 🔘 (U+1F518). Every time the pointer encounters this grey circle, it randomly decides whether it is treated as ⚫ or ⚪, allowing a "random number generator" to be created.
Some compilers treat ♥ (U+9829) the same as ❤, though this is not recommended.
Newline characters are used to separate lines. It is recommended that all lines in the program be of the same length. If not all lines are of the same length, it is considered undefined behavior, though simply appending ⚫ or ⚪ to the end of the shorter lines may help. Characters not mentioned above at the end of each line are ignored. If such "undefined characters" appears in the middle of a line (or at the beginning), they are either ignored or treated as ⚫ or ⚪, depending on the implementation.
Commands are the same as commands in Piet.