User Controls
ɹɐǝʎ ʇsɐl oooos sᴉ ǝpoɯ dn ǝpᴉs-ʇɥƃᴉɹ / pɹɐʍɹoɟ uᴉ ƃuᴉʇsoԀ
-
2019-02-22 at 10:36 PM UTC˙uɐq-ɐʇsuᴉ ɔᴉʇɐɯoʇnɐ :spɹɐʍɹoɟ puɐ dn ǝpᴉs-ʇɥƃᴉɹ ʇsod noʎ ɟI
˙˥ɐɹʇɔǝdS- oʇ sʇno ʇnoɥS ˙uʍop ǝpᴉsdn sɹoʇᴉuoɯ ɹᴉǝɥʇ dᴉlɟ sɐƃƃᴉu lɐǝR -
2019-02-22 at 10:46 PM UTCCAPITAL R!!! ¡¡¡R ˥∀┴IԀ∀Ɔ
-
2019-02-22 at 10:48 PM UTCTo add some content (to kinda sorta justify this being in SG and not in HB)...
How I did it:
l = {
'a':('ɐ', '(U+0250)', 'ɐ'),
'b':('q'),
'c':('ɔ', '(U+0254)', 'ɔ'),
'd':('p'),
'e':('ǝ', '(U+01DD)', 'ǝ'),
'f':('ɟ', '(U+025F)', 'ɟ'),
'g':('ƃ', '(U+0183)', 'ƃ'),
'h':('ɥ', '(U+0265)', 'ɥ'),
'i':('ᴉ', '(U+1D09)', 'ᴉ'),
'j':('ɾ', '(U+027E)', 'ɾ'),
'k':('ʞ', '(U+029E)', 'ʞ'),
'l':('l'),
'm':('ɯ', '(U+026F)', 'ɯ'),
'n':('u'),
'o':('o'),
'p':('d'),
'q':('b'),
'r':('ɹ', '(U+0279)', 'ɹ'),
's':('s'),
't':('ʇ', '(U+0287)', 'ʇ'),
'u':('n'),
'v':('ʌ', '(U+028C)', 'ʌ'),
'w':('ʍ', '(U+028D)', 'ʍ'),
'x':('x'),
'y':('ʎ', '(U+028E)', 'ʎ'),
'z':('z'),
'A':('∀', '(U+2200)', '∀'),
'B':('B'),
'C':('Ɔ', '(U+0186)', 'Ɔ'),
'D':('D'),
'E':('Ǝ', '(U+018E)', 'Ǝ'),
'F':('Ⅎ', '(U+2132)', 'Ⅎ'),
'G':('פ', '(U+05E4)', 'פ'),
'H':('H'),
'I':('I'),
'J':('ſ', '(U+017F)', 'ſ'),
'K':('K'),
'L':('˥', '(U+02E5)', '˥'),
'M':('W'),
'N':('N'),
'O':('O'),
'P':('Ԁ', '(U+0500)', 'Ԁ'),
'Q':('Q'),
'R':('R'),
'S':('S'),
'T':('┴', '(U+2534)', '┴'),
'U':('∩', '(U+2229)', '∩'),
'V':('Λ', '(U+039B)', 'Λ'),
'W':('M'),
'X':('X'),
'Y':('⅄', '(U+2144)', '⅄'),
'Z':('Z'),
'0':('0'),
'1':('Ɩ', '(U+0196)', 'Ɩ'),
'2':('ᄅ', '(U+1105)', 'ᄅ'),
'3':('Ɛ', '(U+0190)', 'Ɛ'),
'4':('ㄣ', '(U+3123)', 'ㄣ'),
'5':('ϛ', '(U+03DB)', 'ϛ'),
'6':('9'),
'7':('ㄥ', '(U+3125)', 'ㄥ'),
'8':('8'),
'9':('6'),
',':(''),
'.':('˙', '(U+02D9)', '˙'),
'?':('¿', '(U+00BF)', '¿'),
'!':('¡', '(U+00A1)', '¡'),
'"':(',,'),
'':(','),
'`':(','),
'(':(')'),
')':('('),
'[':(']'),
']':('['),
'{':('}'),
'}':('{'),
'<':('>'),
'>':('<'),
'&':('⅋', '(U+214B)', '⅋'),
'_':('‾', '(U+203E)', '‾'),
}
def convert_phrase(phrase: str):
return "".join([l.get(c, c)[0] for c in list(phrase)])
def reverse_phrase(phrase: str):
return phrase[::-1]
print(reverse_phrase(convert_phrase("Hello")))
>> ollǝH -
2019-02-22 at 11:30 PM UTC.oɥʇ ʇɐɥʇ ʍouʞ ʎlqɐqoɹd no⅄ ˙sᴉɥʇ pǝsn ʇsnɾ ɐplnoɔ no⅄
upsidedowntext.com -
2019-02-22 at 11:44 PM UTC
-
2019-02-23 at 12:28 AM UTCzʎxʍʌnʇsɹbdouɯןʞɾıɥbɟǝpɔqɐ
-
2019-02-23 at 12:29 AM UTC
-
2019-02-23 at 12:30 AM UTCDid you do a ninja edit?
-
2019-02-23 at 12:30 AM UTCOr do the letters sometimes look different from different scroll-levels (you never know with these funky characters)?
-
2019-02-23 at 12:34 AM UTC
// JavaScript Document
function tweet(){
var flipped = document.f.flipped.value;
}
function flip() {
var result = flipString(document.f.original.value);
document.f.flipped.value = result;
document.getElementById('tweet').href = "http://twitter.com/home?status="+result;
}
function flipString(aString) {
aString = aString.toLowerCase();
var last = aString.length - 1;
var result = "";
for (var i = last; i >= 0; --i) {
result += flipChar(aString.charAt(i))
}
return result;
}
function flipChar(c) {
if (c == 'a') {
return '\u0250'
}
else if (c == 'b') {
return 'q'
}
else if (c == 'c') {
return '\u0254'
}
else if (c == 'd') {
return 'p'
}
else if (c == 'e') {
return '\u01DD'
}
else if (c == 'f') {
return '\u025F'
}
else if (c == 'g') {
return 'b'
}
else if (c == 'h') {
return '\u0265'
}
else if (c == 'i') {
return '\u0131'//'\u0131\u0323'
}
else if (c == 'j') {
return '\u0638'
}
else if (c == 'k') {
return '\u029E'
}
else if (c == 'l') {
return '\u05DF'
}
else if (c == 'm') {
return '\u026F'
}
else if (c == 'n') {
return 'u'
}
else if (c == 'o') {
return 'o'
}
else if (c == 'p') {
return 'd'
}
else if (c == 'q') {
return 'b'
}
else if (c == 'r') {
return '\u0279'
}
else if (c == 's') {
return 's'
}
else if (c == 't') {
return '\u0287'
}
else if (c == 'u') {
return 'n'
}
else if (c == 'v') {
return '\u028C'
}
else if (c == 'w') {
return '\u028D'
}
else if (c == 'x') {
return 'x'
}
else if (c == 'y') {
return '\u028E'
}
else if (c == 'z') {
return 'z'
}
else if (c == '[') {
return ']'
}
else if (c == ']') {
return '['
}
else if (c == '(') {
return ')'
}
else if (c == ')') {
return '('
}
else if (c == '{') {
return '}'
}
else if (c == '}') {
return '{'
}
else if (c == '?') {
return '\u00BF'
}
else if (c == '\u00BF') {
return '?'
}
else if (c == '!') {
return '\u00A1'
}
else if (c == "\'") {
return ','
}
else if (c == ',') {
return "\'"
}
else if (c == '.') {
return '\u02D9'
}
else if (c == '_') {
return '\u203E'
}
else if (c == ';') {
return '\u061B'
}
else if (c == '9') {
return '6'
}
else if (c == '6') {
return '9'
}
return c;
} -
2019-02-23 at 12:42 AM UTC
Originally posted by -SpectraL
// JavaScript Document
function tweet(){
var flipped = document.f.flipped.value;
}
function flip() {
var result = flipString(document.f.original.value);
document.f.flipped.value = result;
document.getElementById('tweet').href = "http://twitter.com/home?status="+result;
}
function flipString(aString) {
aString = aString.toLowerCase();
var last = aString.length - 1;
var result = "";
for (var i = last; i >= 0; --i) {
result += flipChar(aString.charAt(i))
}
return result;
}
function flipChar(c) {
if (c == 'a') {
return '\u0250'
}
else if (c == 'b') {
return 'q'
}
else if (c == 'c') {
return '\u0254'
}
else if (c == 'd') {
return 'p'
}
else if (c == 'e') {
return '\u01DD'
}
else if (c == 'f') {
return '\u025F'
}
else if (c == 'g') {
return 'b'
}
else if (c == 'h') {
return '\u0265'
}
else if (c == 'i') {
return '\u0131'//'\u0131\u0323'
}
else if (c == 'j') {
return '\u0638'
}
else if (c == 'k') {
return '\u029E'
}
else if (c == 'l') {
return '\u05DF'
}
else if (c == 'm') {
return '\u026F'
}
else if (c == 'n') {
return 'u'
}
else if (c == 'o') {
return 'o'
}
else if (c == 'p') {
return 'd'
}
else if (c == 'q') {
return 'b'
}
else if (c == 'r') {
return '\u0279'
}
else if (c == 's') {
return 's'
}
else if (c == 't') {
return '\u0287'
}
else if (c == 'u') {
return 'n'
}
else if (c == 'v') {
return '\u028C'
}
else if (c == 'w') {
return '\u028D'
}
else if (c == 'x') {
return 'x'
}
else if (c == 'y') {
return '\u028E'
}
else if (c == 'z') {
return 'z'
}
else if (c == '[') {
return ']'
}
else if (c == ']') {
return '['
}
else if (c == '(') {
return ')'
}
else if (c == ')') {
return '('
}
else if (c == '{') {
return '}'
}
else if (c == '}') {
return '{'
}
else if (c == '?') {
return '\u00BF'
}
else if (c == '\u00BF') {
return '?'
}
else if (c == '!') {
return '\u00A1'
}
else if (c == "\'") {
return ','
}
else if (c == ',') {
return "\'"
}
else if (c == '.') {
return '\u02D9'
}
else if (c == '_') {
return '\u203E'
}
else if (c == ';') {
return '\u061B'
}
else if (c == '9') {
return '6'
}
else if (c == '6') {
return '9'
}
return c;
}
The only thing I would maybe modify on that (although it's not exactly necessary, but might look a bit tidier) would be to use either a case switch, or the same kind of associative array (JSON-style key/value pair)...
switch(c) {
case 'a':
return '\u0250'
case 'b':
return 'q'
case 'c':
return '\u0254'
case 'd':
return 'p'
case 'e':
return '\u01DD'
case 'f':
return '\u025F'
case 'g':
return 'b'
case 'h':
return '\u0265'
case 'i':
return '\u0131'//'\u0131\u0323'
case 'j':
return '\u0638'
case 'k':
return '\u029E'
case 'l':
return '\u05DF'
case 'm':
return '\u026F'
case 'n':
return 'u'
case 'o':
return 'o'
case 'p':
return 'd'
case 'q':
return 'b'
case 'r':
return '\u0279'
case 's':
return 's'
case 't':
return '\u0287'
case 'u':
return 'n'
case 'v':
return '\u028C'
case 'w':
return '\u028D'
case 'x':
return 'x'
case 'y':
return '\u028E'
case 'z':
return 'z'
case '[':
return ']'
case ']':
return '['
case '(':
return ')'
case ')':
return '('
case '{':
return '}'
case '}':
return '{'
case '?':
return '\u00BF'
case '\u00BF':
return '?'
case '!':
return '\u00A1'
case "\'":
return ','
case ',':
return "\'"
case '.':
return '\u02D9'
case '_':
return '\u203E'
case ';':
return '\u061B'
case '9':
return '6'
case '6':
return '9'
default:
return c
}
I'm not 100% sure if it's syntactically correct because I haven't tested it or linted it or anything like that, but a case switch would look essentially like that. -
2019-02-23 at 12:47 AM UTCIt actually apparantly needs semicolons after each:
return 'LETTER'
return 'LETTER';
One thing I prefer about python is you don't have to muck around with semicolons (BUT, many would argue that "whitespace isn't syntax"). -
2019-02-23 at 12:48 AM UTCThe reason a dictionary (key/value pair) is ideal, though, to either an if-elseif-else chain OR a switch/case statement is that you can use the same dictionary to look things up in the other direction rather easily.