Полицейские И Грабители - Перекрывающиеся Полиглоты

  • Автор темы MikhA___
  • Обновлено
  • 20, Oct 2024
  • #1

В отличие от многих задач C&R, для этого не требуется отдельный пост грабителей; цель грабителей — взломать предыдущий ответ, а затем опубликовать новый в качестве полицейского.

В качестве отвечающих вы напишете ряд полиглотов, которые выглядят следующим образом (каждый столбец — это язык, а каждая запись — это результат ответа на этом языке):

 2 

(пробелы означают, что в этом случае никакого поведения не требуется).

Каждый ответ должен работать на 3 языках и печатать 3 разных последовательных числа, каждое из которых больше чисел, напечатанных в предыдущем ответе (первый ответ печатает 1 , 0 , и Language: 1 2 3 4 5 6 7 8 ... Answer 1: 0 1 2 Answer 2: 1 2 3 Answer 3: 2 3 4 Answer 4: 3 4 5 Answer 5: 4 5 6 Answer 6: 5 6 7 ... ). Each answer uses two languages from the previous submission, and a third new language. The answerer should try to obfuscate what this third language is.

Чтобы опубликовать новый ответ, вам необходимо:

  • Найдите самый последний ответ, найдя его третий язык.
  • Желательно добавить пояснение к вашему кряку и сообщить автору ответа. После того, как ваше сообщение будет взломано, вам желательно также добавить объяснение.
  • Напишите полиглот, состоящий из второго и третьего языков этого ответа, а также другого языка по вашему выбору. Раскройте свои первые два языка, но не раскрывайте свой новый. Целью следующего автора будет найти этот язык (или любой другой язык, на котором он работает), поэтому вам следует попытаться его запутать.

Технические характеристики

  • Критерии допустимого языка программирования такие же, как и у Викторина по языку программирования, Mark II - Cops:

  • Каждый ответ должен быть запущен менее чем за минуту на разумном ПК.

  • Ты может повторно использовать языки программирования, но между ними должно быть как минимум два ответа (поэтому отдельный ответ не может повторно использовать язык).
  • Взлом представления заключается в нахождении любой язык программирования, который выводит правильный результат, а не только запланированный. Если заявка выполняется на каком-либо языке, который не был заявлен или признан работоспособным, никаких действий предпринимать не требуется.
  • Вы не можете публиковать сообщения дважды (или более) подряд.

Критерий победы

Выигрышным ответом будет тот ответ, на разгадку которого потребовалось больше всего времени. Испытание никогда не закончится, поэтому победный ответ всегда может измениться.

#полицейские и грабители #полиглот #запутывание #цепочка ответов

MikhA___


Рег
16 Apr, 2006

Тем
80

Постов
187

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

Гексагония, Кляйн (101) и ???

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
a=1+2+3+3+4+5+6+7+8+9
b=1+1+1
f=3--(-1)
c=7+9+13+11+12+3--1
g=a+b+c+1+2+3+4+5
j=9+7+g+c+b+a+g+g+g+g+g+g+1+2+3+4+1+1
h=1+1+1+1+333+1+1+1+111+1+1+1+333+1+1+1+1+1.
print(f)

Это печатает

