Unifuck
Jump to navigation
Jump to search
Unifuck (a portmanteau of Unicode and brainfuck) is a Brainfuck derivative made by User:SzszszszszszszsZ where the regular instructions are changed this way:
n%8 is | Original |
---|---|
0 | + |
1 | - |
2 | < |
3 | > |
4 | . |
5 | , |
6 | [ |
7 | ] |
where n is any integer. n then gets converted into a Unicode character.
Examples
@@@@@@@@FC@@@@FC@@C@@@C@@@C@BBBBAGC@C@CACC@FBGBAGCCDCAAAD@@@@@@@DD@@@DCCDBADBD@@@DAAAAAADAAAAAAAADCC@DC@@D ````````fc````fc``c```c```c`bbbbagc`c`cacc`fbgbagccdcaaad```````dd```dccdbadbd```daaaaaadaaaaaaaadcc`dc``d &# &# # # # """"!'# # #!## &"'"!'##$#!!!$ $$ $##$"!$"$ $!!!!!!$!!!!!!!!$## $# $ (h0( 0 f[0 `p.S8x3x8@[xx@C8:rRZagkP3Ps9S{862gjQO#{D3Aq),80X0(P8|,8(hTsst2Ql:t(pX$ia))AaL1QaaQ1AALCcX\{P , ЀЀЀЀЀЀЀЀІЃЀЀЀЀІЃЀЀЃЀЀЀЃЀЀЀЃЀЂЂЂЂЁЇЃЀЃЀЃЁЃЃЀІЂЇЂЁЇЃЃЄЃЁЁЁЄЀЀЀЀЀЀЀЄЄЀЀЀЄЃЃЄЂЁЄЂЄЀЀЀЄЁЁЁЁЁЁЄЁЁЁЁЁЁЁЁЄЃЃЀЄЃЀЀЄ шЈҨАҨҘӠјҮгӘҰиѰӞӃҠҨңѠӐӰЛҸшѰӓрӪҪѪњѹӧӓРӃҀгҡѻѫј҆ТӇъѱ҇ћӳѼҳұѩЙФШиѠҐАѐиЄҬҠӸѠԄуУӌҢЁдѢҼРРҸԄӁЁҩӹә҉мҩӹөӹЩҙөӱЬЛЫИӬћӠѸ҄ ₠₸₸₸₨₠₰₠₮₣₠₰₰₨₶₣₸₰₳₠₠₰₫₰₸₨₳₠₲₺₢₺₱₯₳₠₻₨₣₹₫₫₸₮₲₿₲₹₷₳₫₼₣₡₩₹₤₠₠₨₠₠₨₠₴₴₠₰₸₤₫₳₼₲₹€₲₤₨₠₨₴₱₱₡₩₡₡₴₡₱₹₩₡₹₹₩₴₫₣₨₴₻₸₰₴ ▀■▐█▐█▀■▖▛▀▘▀▀▦▓▘▀▛▐█▘▃■▀▐▛▀▒▚▚▢▙▇▋■▓■▋▉▃▣█▆▢▏▚▙▏▛▋▔▣▙░▁▄▀▀██▘■▐▔▤█▐█▄▣▃▄▢▙▄▊▄▐■▐▄▉░▉░░▁▌▉▙□□▙▁□□▔▓▛▐▤▓▀▐▔ ⽀⼰⾸⾀⼨⽈⽀⾨⼆⼓⾨⽰⽰⽦⾋⿀⼨⽛⽰⾘⿀⼫⼸⽰⾘⽻⿈⽢⼪⼪⽂⿁⾏⽛⽠⼫⾈⼻⾁⼣⼳⼠⾶⼂⾂⾹⼷⼣⼳⼤⼻⾡⾩⽙⼬⼠⼸⾨⾘⼀⾈⿐⽤⽼⾐⽠⽘⼌⼣⽻⿄⽂⽱⾼⽺⾴⼈⿈⼐⾼⽱⿁⾉⾩⾡⿑⾼⾉⼑⾑⾩⼩⾩⼙⼱⼄⽣⽣⼰⼔⿓⾸⾸⽤ ぐヨ゠ジぐぐゐむゖィグムヰジてホムヸビぐトエんグジグッよモヒゲりラはっヘルダにゑ・ほ゠ゎなェモべでにか゜んぁけらボぐヸエじよぐばがゔバムじツかッガずケゴひいヨゐやヹすららヱべゼらァヹヱぱべちぱぬ・にグゔルとエぼ @@@@@@@@FC@@@@FC@@C@@@C@@@C@BBBBAGC@C@CACC@FBGBAGCCDCAAAD@@@@@@@DD@@@DCCDBADBD@@@DAAAAAADAAAAAAAADCC@DC@@D ﷀ뤸娰裸坨饀냐엾ᅳᒸ㰠䌨址咾勃雈瑰㋫坘썰⍘駃垈⎐㴠隃ﻘ췲➪鮢䕒ထ栯耫뮸㏳鬘⽓信퀛볳啐鵮쥊䝿⊢䀹宧졳䙃⼌C悉A쭩馼蛀▨瞈ⱀﲘ저齸氤獄瑨⼸視瘔ꖳ鑫䉌휪箑覄汪ࡴ埸直ᤨ꾴㤱謙䚩ᓁ쪑蹩砌ᆙ㳱夁䜙싹쬡붩東潼ɛ굛梐눜亐낌
are all valid Unifuck programs because when the strings' code points are modulo 8, they turn into this:
0000000063000063003000300030222217303031330627217334311140000000440004334214240004111111411111111433043004
And according to the table above, comes down to this:
++++++++[>++++[>++>+++>+++>+<<<<-]>+>+>->>+[<]<-]>>.>---.+++++++..+++.>>.<-.<.+++.------.--------.>>+.>++.
In which outputs "Hello World!".
Unifuck to Brainfuck translator
def convert(s: str) -> str: table = { 0: "+", 1: "-", 2: "<", 3: ">", 4: ".", 5: ",", 6: "[", 7: "]", } try: codepoints = [ord(ch) for ch in s] mods = [cp % 8 for cp in codepoints] bf_code = "".join(table[m] for m in mods) except: return "Something went wrong" return bf_code print(convert(input("Enter unifuck code: ")))