Конкурс Популярности — Скрыть Приветствие Brainf*** В Другом Коде

  • Автор темы Ольга230977
  • Обновлено
  • 22, Oct 2024
  • #1

Цель состоит в том, чтобы написать программу (любую, кроме явного мозгового траха), которая печатает Барни Стинсонлучшее правило:

Новое всегда лучше.

при обычной интерпретации, но

Леген... подожди... дерзай!

При обработке интерпретатором Brainfuck.

Пусть победит самый популярный брат. У вас есть 72 часа, чтобы стать легендой.

#конкурс популярности #полиглот #brainfuck

Ольга230977


Рег
12 Apr, 2011

Тем
75

Постов
191

Баллов
606
  • 26, Oct 2024
  • #2

С#

Поэтому я решил проявить немного больше... творческого подхода к своей записи. Код Brainfuck встроен в C# в виде различных операторов (не в комментарии или жестко закодированные строки), тогда как сам код C# работает по принципу, аналогичному тому, как Brainfuck печатает символы (это означает, что нет жестко запрограммированных строк, и C# генерирует каждую отдельный символ как целое число, а затем при печати преобразует его в char).

Я уверен, что мог бы сделать это более элегантно, но мне потребовалось достаточно времени, чтобы закончить и так.

Все было проверено на этот интерпретатор JavaScript Brainfuck к Кэл Хендерсон и с компилятором C# Visual Studo 2012 (ориентированным на .NET framework v4.0).

 
 
 
 
 
 
 | 

Это оригинальный код Brainfuck, который я написал для этого задания:

t='++++++++++_+++++++|^+++++++|+[>++>+++%>++++>+++++<<<<-||]+++++++++++|*+++++++++++++@+>>+.>+||.++.|--.+++++++++.--|^--------.<<----..._<+++++|++.>|>+++++&++++++.>---.+=+++++++|.>---------.<<^<<.>>--||-----|--~-----|---.>>-----~.+++.<<<<.>|>>.*>++.<<<...<.>>--._>|--------|.>-^-.+++++++.<<<<!!!' print ''.join((chr(93+len(x))if x else' ')for x in t.split('|'))

При запуске кода C# через интерпретатор Brainfuck вы получаете следующие команды (обратите внимание на добавление квадратных скобок в начале, они взяты из объявления массива и ничего не делают, поскольку ячейка под указателем памяти в массив уже будет 0):

E ||answer||

Смолток

&

введите в рабочую область и нажмите «doIt» или отправьте в BF.

БФ украден с других постеров - спасибо.

 

Slawasspeed


Рег
28 Jun, 2009

Тем
81

Постов
182

Баллов
627
  • 26, Oct 2024
  • #3

Javascript / Трах мозгов

+5+1/1+5+3@6:2/1+5+5+1@6+2@6:5/1+3@6:5+1/1+5+5+1@6:5+2/1+5+5+2@6:5/1+3@6:5+2/1+5+5@6:5+5+2@6:2/1+5+53[@6>:5+2/1+5+5@6>:4/1+5+5+3@6+>:5+2/1+55+2@6:5/1+3@6>:5+3/1+55@6>:2/1+551@6<<<<<-]>:5+3./1+552-@66>+.:2/1+5+51.@6--.>:5+1/1+5+5+2@6:1/1+5@6+++++.>----...>+++++++.<<+++++++++.<----.++++++++.>---.>>.<<<---.>-----.+++.>>.<<<+++.>++.>...>.<<<-----.---.>--.+++++++.>>+.

Версия без гольфа, поскольку это не соревнование по кодовому гольфу:
Для меня это был повод изучить BF, и это было весело :) Трудность заключалась в том, чтобы никогда N as BF interprets it as user input and be sure that byte is 0 before using 78 использовать
для доступа к элементам массивов. +++++++@++++[>++@ encode a character and each string length before @ Кодировка JS довольно проста: каждая строка перед / = [] = , )