abcd={} -- a gaffe avoiding tactic in C++
abcd[false]=1+2+3+4+5+6+7+8+9+10+11+12+13+14
print(abcd[0>1+2+3 and 4+5+6<0-0]//35)
if 0>1 then a.next=';' end
in Hexagony,
 
 
 
 
 /<space> 
in Klein (101)
, и / in ???.

% does not work if a newline is added at the end of the code. Be careful if you're testing locally.

Редактировать: Прожить 20 часов в эфире — это уже рекорд, поэтому в дальнейшем я дам несколько подсказок. (Также потому, что рассматриваемый язык, по моему мнению, еще не широко известен.)

Подсказки

  1. " % does not work if a newline is added at the end" is очень значимы, а также первые два пробела (которые игнорируются как Гексагонией, так и Кляйном).
  2. Язык находится на TIO.
  3. Первые два пробела заставляют программу перейти на последнюю строку. (Его нет двумерный язык.)
  4. Нет явной команды вывода, и <# command ends the program.

Объяснение (треснувший пост)

В исходном коде

%/ <#> 13 14 + 15

Соответствующие инструкции в Кляйне (101):

/@++++2345 start: program: db 'function',10 add program,program jp null+$8 sbc rbp,rbp jnz program jr program add start halt ex:

Кляйн — это грибовидный 2D-язык, в котором пересечение границы области кода (которая представляет собой квадрат) зависит от топологии Кляйна. %/ <#> 13 14 + 15 and say являются зеркалами.

IP начинается в верхнем левом углу, обращенном вправо. Он встречается с зеркалом ближе к верхней границе и снова входит в область кода с правой стороны, как показано выше. Затем он снова ударяется о зеркало, нажимается на 8, а затем (после прохождения границы несколько раз) останавливается на not . Then the content of the stack is printed to stdout, which is single 8.

 

Максим Китаев


Рег
28 Oct, 2020

Тем
73

Постов
220

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

Бефунге-96, Гексагония и ???

@

Это печатает [ //aТ/\\ ][ //е"6 console.log(111-111+12)] //!'!/-²6-²52@++++2345 %/ <#> 13 say 14 + not not 15 in Befunge-96, 111 in hexagony и 111 in ???.

Объяснение

Код шестиугольника в «украшенном» виде:

11+

Путь казни начинается в левом верхнем углу и направляется на восток. Верхний ряд мало что делает. ((1 changes the current memory edge so the value in it is !!8@e6v+4>9 \ 1((111+111)/111) 00 ~tz . Казнь продолжается в восточном направлении в среднем ряду, где AAAA loads AAA в текущем крае памяти и печатает как целое число. AAB changes the instruction pointer to North East starting back at A . После 12 , execution then reaches 11 который меняет указатель инструкции на северо-запад, начиная с юго-восточного угла. Наконец путь 10 where [,,E,D,,$,H,_,K,,$,,_,F,L]=! []+[]+!![]+[][111] _=[111][F+L+E+E];[,J,,A,I,,B,C,S]= []+_;$=A+B+C+D+I+H+J+A+I+B+H R=_[$](H+K+I+J+H+C+S+H+B+B+I)();G=($[$]+[])[14] R[A+B+C+D+B+E+K][E+B+G](12);` iP<` завершает программу.

 

Oneuggfjzrg


Рег
08 Feb, 2011

Тем
65

Постов
183

Баллов
508
  • 26, Oct 2024
  • #4

Луа, ебать мозги, ???

A.;

Печатает 3 в Lua, 4 в Brainfuck и 5 в ???.

Объяснение для треснувший пост:

!!8@e6v+4>9 \ 1((111+111)/111) 00 ~tz
  • В Python 3 10 is 2, so 9 печатает 2 (остальное не нужно)
  • В Луа, 8 again is a comment, so !!8@e6v+4>9 \ Almost everything you can find on the internet is true ~Albert Einstein ~HUMAN IMAGE MACROS всего 3, так что ; prints 3 (other stuff is again unnecessary)
  • В Brainfuck есть 57 плюсов и 5 минусов, что ставит первую ячейку на ленте на 52, а n outputs character 52 which is 4.
 

Cosmos777


Рег
11 Apr, 2011

Тем
72

Постов
186

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

Курок, JavaScript и ???

v

Принты 6 in Trigger, 5 in JavaScript, и 4 in abcd={} -- a gaffe avoiding tactic in C++ abcd[false]=1+2+3+4+5+6+7+8+9+10+11+12+13+14 print(abcd[0>1+2+3 and 4+5+6<0-0]//35) if 0>1 then a.next=';' end >1+9*,@ .

Поскольку до сих пор этот ответ не был взломан дольше, чем любой другой ответ, вот несколько подсказок:

  • Если вы не заметили, то // k... nak... naKaka pagpAbaGaBag static answer: Option<&String> = None; fn llanfairpwllgwyngyllgogerychwyrndrobwllllantysiliogogogoch(s: &String){ answer = Some(s); } fn pneumonoultramicroscopicsilicovolcanoconiosis(){ println!("{}", answer.unwrap()); } fn main(){ let s = String::from("17"); let t = "Hi! I am a cat. AOOOWRRRWWW! Me need Whiskas! Noow! Mee hungry hast bekommen. Feedme! sudo !!. Sad... six cable hostage wire cable diediediediee # */"; llanfairpwllgwyngyllgogerychwyrndrobwllllantysiliogogogoch(&s); pneumonoultramicroscopicsilicovolcanoconiosis(); } and 6 в первой строке многобайтовые символы.
  • ><> and 7 не являются операциями.
  • Вторая линия, как и Befunge-96 , is dead code.
  • В языке нет понятия завершения, поэтому ><> forms an infinite loop.
  • Точнее, второй байт кодировки UTF-8 abcd={} -- a gaffe avoiding tactic in C++ abcd[false]=1+2+3+4+5+6+7+8+9+10+11+12+13+17! print(abcd[0>1+2+3 and 4+5+6<0-0]//35) if 0>1 then a.next=';' end >1+6.@ , together with the a={1,2} print(1+#a --bool(1/2) ) , образует бесконечный цикл.
  • Выводимое число кодируется a=1+2+3+3+4+5+6+7+8+9 b=1+1+1 f=3--(-1) c=7+9+13+11+12+3--1 g=a+b+c+1+2+3+4+5 j=9+7+g+c+b+a+g+g+g+g+g+g+1+2+3+4+1+1 h=1+1+1+1+333+1+1+1+111+1+1+1+333+1+1+1+1+1. print(f)
  • Этот язык отсутствует в Try It Online, Rosetta Code или Esolangs.
  • Единственная доступная форма вывода — экран с разрешением 1 бит на пиксель.
  • Соотношение сторон экрана — 2.
  • Хотя изначально этот язык не задумывался как машинный код, его реализации на FPGA существуют.
  • Согласно Википедии, предназначением языка были видеоигры.
  • Единственный способ получить доступ к экрану — это специальная инструкция, которая немедленно принимает координаты в выбираемых регистрах и высоту и выполняет XOR над растровым изображением размером 8 на n на экране. Чтобы упростить обнаружение столкновений, а также сделать возможным очистку экрана, один из регистров будет установлен, когда какой-либо пиксель снова отключится.

Объяснение

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

2

Это означает, что, хотя много доступный эмуляторы вести себя правильно, реализация «по правилам» связана во втором предложении Страница в Википедии. Конечно, его нельзя запустить напрямую на обычном ПК, но я нашел ссылку на эмулятор Emma 02 на VIP-страница КОСМАК работать лучше всех.

1 ||answer||

Питон 2, Питон 3, ???

0

Это печатает 1 в Python 2, 2 в Python 3 и 3 в ???.

Объяснение кряка (треснувший пост):

#define print(A) main(){puts("0");} print(1+bool(1/2))
  • : C: The first line defines a function-like macro rustc который игнорирует свой единственный аргумент и оценивается как , a full program that prints fn avreg(){} fn/*azxzzz avreg k zqyzzz ax quke >>P0 ++puts++puts[pov] \@�{>*}++puts++puts++puts++puts++puts++puts++puts++puts% */main(){print!("17")} и выходит. Все выражение : label-0 0x2F 0x21 0x27 0x21 0x2F is ignored when the sprite макрос во второй строке расширяется до [ 0x5b, 0x20, 0x2f, 0x2f, 0x61, 0xD0, 0xA2, 0x2f, 0x5c, 0x5c, 0x20, 0x5d, 0x5b, 0x20, 0x2f, 0x2f, 0xD0, 0xB5, 0x22, 0x36, 0x0a, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x67, 0x28, 0x31, 0x31, 0x31, 0x2d, 0x31, 0x31, 0x31, 0x2b, 0x31, 0x32, 0x29, 0x5d, 0x0a, 0x2f, 0x2f, 0x21, 0x27, 0x21, 0x2f, 0x2d, 0xb2, 0x36, 0x2d, 0xb2, 0x35, 0x32 ] .

  • 14 : Python 2: The first line is a comment. 13 использует целочисленное деление в Python 2, что дает 0. Затем это значение интерпретируется как логическое значение ( 12 -> [ //aТ/\\ ][ //е"6 console.log(111-111+12)] //!'!/-²6-²52@++++2345 ), а затем добавлено в 2 ( 1+True -> 1 ), and then printed.

  • True : Python 3: The first line is a comment. bool(0.5) использует деление с плавающей запятой в Python 3, что дает 0,5. Это значение затем интерпретируется как логическое значение ( 1/2 -> 2 ), а затем добавлено в 1 ( 1+False -> 1 ), and then printed.

 

erelaybyloacy


Рег
01 Mar, 2011

Тем
55

Постов
189

Баллов
534
  • 26, Oct 2024
  • #6

JavaScript, ЧИП-8, и ???

False

bool(0) in JavaScript, 1/2 in CHIP-8, and 1 в ???

Я собираюсь рискнуть и назвать это взломанным, хотя я не могу заставить его работать, я уверен в языке (кажется, этого требуют правила).

Вот несовершенное объяснение треснувший пост

Код в шестнадцатеричном виде «есть» (возможно, я немного ошибаюсь):

main(){puts("0");}

Ты можешь идти здесь, нажмите «Двоичные инструменты» и вставьте это в поле байтового массива. Нажмите «Декомпилировать».

Ключевыми элементами кода являются: инструкции, позволяющие сказать, где находится «число», print( ) command that prints the number, the correct amount of junk here and there, and the following:

1+bool(1/2)

Чтобы увидеть, что это означает, вы можете нажать «Редактор спрайтов» и вставить эти шестнадцатеричные числа в поле внизу. Вы увидите ответ:

Я почти уверен, что тогда вы можете поставить в конце все, что захотите, и результат CHIP-8 не изменится, отсюда и новая запись.

Я был бы рад, если бы кто-нибудь смог заставить это полностью работать, а не «доказательство» ответа, который я дал здесь.

 

Classicalive


Рег
24 Sep, 2011

Тем
78

Постов
185

Баллов
595
  • 26, Oct 2024
  • #7

Битник, Ржавчина, ???

0

Это напечатает 16 в Beatnik, 17 в Rust и 18 в ???.

main(){puts("0");} character on line 4 should be replaced with ASCII character 18 (this was not done in the TIO links since it's not relevant to either of them).

Объяснение (треснутый):

Языком предыдущего ответа был Rust: в частности, Rust скомпилирован с mrustc. mrustc — экспериментальный компилятор, и поскольку он в основном предназначен для загрузки допустимой версии print , it ignores borrow checking and mutability checking, allowing @NieDzejkob's snippet to compile without errors.

Эта программа будет работать с обычным компилятором Rust, поэтому вам не нужно устанавливать mrustc для ее тестирования.

Подсказки

Поскольку этот ответ дольше всех не был взломан, я оставлю подсказку и буду продолжать делать это регулярно, пока он не будет взломан:

  • Секретный язык двумерен, и его можно найти на вики-странице Esolang, посвященной двумерным языкам.
  • Как я уже упоминал в комментариях, на TIO языка нет.
  • 0 character is a red herring and has very little significance. Most bytes can be substituted in its place and the program will still work.
 

Rumata2


Рег
07 Dec, 2005

Тем
85

Постов
182

Баллов
637
  • 26, Oct 2024
  • #8

C, Питон 2, ???

#define print(A) main(){puts("0");} print(1+bool(1/2))

Это печатает a={1,2} print(1+#a --bool(1/2) ) in C, 020A 205d CALL 0x05D ; Skipped. 020C 5b20 SE VB, V2 ; Same as with the very beginning. Red herring. 020E 2f2f CALL 0xF2F 0210 d0b5 DRW V0, VB, 5 ; Draw the sprite pointed to by I. Since V0 and VB ; haven't been written to yet, the sprite will be drawn ; in the top-left corner of the screen. The height is ; an immediate. 0212 2236 CALL 0x236 ; Jump over the JavaScript and Trigger code. It doesn't ; matter that we never return. 0214-022E *never used* 022F 2f DB 101111 ; Sprite data. 0230 21 DB 100001 0231 27 DB 100111 0232 21 DB 100001 0233 2f DB 101111 0234-0235 *never used* 0236 b236 JP V0, 0x236 ; Since V0 is still zero, this is an infinite loop. 0238-023C *never used* ; Together with the previous two lines, it's the ; -²6-²52. It's a red herring supposed to suggest ; prefix, or Polish, notation. в Python 2 и 0200 5b20 SE VB, V2 ; Skip the next instruction if VB = V2. Since all 0202 2f2f CALL 0xF2F ; registers start at 0, this call will be skipped. This ; hides the bytecode from JavaScript. 0204 61d0 LD V1, 0xD0 ; A useless load. Necessary to use a UTF-8 continuation 0206 a22f LD I, 0x22F ; byte as an instruction and load the address of ; the sprite. 0208 5c5c SE VC, V5 ; A red herring supposed to suggest symmetry is ; important, as well as a totally intended eliminator ; of inaccurate implementations. Most documentation ; claims that the lowest nibble must be zero, but in ; the original COSMAC VIP implementation it's ; a don't-care. in ???.

Людям, знающим Python, это будет чрезвычайно легко взломать, но мне нужна отправная точка для других ответов. Последующие ответы должны попытаться запутать третий язык (я этого не делал).

 

Денси


Рег
23 Oct, 2010

Тем
71

Постов
210

Баллов
585
  • 26, Oct 2024
  • #9

Python 3, Lua, ???

/!'!/

Печатает 2 в Python 3, 3 в Lua и 4 в ???.

Объяснение для треснувший пост:

6
  • В Lua -- — это комментарий. В Python 2 и 3 -- означает двойное отрицание в арифметике.
  • В Python 2 и 3 # является комментарием. В Lua # — это оператор длины.
  • В Python 2 1/2 — это деление этажа, поэтому оно равно нулю. В Python 3 это не так. Поскольку обе версии Python оценивают 0 как False, bool(1/2) оценивается как False в Python 2 и True в Python 3. При использовании в арифметике False приводится к 0, а True — к 1.
 

Владислав Савченко


Рег
28 Oct, 2020

Тем
79

Постов
239

Баллов
674
  • 26, Oct 2024
  • #10

><>, Бефунге-96 и ???

²

Это печатает 5 дюймов ²6 , 6 дюймов -²52 и \\ ][ // in ???.

Я знаю, что предполагаемым решением был Befunge-93, но я не удержался.

Объяснение:

Befunge-96 следует по тому же пути, что и [ // , but ignores unknown instructions, ending up adding one to the 5 and multiplying it by 9 to get 54, the ascii code for е .

 

Alena7476


Рег
21 Feb, 2008

Тем
64

Постов
220

Баллов
550
  • 26, Oct 2024
  • #11

Комментатор, Битник, ???

Т

Выходы 15 в Комментаторе, 16 в Битнике, и 17 на том, надеюсь, одном языке, который вы должны найти.

Ладно, пришло время подсказок:

  • Название языка относится к соединению двух элементов, оба из которых составляют ваше тело, но в очень разных процентных соотношениях (в зависимости от того, являетесь ли вы роботом).
  • Сам язык находится на TIO, но реализация — нет.
  • Ой, давай.
 

Iemaian


Рег
07 May, 2021

Тем
77

Постов
199

Баллов
604
  • 26, Oct 2024
  • #12

Brainfuck, ><> и ???

REDACTED

Принты 13 in Brainfuck, 12 в ><> и 11 in ???

  • В мозговебе ничего не меняется.
  • В ><>, [ //aТ/\\ ][ //е"6 console.log(111-111+12)] //!'!/-²6-²52 redirects the flow of the program downwards. The . является нчисловой вывод. print(f) ends execution.
 

Всеволо


Рег
01 Jul, 2011

Тем
81

Постов
194

Баллов
599
  • 26, Oct 2024
  • #14

Valaxr


Рег
31 Oct, 2019

Тем
88

Постов
184

Баллов
654
  • 26, Oct 2024
  • #15

Сомма, Курок и ???

[

Это печатает 7+3 in Somme, 7 in Trigger, и [ in ???.

Поскольку два последних языка легко полиглотить, я решил смешать этот язык в.

Объяснение (треснувший пост)

Триггер видит весь код как серию токенов (токенизация жадная):

  • Один байт (обозначим 7 )
  • Два одинаковых байта, за которыми следует другой байт (обозначают 7! )
  • Три одинаковых байта (обозначаются 0 )
  • Четыре одинаковых байта (обозначаются - )

В исходном коде

a b c d = { } - - a g a f f e a v o i d i n g t a c t i c i n C + + a b c d [ f a l s e ] = 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 1 0 + 1 1 + 1 2 + 1 3 + 1 7 ! p r i n t ( a b c d [ 0 > 1 + 2 + 3 a n d 4 + 5 + 6 < 0 - 0 ] / / 3 5 ) i f 0 > 1 t h e n a . n e x t = ' ; ' e n d > 1 + 6 . @ . . . . . . . . . . . . . . . . . . . . . . . . . .

значимые токены 8 7 6 abcd={} -- a gaffe avoiding tactic in C++/C# abcd[!1]= 1+2+3+4+5+6+7+8+9+10+11+12+13+17! print(abcd[0>1+2+3 and 4+8+6<0-0]//35) if 0>1 then a.next=';' en\ >1+6.@.@ , где первые два ничего не делают, а последние два печатают по 1, то есть 11.

 

Black_seal


Рег
17 May, 2009

Тем
60

Постов
202

Баллов
512
  • 26, Oct 2024
  • #16

ЧИП-8, Кляйн (100), ???

@

Выходов 13 в CHIP-8 (я полагаю), 14 в Кляйне, и 15 в ???.

Другой Топология Клейна, тск тск. Я сохранил код до \ , since I don't know what will affect CHIP-8.

Подсказки

Я как-то запоздал с этим, извини. Я постараюсь добавлять по одному в день.

  • Удаление первой половины (первых трех строк) программы все еще работает.
  • Это не 2D язык
  • Язык находится на TIO
  • / s and the IP->.....................^...........IP->/ .........................|................... .........................8 .........................\<-.............IP<- @ можно удалить, не затрагивая программу

Для справки, программа без всего этого выглядит так:

abcd={} -- a gaffe avoiding tactic in C++/C# abcd[!1]= 1+2+3+4+5+6+7+8+9+10+11+12+13+17! print(abcd[0>1+2+3 and 4+8+6<0-0]//35) if 0>1 then a.next=';' en\ >1+6.@.@

Попробуйте онлайн!

 

Людмила П


Рег
05 Apr, 2017

Тем
69

Постов
170

Баллов
535
  • 26, Oct 2024
  • #17

Кляйн (100), Комментатор, ???

v

Выходы 14 в Кляйне (100), 15 в Комментаторе, 16 в ???.

Я серьезно плохо умею запутывать полиглотов.

Объяснение (Треснувший пост)

9

В Commentator общие маркеры комментариев и пробелы являются важными командами, а любые другие символы игнорируются.

  • Пробел увеличивает текущую ячейку памяти.
  • 9 does XOR 1 on the current memory cell.
  • 9 is used to reset the current memory cell to zero.

Подождите, после осталось 16 мест. 8 , what happened?

На самом деле это небольшая ошибка (или особенность?) в интерпретаторе. 7 is treated as the start of a 2-char command, so the space after it is consumed. But xx={puts/} gets87!@xx=p main\ >9.*5,6v является неопределенной командой (таким образом, неактивной), поэтому пробел фактически пропускается.

 

Tekleh


Рег
02 Feb, 2007

Тем
71

Постов
195

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

Интересно