определяет код ASCII в десятичном виде. ( http://copy.sh/brainfuck/

Вы можете протестировать Brainfuck здесь:

 

Kokorins


Рег
23 Apr, 2010

Тем
66

Постов
229

Баллов
599
  • 26, Oct 2024
  • #4
(КубическиТИО) / БФ () var outputString=''; '+++++++@++++[>++@/+@@>@/+@+@++>++++++@/+>+@++@/+@@+++++@/>@+@+++++@/+++@+<@/<<<<-]>>>@-.>++.+@/+@@.--.>.<-@/.@<@<++...<-.@/>>>>+++++@++++.<-@/-@-.@+@/+@+@+++++@/.>-@--@/.<<<<.>>>@---.>---@/-@@-@/.@+@++.<<<@/<@.@>>>+++@/.@@>@/+@+@.<<<@/...<@.>>>--@/---.---.>--.+++++++.<<<<+.<' .split('/') .forEach(function(e) { var matched=e.match(/[^@]*@/g); if (matched) { var asciiCode=0; for(var i=0;i<matched.length;i++) { asciiCode=matched[i-0].length-1+10*asciiCode; } outputString+=String.fromCharCode(asciiCode); } }); alert(outputString);

ТИО

(Обновлено 4 августа 2017 г. с учетом языковых изменений в Cubically) "adding adding all the time" "1+1+1+1+1+1+1+1+1+1+1" "is not fine" "more to come / going far" "+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1" "all that work for a single char" "happy me / a loop to start" "[>++>+++>++++>+++++<<<<-]" "was it code or just a fart?" "adding adding / thats not fine" "+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1" ">>+" 'New is always better.' "shall I " print ">+.++.--.+++++++++.----------.<<----...<+++++++" "the garbage here gives us no hint" ".>>+++++++++++.>---.++++++++" "hurray a change to stop the pain" ".>---------.<<<<.>>" "the author now has in his brain" "-----------------.>>-----.+++.<<<<.>>>.>++." "We all agree the time is here" "<<<...<.>>--.>--------.>--.+++++++.<<<<." "to finish this and have a beer" / [] > +++++ +++ [ - < +++++ ++++ > ] < ++++ . +++++ > ++ [ - < +++++ +++++ > ] < . ++ . -- . +++++ ++++ . ---- > +++++ + [ - < ----- ----- > ] < ... >> +++++ + [ - < +++++ > ] < ++ . >> +++++ +++++ ++ [ - < +++++ +++++ > ] < - . > +++++ + [ - < ---- > ] < ++ . +++++ +++ . > ++ [ - < +++++ > ] < + . < . >> +++ [ - < ----- > ] < + . +++++ ++++ . +++ . < . > ----- ---- . +++++ +++++ + . << ... > . >> ++++ [ - < ---- > ] < . --- . > ++++ [ - < ++++ > ] < + . > ++ [ - < +++ > ] < + . < + . По сути, это просто использует столько символов из программы BF, сколько возможно в программе Cubically, а затем прикрепляет остальную часть программы BF к концу. Никакого принудительного прекращения с

в программе Cubically необходимо.

 

JohnAA


Рег
15 Jul, 2008

Тем
82

Постов
184

Баллов
614
  • 26, Oct 2024
  • #5

Python / BrainF**k, 362 символа

Код BrainF**k взят из удаленного ответа Клемана Рено. Редактировать

> +++++ +++ [ - < +++++ ++++ > ] < ++++ . +++++ > ++ [ - < +++++ +++++ > ] < . ++ . -- . +++++ ++++ . ---- > +++++ + [ - < ----- ----- > ] < ... >> +++++ + [ - < +++++ > ] < ++ . >> +++++ +++++ ++ [ - < +++++ +++++ > ] < - . > +++++ + [ - < ---- > ] < ++ . +++++ +++ . > ++ [ - < +++++ > ] < + . < . >> +++ [ - < ----- > ] < + . +++++ ++++ . +++ . < . > ----- ---- . +++++ +++++ + . << ... > . >> ++++ [ - < ---- > ] < . --- . > ++++ [ - < ++++ > ] < + . > ++ [ - < +++ > ] < + . < + .

— Начальный нулевой символ больше не печатается. using System; namespace Polyglot { internal static class Program { private static void Main() { var a = new short[50]; short _1 = 72; short _2 = 0; short _3 = 0; short _4 = 0; short _5 = 0; short _6 = 0; short _7 = 97; short _8 = 0; short _9 = 0; short _10 = 0; short _11 = 0; short _12 = 0; short _13 = 0; short _14 = 0; short _15 = 0; short _16 = 46; short _19 = 0; short _20 = 0; short _21 = 0; if( 0 >= 0 ) { ++_1; ++_1; ++_1; ++_1; } a[ -1 < 0 ? 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 : 0 + 1 > 1 ? 0 : 0 ] = 9001; if( 7 < 42 ) { ++_1; ++_1; } Console.Write( (char)_1 ); _2 = 101; _1 += 1 + 1 + 1 + 1 + 1; _3 = 42 > 7 ? 110 + 9 : 1 + 1; a[ -1 < 0 ? 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 : 0 > 0 ? 0 : 0 ] = 9001; if( 1 < 2 ) _4 = 32; Console.Write( (char)_2 ); ++_1; _5 = 105; Console.Write( (char)_3 ); --_1; _6 = 115; Console.Write( (char)_4 ); ++_1; ++_1; ++_1; _1 += 1 + 1 + 5; Console.Write( (char)_5 ); --_1; --_1; if( 42 > 41 ) { ++_1; ++_1; ++_1; } a[ -1 < 0 ? 0 : 10 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 > 5 ? 0 : 0 ] = 9001; if( 42 < 9001 ) Console.Write( (char)_6 ); Console.Write( (char)_4 ); Console.Write( (char)_7 ); if( 12 > 11 && 11 > 10 ) { _8 = 108; _9 = _3; } else { ++_1; ++_1; ++_1; } a[ -1 < 0 ? 1 + 1 + 1 + 1 + 1 + 1 : 1 > 2 ? 0 : 0 ] = 9001; if( _4 < _1 ) { ++_1; Console.Write( (char)_8 ); } else if( _4 > _19 && _2 > _20 ) { ++_21; ++_21; ++_21; ++_21; ++_21; _21 += (short)( _21 + 36 ); } a[ -7 < 9 ? 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 : 4 > 8 ? 9 : 9 ] = (short)( 12 < 10 ? -_4 : _9 ); Console.Write( (char)_9 ); if( _4 > _9 ) { ++_1; ++_1; ++_1; } a[ -9 < 7 ? 10 - 1 - 1 - 1 - 1 : 6 > 7 ? 0 : 0 ] = _21; if( 1 < 0 ) return; else { ++_1; Console.Write( (char)_7 ); } _10 += 5 + 4 + 1 + 2 + 8 + 9 + 1 + 91; Console.Write( (char)_10 ); if( 10 > _4 ) ++_21; else a[ -0 < 0 ? 5 + 6 + 1 + 2 + 3 + 9 : 1 > 2 ? 0 : 9 ] = 50; if( _21 <= _4 ) _11 = 58 + 57; Console.Write( (char)_11 ); if( _2 <= _8 ) Console.Write( (char)_4 ); else if( 1 >= 2 ) return; else if( 42 >= _4 ) _1 += ++_21; else { a[ -99 < --_1 ? --_1 - _1 : 44 > 12 ? 9 : 7 ] = (short)( _2 < _4 ? _21 : 6 ); throw new Exception(); } switch( _4 ) { case 32: var x = (char)( (short)( _4 + 66 ) ); Console.Write( x ); break; default: break; } _12 += (short)( ++_12 + ( ++_1 ) + 1 + 1 + 1 ); Console.Write( (char)_12 ); _13 += (short)( 39 + 38 + 39 ); Console.Write( (char)_13 ); if( _12 < _13 ) Console.Write( (char)_13 ); if( _13 >= _4 ) { _14 = (short)( 500 - ( - ( 50 ) ) - ( --_1 ) - 90 - ( -4 ) - 267 ); Console.Write( (char)_14 ); } switch( _1 ) { case 52: _15 += (short)( ++_1 + ( ++_21 ) ); break; default: _15 += (short)( 15 + ( ++_1 ) + 2 ); break; } Console.Write( (char)_15 ); if( _16 <= 3521 && _21 < _4 ) Console.WriteLine( (char)_16 ); _16 = (short)( Int16.Parse( "54" ) % 2 ); _20 = (short)( Int16.Parse( "99" ) / ( _1 > _4 ? 3 : 0 ) ); _1 = (short)( 02.23 ); if( _16 > 9 || _20 >= 52 ) _1 += (short)( ( ++_1 ) + _21 ); a[ -0 < 0 ? -52 - ( --_20 ) : 1 > 0 ? 1 : 2 ] = (short)( _12 < _19 ? Int16.Parse( "19" ) : 44 ); _12 -= (short)f( --_19 / 19.467d ); if( _12 > _14 ) _19 += (short)( _19 + 1 + _3 + 5 ); a[ -904 < 409 ? 4 + ( ++_4 ) + 4 : 49 > 50 ? 49 : 50 ] = (short)( 50 < 99 ? _4 + 669.2452 : 0 ); if( 44 > ++_4 ) a[ -9 < 6 ? 6 + ( ++_4 ) : 9 > 2 ? 44 : 8 ] = 3; } private static double f( double x ) { return x < 12 ? x + 13.22 : x < 6 ? x + 90.45 : 5555; } } } characters were added to the BF program, and the distances between them encode the string printed in Python. The Python code is mostly ignored by BF.

 

Volkuuu


Рег
04 Nov, 2006

Тем
76

Постов
185

Баллов
575
Тем
403,760
Комментарии
400,028
Опыт
2,418,908

Интересно