Overlapping Polyglots

The name of the pictureThe name of the pictureThe name of the pictureClash Royale CLAN TAG#URR8PPP











up vote
25
down vote

favorite
3












Unlike many C&R challenges, this does not require a separate robbers post; the goal of the robbers is to crack the previous answer and then post a new one as a cop.



As answerers, you will write a series of polyglots that look like this (each column is a language, and each entry is the output of the answer in that language):



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
...


(blank spaces mean that no behavior is required in that case).



Each answer should work in 3 languages and print 3 different consecutive numbers which are each one more than the numbers printed by the previous answer (the first answer prints 0, 1, and 2). 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.



To post a new answer, you should:



  • Crack the most recent answer by finding what its third language is.

  • Preferably, add an explanation for your crack and notify the poster of the answer. Once your submission has been cracked, you should preferably add an explanation as well.

  • Write a polyglot consisting of this answer's second and third languages, along with another language of your choice. Reveal your first two languages, but do not reveal your new one. It will be the next poster's goal to find this language (or any other language in which it works), so you should try to obfuscate it.

Specifications




  • The criteria for a valid programming language are the same as those of The Programming Language Quiz, Mark II - Cops:




    • It has an English Wikipedia article, an esolangs article or a Rosetta Code article at the time this challenge was posted, or is on Try It Online!. Having an interpreter linked in any of these pages makes that interpreter completely legal.

    • It must satisfy our rules on what constitutes a programming language.

    • It must have a free interpreter (as in beer). Free here means that anyone can use the program without having to pay to do so.



  • You can reuse programming languages, but there must be at least two answers in between (so an individual answer cannot reuse a language).


  • Cracking a submission consists of finding any programming language that prints the correct result, not just the intended one. If a submission is run in any language that was not declared or found to work, there are no requirements to do anything.

  • You may not post twice (or more) in a row.

Winning Criterion



The winning answer is whichever answer took to most time to be cracked. The challenge will never end, so it is always possible for the winning answer to change.










share|improve this question





















  • Sandbox.
    – Esolanging Fruit
    Sep 9 at 5:29






  • 2




    Opened a chatroom for discussion about possible cracks and building polyglots.
    – Bubbler
    yesterday














up vote
25
down vote

favorite
3












Unlike many C&R challenges, this does not require a separate robbers post; the goal of the robbers is to crack the previous answer and then post a new one as a cop.



As answerers, you will write a series of polyglots that look like this (each column is a language, and each entry is the output of the answer in that language):



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
...


(blank spaces mean that no behavior is required in that case).



Each answer should work in 3 languages and print 3 different consecutive numbers which are each one more than the numbers printed by the previous answer (the first answer prints 0, 1, and 2). 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.



To post a new answer, you should:



  • Crack the most recent answer by finding what its third language is.

  • Preferably, add an explanation for your crack and notify the poster of the answer. Once your submission has been cracked, you should preferably add an explanation as well.

  • Write a polyglot consisting of this answer's second and third languages, along with another language of your choice. Reveal your first two languages, but do not reveal your new one. It will be the next poster's goal to find this language (or any other language in which it works), so you should try to obfuscate it.

Specifications




  • The criteria for a valid programming language are the same as those of The Programming Language Quiz, Mark II - Cops:




    • It has an English Wikipedia article, an esolangs article or a Rosetta Code article at the time this challenge was posted, or is on Try It Online!. Having an interpreter linked in any of these pages makes that interpreter completely legal.

    • It must satisfy our rules on what constitutes a programming language.

    • It must have a free interpreter (as in beer). Free here means that anyone can use the program without having to pay to do so.



  • You can reuse programming languages, but there must be at least two answers in between (so an individual answer cannot reuse a language).


  • Cracking a submission consists of finding any programming language that prints the correct result, not just the intended one. If a submission is run in any language that was not declared or found to work, there are no requirements to do anything.

  • You may not post twice (or more) in a row.

Winning Criterion



The winning answer is whichever answer took to most time to be cracked. The challenge will never end, so it is always possible for the winning answer to change.










share|improve this question





















  • Sandbox.
    – Esolanging Fruit
    Sep 9 at 5:29






  • 2




    Opened a chatroom for discussion about possible cracks and building polyglots.
    – Bubbler
    yesterday












up vote
25
down vote

favorite
3









up vote
25
down vote

favorite
3






3





Unlike many C&R challenges, this does not require a separate robbers post; the goal of the robbers is to crack the previous answer and then post a new one as a cop.



As answerers, you will write a series of polyglots that look like this (each column is a language, and each entry is the output of the answer in that language):



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
...


(blank spaces mean that no behavior is required in that case).



Each answer should work in 3 languages and print 3 different consecutive numbers which are each one more than the numbers printed by the previous answer (the first answer prints 0, 1, and 2). 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.



To post a new answer, you should:



  • Crack the most recent answer by finding what its third language is.

  • Preferably, add an explanation for your crack and notify the poster of the answer. Once your submission has been cracked, you should preferably add an explanation as well.

  • Write a polyglot consisting of this answer's second and third languages, along with another language of your choice. Reveal your first two languages, but do not reveal your new one. It will be the next poster's goal to find this language (or any other language in which it works), so you should try to obfuscate it.

Specifications




  • The criteria for a valid programming language are the same as those of The Programming Language Quiz, Mark II - Cops:




    • It has an English Wikipedia article, an esolangs article or a Rosetta Code article at the time this challenge was posted, or is on Try It Online!. Having an interpreter linked in any of these pages makes that interpreter completely legal.

    • It must satisfy our rules on what constitutes a programming language.

    • It must have a free interpreter (as in beer). Free here means that anyone can use the program without having to pay to do so.



  • You can reuse programming languages, but there must be at least two answers in between (so an individual answer cannot reuse a language).


  • Cracking a submission consists of finding any programming language that prints the correct result, not just the intended one. If a submission is run in any language that was not declared or found to work, there are no requirements to do anything.

  • You may not post twice (or more) in a row.

Winning Criterion



The winning answer is whichever answer took to most time to be cracked. The challenge will never end, so it is always possible for the winning answer to change.










share|improve this question













Unlike many C&R challenges, this does not require a separate robbers post; the goal of the robbers is to crack the previous answer and then post a new one as a cop.



As answerers, you will write a series of polyglots that look like this (each column is a language, and each entry is the output of the answer in that language):



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
...


(blank spaces mean that no behavior is required in that case).



Each answer should work in 3 languages and print 3 different consecutive numbers which are each one more than the numbers printed by the previous answer (the first answer prints 0, 1, and 2). 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.



To post a new answer, you should:



  • Crack the most recent answer by finding what its third language is.

  • Preferably, add an explanation for your crack and notify the poster of the answer. Once your submission has been cracked, you should preferably add an explanation as well.

  • Write a polyglot consisting of this answer's second and third languages, along with another language of your choice. Reveal your first two languages, but do not reveal your new one. It will be the next poster's goal to find this language (or any other language in which it works), so you should try to obfuscate it.

Specifications




  • The criteria for a valid programming language are the same as those of The Programming Language Quiz, Mark II - Cops:




    • It has an English Wikipedia article, an esolangs article or a Rosetta Code article at the time this challenge was posted, or is on Try It Online!. Having an interpreter linked in any of these pages makes that interpreter completely legal.

    • It must satisfy our rules on what constitutes a programming language.

    • It must have a free interpreter (as in beer). Free here means that anyone can use the program without having to pay to do so.



  • You can reuse programming languages, but there must be at least two answers in between (so an individual answer cannot reuse a language).


  • Cracking a submission consists of finding any programming language that prints the correct result, not just the intended one. If a submission is run in any language that was not declared or found to work, there are no requirements to do anything.

  • You may not post twice (or more) in a row.

Winning Criterion



The winning answer is whichever answer took to most time to be cracked. The challenge will never end, so it is always possible for the winning answer to change.







cops-and-robbers polyglot obfuscation answer-chaining






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked Sep 9 at 5:22









Esolanging Fruit

8,06432373




8,06432373











  • Sandbox.
    – Esolanging Fruit
    Sep 9 at 5:29






  • 2




    Opened a chatroom for discussion about possible cracks and building polyglots.
    – Bubbler
    yesterday
















  • Sandbox.
    – Esolanging Fruit
    Sep 9 at 5:29






  • 2




    Opened a chatroom for discussion about possible cracks and building polyglots.
    – Bubbler
    yesterday















Sandbox.
– Esolanging Fruit
Sep 9 at 5:29




Sandbox.
– Esolanging Fruit
Sep 9 at 5:29




2




2




Opened a chatroom for discussion about possible cracks and building polyglots.
– Bubbler
yesterday




Opened a chatroom for discussion about possible cracks and building polyglots.
– Bubbler
yesterday










12 Answers
12






active

oldest

votes

















up vote
10
down vote













Hexagony, Klein (101) and ???



 xx=puts/
gets87!@xx=p

main

>9.*5,6v


This prints 7 in Hexagony, 8 in Klein (101), and 9 in ???.



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



Edit: Being live for 20 hours is already a record, so I'll give some hints from now on. (Also because the language in question is IMO not yet well-known.)



Hints



  1. "The 9 does not work if a newline is added at the end" is very significant, as well as the first two spaces (which are ignored by both Hexagony and Klein).

  2. The language is on TIO.

  3. The first two spaces make the program jump to the last line. (It's not a 2D language.)

  4. There's no explicit output command, and the v command ends the program.

Explanation (cracked post)



In the source code



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.@.@


The relevant instructions in Klein (101) are:



IP->.....................^...........IP->/
.........................|...................
.........................8
.........................<-.............IP<-
@


Klein is fungelike 2D language where crossing the boundary of code area (which is a square) depends on the Klein topology. / and are mirrors.



The IP starts at upper left corner facing right. It meets a mirror towards the top boundary, and re-enters the code area on the right side as shown above. Then it hits the mirror again, 8 is pushed, and then (after passing through the boundary several times) stops at @. Then the content of the stack is printed to stdout, which is single 8.






share|improve this answer


















  • 1




    cracked
    – NieDzejkob
    yesterday

















up vote
7
down vote













Befunge-96, Hexagony and ???



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.@.@


This prints 6 in Befunge-96, 7 in hexagony and 8 in ???.



Explanation



The hexagony code, when "prettified" is:



 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 .
@ . . . . . . . . .
. . . . . . . . .
. . . . . . . .


The path of execution begins in the top left heading East. The top row doesn't do much. - changes the current memory edge so the value in it is 0. Execution continues heading east on the middle row where 7! loads 7 in the current memory edge and prints is as an integer. [ changes the instruction pointer to North East starting back at 7. After 7+3, execution then reaches [ which changes the instruction pointer to North West starting in the South East corner. Finally the path is ..@ where @ terminates the program.






share|improve this answer


















  • 1




    Cracked.
    – Bubbler
    2 days ago

















up vote
6
down vote













Python 2, Python 3, ???



a=1,2
print(1+#a
--bool(1/2)
)


This prints 1 in Python 2, 2 in Python 3, and 3 in ???.



Crack explanation (Cracked post):



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


  • 0: C: The first line defines a function-like macro print that ignores its single argument and evaluates to main()puts("0");, a full program that prints 0 and exits. The whole expression 1+bool(1/2) is ignored when the print( ) macro on the second line is expanded to main()puts("0");.


  • 1: Python 2: The first line is a comment. 1/2 uses integer division in Python 2, giving 0. This value is then interpreted as a boolean (bool(0) -> False) and then added to 1 (1+False -> 1), and then printed.


  • 2: Python 3: The first line is a comment. 1/2 uses float division in Python 3, giving 0.5. This value is then interpreted as a boolean (bool(0.5) -> True) and then added to 1 (1+True -> 2), and then printed.






share|improve this answer






















  • +1 and Cracked
    – Zachary Cotton
    Sep 9 at 6:57

















up vote
6
down vote













Lua, brainfuck, ???



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


Prints 3 in Lua, 4 in brainfuck and 5 in ???.



Explanation for cracked post:



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)


  • In Python 3, 3--(-1) is 2, so print(f) prints 2 (the other stuff is unnecessary)

  • In Lua, -- again is a comment, so 3--(-1) is just 3, so print(f) prints 3 (other stuff is again unnecessary)

  • In brainfuck, there are 57 plusses and 5 minuses setting the first cell on the tape to 52, and the . outputs character 52 which is 4.





share|improve this answer






















  • +1 and Cracked
    – Zacharý
    Sep 9 at 11:50

















up vote
5
down vote













C, Python 2, ???



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


This prints 0 in C, 1 in Python 2, and 2 in ???.



This will be extremely easy to crack for people who know Python, but I wanted a starting-off point for other answers. Subsequent answers should try to obfuscate the third language (I did not do this).






share|improve this answer




















  • Cracked. Great challenge btw!
    – pizzapants184
    Sep 9 at 6:20

















up vote
4
down vote













Python 3, Lua, ???



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)


Prints 2 in Python 3, 3 in Lua and 4 in ???.



Explanation for cracked post:



a=1,2
print(1+#a
--bool(1/2)
)


  • In Lua, -- is a comment. In Python 2 and 3, -- indicates double negative in arithmetic.

  • In Python 2 and 3, # is a comment. In Lua, # is the length operator.

  • In Python 2, 1/2 is floor division, so it evaluates to zero. In Python 3 this is not the case. Because both versions of Python evaluate 0 to False, bool(1/2) evaluates to False in Python 2 and True in Python 3. When used in arithmetic, False is cast to 0 and True is cast to 1.





share|improve this answer






















  • Cracked
    – boboquack
    Sep 9 at 7:59

















up vote
4
down vote













><>, Befunge-96 and ???



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.@


This prints 5 in ><>, 6 in Befunge-96 and 7 in ???.



I know the intended solution was Befunge-93, but I couldn't resist.



Explanation:



Befunge-96 follows the same path as ><>, but ignores unknown instructions, ending up adding one to the 5 and multiplying it by 9 to get 54, the ascii code for 6.






share|improve this answer


















  • 1




    cracked
    – jslip
    Sep 9 at 13:10

















up vote
4
down vote













Klein (101), Z80Golf, ???



!!8@e6v+4>9 
Almost everything you can find on the internet is true
~Albert Einstein
~HUMAN IMAGE MACROS


Prints 8 in Klein (101), 9 in Z80Golf, and 10 in ???.






share|improve this answer




















  • Cracked by Bubbler
    – Jo King
    13 hours ago

















up vote
3
down vote













Brainfuck, ><>, and ???



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*,@


Prints 4 in Brainfuck, 5 in ><>, and 6 in ???



  • In brainfuck, nothing changes.

  • In ><>, v redirects the flow of the program downwards. The n is numeric output. ; ends execution.





share|improve this answer






















  • Cracked
    – Jo King
    Sep 9 at 12:23

















up vote
2
down vote














Z80Golf, Somme, ???



!!8@e6v+4>9 
1((111+111)/111)
00
~tz


This prints 9 in Z80Golf, 10 in Somme and 11 in ???.



Credit to Bubbler for cracking the previous post as Somme, which takes the column sum as the instructions. The first three columns evaluate to



A.;


Which pushes 10, prints it and exits.






share|improve this answer





























    up vote
    1
    down vote














    Somme, Trigger and ???



    [,,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<`


    This prints 10 in Somme, 11 in Trigger, and 12 in ???.



    Since the last two languages are easy to polyglot, I decided to mix that language in.



    Explanation (cracked post)



    Trigger sees the whole code as a series of tokens (tokenization is greedy):



    • Single byte (denote A)

    • Two same bytes followed by a different byte (denote AAB)

    • Three same bytes (denoted AAA)

    • Four same bytes (denoted AAAA)

    In the source code



    !!8@e6v+4>9 
    1((111+111)/111)
    00
    ~tz


    the significant tokens are ((1 11+ 111 111, where the first two does nothing and the last two prints 1 each - thus 11.






    share|improve this answer




















    • cracked
      – NieDzejkob
      2 hours ago

















    up vote
    0
    down vote














    Trigger, JavaScript and ???



    [ //aТ/\ ][ //е"6
    console.log(111-111+12)]
    //!'!/-²6-²52


    Prints 11 in Trigger, 12 in JavaScript, and 13 in REDACTED.






    share|improve this answer




















      Your Answer




      StackExchange.ifUsing("editor", function ()
      return StackExchange.using("mathjaxEditing", function ()
      StackExchange.MarkdownEditor.creationCallbacks.add(function (editor, postfix)
      StackExchange.mathjaxEditing.prepareWmdForMathJax(editor, postfix, [["\$", "\$"]]);
      );
      );
      , "mathjax-editing");

      StackExchange.ifUsing("editor", function ()
      StackExchange.using("externalEditor", function ()
      StackExchange.using("snippets", function ()
      StackExchange.snippets.init();
      );
      );
      , "code-snippets");

      StackExchange.ready(function()
      var channelOptions =
      tags: "".split(" "),
      id: "200"
      ;
      initTagRenderer("".split(" "), "".split(" "), channelOptions);

      StackExchange.using("externalEditor", function()
      // Have to fire editor after snippets, if snippets enabled
      if (StackExchange.settings.snippets.snippetsEnabled)
      StackExchange.using("snippets", function()
      createEditor();
      );

      else
      createEditor();

      );

      function createEditor()
      StackExchange.prepareEditor(
      heartbeatType: 'answer',
      convertImagesToLinks: false,
      noModals: false,
      showLowRepImageUploadWarning: true,
      reputationToPostImages: null,
      bindNavPrevention: true,
      postfix: "",
      onDemand: true,
      discardSelector: ".discard-answer"
      ,immediatelyShowMarkdownHelp:true
      );



      );













       

      draft saved


      draft discarded


















      StackExchange.ready(
      function ()
      StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fcodegolf.stackexchange.com%2fquestions%2f171884%2foverlapping-polyglots%23new-answer', 'question_page');

      );

      Post as a guest






























      12 Answers
      12






      active

      oldest

      votes








      12 Answers
      12






      active

      oldest

      votes









      active

      oldest

      votes






      active

      oldest

      votes








      up vote
      10
      down vote













      Hexagony, Klein (101) and ???



       xx=puts/
      gets87!@xx=p

      main

      >9.*5,6v


      This prints 7 in Hexagony, 8 in Klein (101), and 9 in ???.



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



      Edit: Being live for 20 hours is already a record, so I'll give some hints from now on. (Also because the language in question is IMO not yet well-known.)



      Hints



      1. "The 9 does not work if a newline is added at the end" is very significant, as well as the first two spaces (which are ignored by both Hexagony and Klein).

      2. The language is on TIO.

      3. The first two spaces make the program jump to the last line. (It's not a 2D language.)

      4. There's no explicit output command, and the v command ends the program.

      Explanation (cracked post)



      In the source code



      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.@.@


      The relevant instructions in Klein (101) are:



      IP->.....................^...........IP->/
      .........................|...................
      .........................8
      .........................<-.............IP<-
      @


      Klein is fungelike 2D language where crossing the boundary of code area (which is a square) depends on the Klein topology. / and are mirrors.



      The IP starts at upper left corner facing right. It meets a mirror towards the top boundary, and re-enters the code area on the right side as shown above. Then it hits the mirror again, 8 is pushed, and then (after passing through the boundary several times) stops at @. Then the content of the stack is printed to stdout, which is single 8.






      share|improve this answer


















      • 1




        cracked
        – NieDzejkob
        yesterday














      up vote
      10
      down vote













      Hexagony, Klein (101) and ???



       xx=puts/
      gets87!@xx=p

      main

      >9.*5,6v


      This prints 7 in Hexagony, 8 in Klein (101), and 9 in ???.



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



      Edit: Being live for 20 hours is already a record, so I'll give some hints from now on. (Also because the language in question is IMO not yet well-known.)



      Hints



      1. "The 9 does not work if a newline is added at the end" is very significant, as well as the first two spaces (which are ignored by both Hexagony and Klein).

      2. The language is on TIO.

      3. The first two spaces make the program jump to the last line. (It's not a 2D language.)

      4. There's no explicit output command, and the v command ends the program.

      Explanation (cracked post)



      In the source code



      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.@.@


      The relevant instructions in Klein (101) are:



      IP->.....................^...........IP->/
      .........................|...................
      .........................8
      .........................<-.............IP<-
      @


      Klein is fungelike 2D language where crossing the boundary of code area (which is a square) depends on the Klein topology. / and are mirrors.



      The IP starts at upper left corner facing right. It meets a mirror towards the top boundary, and re-enters the code area on the right side as shown above. Then it hits the mirror again, 8 is pushed, and then (after passing through the boundary several times) stops at @. Then the content of the stack is printed to stdout, which is single 8.






      share|improve this answer


















      • 1




        cracked
        – NieDzejkob
        yesterday












      up vote
      10
      down vote










      up vote
      10
      down vote









      Hexagony, Klein (101) and ???



       xx=puts/
      gets87!@xx=p

      main

      >9.*5,6v


      This prints 7 in Hexagony, 8 in Klein (101), and 9 in ???.



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



      Edit: Being live for 20 hours is already a record, so I'll give some hints from now on. (Also because the language in question is IMO not yet well-known.)



      Hints



      1. "The 9 does not work if a newline is added at the end" is very significant, as well as the first two spaces (which are ignored by both Hexagony and Klein).

      2. The language is on TIO.

      3. The first two spaces make the program jump to the last line. (It's not a 2D language.)

      4. There's no explicit output command, and the v command ends the program.

      Explanation (cracked post)



      In the source code



      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.@.@


      The relevant instructions in Klein (101) are:



      IP->.....................^...........IP->/
      .........................|...................
      .........................8
      .........................<-.............IP<-
      @


      Klein is fungelike 2D language where crossing the boundary of code area (which is a square) depends on the Klein topology. / and are mirrors.



      The IP starts at upper left corner facing right. It meets a mirror towards the top boundary, and re-enters the code area on the right side as shown above. Then it hits the mirror again, 8 is pushed, and then (after passing through the boundary several times) stops at @. Then the content of the stack is printed to stdout, which is single 8.






      share|improve this answer














      Hexagony, Klein (101) and ???



       xx=puts/
      gets87!@xx=p

      main

      >9.*5,6v


      This prints 7 in Hexagony, 8 in Klein (101), and 9 in ???.



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



      Edit: Being live for 20 hours is already a record, so I'll give some hints from now on. (Also because the language in question is IMO not yet well-known.)



      Hints



      1. "The 9 does not work if a newline is added at the end" is very significant, as well as the first two spaces (which are ignored by both Hexagony and Klein).

      2. The language is on TIO.

      3. The first two spaces make the program jump to the last line. (It's not a 2D language.)

      4. There's no explicit output command, and the v command ends the program.

      Explanation (cracked post)



      In the source code



      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.@.@


      The relevant instructions in Klein (101) are:



      IP->.....................^...........IP->/
      .........................|...................
      .........................8
      .........................<-.............IP<-
      @


      Klein is fungelike 2D language where crossing the boundary of code area (which is a square) depends on the Klein topology. / and are mirrors.



      The IP starts at upper left corner facing right. It meets a mirror towards the top boundary, and re-enters the code area on the right side as shown above. Then it hits the mirror again, 8 is pushed, and then (after passing through the boundary several times) stops at @. Then the content of the stack is printed to stdout, which is single 8.







      share|improve this answer














      share|improve this answer



      share|improve this answer








      edited yesterday

























      answered 2 days ago









      Bubbler

      3,452540




      3,452540







      • 1




        cracked
        – NieDzejkob
        yesterday












      • 1




        cracked
        – NieDzejkob
        yesterday







      1




      1




      cracked
      – NieDzejkob
      yesterday




      cracked
      – NieDzejkob
      yesterday










      up vote
      7
      down vote













      Befunge-96, Hexagony and ???



      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.@.@


      This prints 6 in Befunge-96, 7 in hexagony and 8 in ???.



      Explanation



      The hexagony code, when "prettified" is:



       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 .
      @ . . . . . . . . .
      . . . . . . . . .
      . . . . . . . .


      The path of execution begins in the top left heading East. The top row doesn't do much. - changes the current memory edge so the value in it is 0. Execution continues heading east on the middle row where 7! loads 7 in the current memory edge and prints is as an integer. [ changes the instruction pointer to North East starting back at 7. After 7+3, execution then reaches [ which changes the instruction pointer to North West starting in the South East corner. Finally the path is ..@ where @ terminates the program.






      share|improve this answer


















      • 1




        Cracked.
        – Bubbler
        2 days ago














      up vote
      7
      down vote













      Befunge-96, Hexagony and ???



      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.@.@


      This prints 6 in Befunge-96, 7 in hexagony and 8 in ???.



      Explanation



      The hexagony code, when "prettified" is:



       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 .
      @ . . . . . . . . .
      . . . . . . . . .
      . . . . . . . .


      The path of execution begins in the top left heading East. The top row doesn't do much. - changes the current memory edge so the value in it is 0. Execution continues heading east on the middle row where 7! loads 7 in the current memory edge and prints is as an integer. [ changes the instruction pointer to North East starting back at 7. After 7+3, execution then reaches [ which changes the instruction pointer to North West starting in the South East corner. Finally the path is ..@ where @ terminates the program.






      share|improve this answer


















      • 1




        Cracked.
        – Bubbler
        2 days ago












      up vote
      7
      down vote










      up vote
      7
      down vote









      Befunge-96, Hexagony and ???



      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.@.@


      This prints 6 in Befunge-96, 7 in hexagony and 8 in ???.



      Explanation



      The hexagony code, when "prettified" is:



       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 .
      @ . . . . . . . . .
      . . . . . . . . .
      . . . . . . . .


      The path of execution begins in the top left heading East. The top row doesn't do much. - changes the current memory edge so the value in it is 0. Execution continues heading east on the middle row where 7! loads 7 in the current memory edge and prints is as an integer. [ changes the instruction pointer to North East starting back at 7. After 7+3, execution then reaches [ which changes the instruction pointer to North West starting in the South East corner. Finally the path is ..@ where @ terminates the program.






      share|improve this answer














      Befunge-96, Hexagony and ???



      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.@.@


      This prints 6 in Befunge-96, 7 in hexagony and 8 in ???.



      Explanation



      The hexagony code, when "prettified" is:



       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 .
      @ . . . . . . . . .
      . . . . . . . . .
      . . . . . . . .


      The path of execution begins in the top left heading East. The top row doesn't do much. - changes the current memory edge so the value in it is 0. Execution continues heading east on the middle row where 7! loads 7 in the current memory edge and prints is as an integer. [ changes the instruction pointer to North East starting back at 7. After 7+3, execution then reaches [ which changes the instruction pointer to North West starting in the South East corner. Finally the path is ..@ where @ terminates the program.







      share|improve this answer














      share|improve this answer



      share|improve this answer








      edited Sep 9 at 15:31

























      answered Sep 9 at 13:10









      jslip

      66118




      66118







      • 1




        Cracked.
        – Bubbler
        2 days ago












      • 1




        Cracked.
        – Bubbler
        2 days ago







      1




      1




      Cracked.
      – Bubbler
      2 days ago




      Cracked.
      – Bubbler
      2 days ago










      up vote
      6
      down vote













      Python 2, Python 3, ???



      a=1,2
      print(1+#a
      --bool(1/2)
      )


      This prints 1 in Python 2, 2 in Python 3, and 3 in ???.



      Crack explanation (Cracked post):



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


      • 0: C: The first line defines a function-like macro print that ignores its single argument and evaluates to main()puts("0");, a full program that prints 0 and exits. The whole expression 1+bool(1/2) is ignored when the print( ) macro on the second line is expanded to main()puts("0");.


      • 1: Python 2: The first line is a comment. 1/2 uses integer division in Python 2, giving 0. This value is then interpreted as a boolean (bool(0) -> False) and then added to 1 (1+False -> 1), and then printed.


      • 2: Python 3: The first line is a comment. 1/2 uses float division in Python 3, giving 0.5. This value is then interpreted as a boolean (bool(0.5) -> True) and then added to 1 (1+True -> 2), and then printed.






      share|improve this answer






















      • +1 and Cracked
        – Zachary Cotton
        Sep 9 at 6:57














      up vote
      6
      down vote













      Python 2, Python 3, ???



      a=1,2
      print(1+#a
      --bool(1/2)
      )


      This prints 1 in Python 2, 2 in Python 3, and 3 in ???.



      Crack explanation (Cracked post):



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


      • 0: C: The first line defines a function-like macro print that ignores its single argument and evaluates to main()puts("0");, a full program that prints 0 and exits. The whole expression 1+bool(1/2) is ignored when the print( ) macro on the second line is expanded to main()puts("0");.


      • 1: Python 2: The first line is a comment. 1/2 uses integer division in Python 2, giving 0. This value is then interpreted as a boolean (bool(0) -> False) and then added to 1 (1+False -> 1), and then printed.


      • 2: Python 3: The first line is a comment. 1/2 uses float division in Python 3, giving 0.5. This value is then interpreted as a boolean (bool(0.5) -> True) and then added to 1 (1+True -> 2), and then printed.






      share|improve this answer






















      • +1 and Cracked
        – Zachary Cotton
        Sep 9 at 6:57












      up vote
      6
      down vote










      up vote
      6
      down vote









      Python 2, Python 3, ???



      a=1,2
      print(1+#a
      --bool(1/2)
      )


      This prints 1 in Python 2, 2 in Python 3, and 3 in ???.



      Crack explanation (Cracked post):



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


      • 0: C: The first line defines a function-like macro print that ignores its single argument and evaluates to main()puts("0");, a full program that prints 0 and exits. The whole expression 1+bool(1/2) is ignored when the print( ) macro on the second line is expanded to main()puts("0");.


      • 1: Python 2: The first line is a comment. 1/2 uses integer division in Python 2, giving 0. This value is then interpreted as a boolean (bool(0) -> False) and then added to 1 (1+False -> 1), and then printed.


      • 2: Python 3: The first line is a comment. 1/2 uses float division in Python 3, giving 0.5. This value is then interpreted as a boolean (bool(0.5) -> True) and then added to 1 (1+True -> 2), and then printed.






      share|improve this answer














      Python 2, Python 3, ???



      a=1,2
      print(1+#a
      --bool(1/2)
      )


      This prints 1 in Python 2, 2 in Python 3, and 3 in ???.



      Crack explanation (Cracked post):



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


      • 0: C: The first line defines a function-like macro print that ignores its single argument and evaluates to main()puts("0");, a full program that prints 0 and exits. The whole expression 1+bool(1/2) is ignored when the print( ) macro on the second line is expanded to main()puts("0");.


      • 1: Python 2: The first line is a comment. 1/2 uses integer division in Python 2, giving 0. This value is then interpreted as a boolean (bool(0) -> False) and then added to 1 (1+False -> 1), and then printed.


      • 2: Python 3: The first line is a comment. 1/2 uses float division in Python 3, giving 0.5. This value is then interpreted as a boolean (bool(0.5) -> True) and then added to 1 (1+True -> 2), and then printed.







      share|improve this answer














      share|improve this answer



      share|improve this answer








      edited Sep 9 at 6:40

























      answered Sep 9 at 6:12









      pizzapants184

      2,464716




      2,464716











      • +1 and Cracked
        – Zachary Cotton
        Sep 9 at 6:57
















      • +1 and Cracked
        – Zachary Cotton
        Sep 9 at 6:57















      +1 and Cracked
      – Zachary Cotton
      Sep 9 at 6:57




      +1 and Cracked
      – Zachary Cotton
      Sep 9 at 6:57










      up vote
      6
      down vote













      Lua, brainfuck, ???



      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


      Prints 3 in Lua, 4 in brainfuck and 5 in ???.



      Explanation for cracked post:



      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)


      • In Python 3, 3--(-1) is 2, so print(f) prints 2 (the other stuff is unnecessary)

      • In Lua, -- again is a comment, so 3--(-1) is just 3, so print(f) prints 3 (other stuff is again unnecessary)

      • In brainfuck, there are 57 plusses and 5 minuses setting the first cell on the tape to 52, and the . outputs character 52 which is 4.





      share|improve this answer






















      • +1 and Cracked
        – Zacharý
        Sep 9 at 11:50














      up vote
      6
      down vote













      Lua, brainfuck, ???



      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


      Prints 3 in Lua, 4 in brainfuck and 5 in ???.



      Explanation for cracked post:



      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)


      • In Python 3, 3--(-1) is 2, so print(f) prints 2 (the other stuff is unnecessary)

      • In Lua, -- again is a comment, so 3--(-1) is just 3, so print(f) prints 3 (other stuff is again unnecessary)

      • In brainfuck, there are 57 plusses and 5 minuses setting the first cell on the tape to 52, and the . outputs character 52 which is 4.





      share|improve this answer






















      • +1 and Cracked
        – Zacharý
        Sep 9 at 11:50












      up vote
      6
      down vote










      up vote
      6
      down vote









      Lua, brainfuck, ???



      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


      Prints 3 in Lua, 4 in brainfuck and 5 in ???.



      Explanation for cracked post:



      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)


      • In Python 3, 3--(-1) is 2, so print(f) prints 2 (the other stuff is unnecessary)

      • In Lua, -- again is a comment, so 3--(-1) is just 3, so print(f) prints 3 (other stuff is again unnecessary)

      • In brainfuck, there are 57 plusses and 5 minuses setting the first cell on the tape to 52, and the . outputs character 52 which is 4.





      share|improve this answer














      Lua, brainfuck, ???



      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


      Prints 3 in Lua, 4 in brainfuck and 5 in ???.



      Explanation for cracked post:



      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)


      • In Python 3, 3--(-1) is 2, so print(f) prints 2 (the other stuff is unnecessary)

      • In Lua, -- again is a comment, so 3--(-1) is just 3, so print(f) prints 3 (other stuff is again unnecessary)

      • In brainfuck, there are 57 plusses and 5 minuses setting the first cell on the tape to 52, and the . outputs character 52 which is 4.






      share|improve this answer














      share|improve this answer



      share|improve this answer








      edited Sep 9 at 7:59









      pizzapants184

      2,464716




      2,464716










      answered Sep 9 at 7:55









      boboquack

      1,309420




      1,309420











      • +1 and Cracked
        – Zacharý
        Sep 9 at 11:50
















      • +1 and Cracked
        – Zacharý
        Sep 9 at 11:50















      +1 and Cracked
      – Zacharý
      Sep 9 at 11:50




      +1 and Cracked
      – Zacharý
      Sep 9 at 11:50










      up vote
      5
      down vote













      C, Python 2, ???



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


      This prints 0 in C, 1 in Python 2, and 2 in ???.



      This will be extremely easy to crack for people who know Python, but I wanted a starting-off point for other answers. Subsequent answers should try to obfuscate the third language (I did not do this).






      share|improve this answer




















      • Cracked. Great challenge btw!
        – pizzapants184
        Sep 9 at 6:20














      up vote
      5
      down vote













      C, Python 2, ???



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


      This prints 0 in C, 1 in Python 2, and 2 in ???.



      This will be extremely easy to crack for people who know Python, but I wanted a starting-off point for other answers. Subsequent answers should try to obfuscate the third language (I did not do this).






      share|improve this answer




















      • Cracked. Great challenge btw!
        – pizzapants184
        Sep 9 at 6:20












      up vote
      5
      down vote










      up vote
      5
      down vote









      C, Python 2, ???



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


      This prints 0 in C, 1 in Python 2, and 2 in ???.



      This will be extremely easy to crack for people who know Python, but I wanted a starting-off point for other answers. Subsequent answers should try to obfuscate the third language (I did not do this).






      share|improve this answer












      C, Python 2, ???



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


      This prints 0 in C, 1 in Python 2, and 2 in ???.



      This will be extremely easy to crack for people who know Python, but I wanted a starting-off point for other answers. Subsequent answers should try to obfuscate the third language (I did not do this).







      share|improve this answer












      share|improve this answer



      share|improve this answer










      answered Sep 9 at 5:22









      Esolanging Fruit

      8,06432373




      8,06432373











      • Cracked. Great challenge btw!
        – pizzapants184
        Sep 9 at 6:20
















      • Cracked. Great challenge btw!
        – pizzapants184
        Sep 9 at 6:20















      Cracked. Great challenge btw!
      – pizzapants184
      Sep 9 at 6:20




      Cracked. Great challenge btw!
      – pizzapants184
      Sep 9 at 6:20










      up vote
      4
      down vote













      Python 3, Lua, ???



      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)


      Prints 2 in Python 3, 3 in Lua and 4 in ???.



      Explanation for cracked post:



      a=1,2
      print(1+#a
      --bool(1/2)
      )


      • In Lua, -- is a comment. In Python 2 and 3, -- indicates double negative in arithmetic.

      • In Python 2 and 3, # is a comment. In Lua, # is the length operator.

      • In Python 2, 1/2 is floor division, so it evaluates to zero. In Python 3 this is not the case. Because both versions of Python evaluate 0 to False, bool(1/2) evaluates to False in Python 2 and True in Python 3. When used in arithmetic, False is cast to 0 and True is cast to 1.





      share|improve this answer






















      • Cracked
        – boboquack
        Sep 9 at 7:59














      up vote
      4
      down vote













      Python 3, Lua, ???



      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)


      Prints 2 in Python 3, 3 in Lua and 4 in ???.



      Explanation for cracked post:



      a=1,2
      print(1+#a
      --bool(1/2)
      )


      • In Lua, -- is a comment. In Python 2 and 3, -- indicates double negative in arithmetic.

      • In Python 2 and 3, # is a comment. In Lua, # is the length operator.

      • In Python 2, 1/2 is floor division, so it evaluates to zero. In Python 3 this is not the case. Because both versions of Python evaluate 0 to False, bool(1/2) evaluates to False in Python 2 and True in Python 3. When used in arithmetic, False is cast to 0 and True is cast to 1.





      share|improve this answer






















      • Cracked
        – boboquack
        Sep 9 at 7:59












      up vote
      4
      down vote










      up vote
      4
      down vote









      Python 3, Lua, ???



      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)


      Prints 2 in Python 3, 3 in Lua and 4 in ???.



      Explanation for cracked post:



      a=1,2
      print(1+#a
      --bool(1/2)
      )


      • In Lua, -- is a comment. In Python 2 and 3, -- indicates double negative in arithmetic.

      • In Python 2 and 3, # is a comment. In Lua, # is the length operator.

      • In Python 2, 1/2 is floor division, so it evaluates to zero. In Python 3 this is not the case. Because both versions of Python evaluate 0 to False, bool(1/2) evaluates to False in Python 2 and True in Python 3. When used in arithmetic, False is cast to 0 and True is cast to 1.





      share|improve this answer














      Python 3, Lua, ???



      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)


      Prints 2 in Python 3, 3 in Lua and 4 in ???.



      Explanation for cracked post:



      a=1,2
      print(1+#a
      --bool(1/2)
      )


      • In Lua, -- is a comment. In Python 2 and 3, -- indicates double negative in arithmetic.

      • In Python 2 and 3, # is a comment. In Lua, # is the length operator.

      • In Python 2, 1/2 is floor division, so it evaluates to zero. In Python 3 this is not the case. Because both versions of Python evaluate 0 to False, bool(1/2) evaluates to False in Python 2 and True in Python 3. When used in arithmetic, False is cast to 0 and True is cast to 1.






      share|improve this answer














      share|improve this answer



      share|improve this answer








      edited Sep 9 at 7:01

























      answered Sep 9 at 6:40









      Zachary Cotton

      38915




      38915











      • Cracked
        – boboquack
        Sep 9 at 7:59
















      • Cracked
        – boboquack
        Sep 9 at 7:59















      Cracked
      – boboquack
      Sep 9 at 7:59




      Cracked
      – boboquack
      Sep 9 at 7:59










      up vote
      4
      down vote













      ><>, Befunge-96 and ???



      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.@


      This prints 5 in ><>, 6 in Befunge-96 and 7 in ???.



      I know the intended solution was Befunge-93, but I couldn't resist.



      Explanation:



      Befunge-96 follows the same path as ><>, but ignores unknown instructions, ending up adding one to the 5 and multiplying it by 9 to get 54, the ascii code for 6.






      share|improve this answer


















      • 1




        cracked
        – jslip
        Sep 9 at 13:10














      up vote
      4
      down vote













      ><>, Befunge-96 and ???



      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.@


      This prints 5 in ><>, 6 in Befunge-96 and 7 in ???.



      I know the intended solution was Befunge-93, but I couldn't resist.



      Explanation:



      Befunge-96 follows the same path as ><>, but ignores unknown instructions, ending up adding one to the 5 and multiplying it by 9 to get 54, the ascii code for 6.






      share|improve this answer


















      • 1




        cracked
        – jslip
        Sep 9 at 13:10












      up vote
      4
      down vote










      up vote
      4
      down vote









      ><>, Befunge-96 and ???



      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.@


      This prints 5 in ><>, 6 in Befunge-96 and 7 in ???.



      I know the intended solution was Befunge-93, but I couldn't resist.



      Explanation:



      Befunge-96 follows the same path as ><>, but ignores unknown instructions, ending up adding one to the 5 and multiplying it by 9 to get 54, the ascii code for 6.






      share|improve this answer














      ><>, Befunge-96 and ???



      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.@


      This prints 5 in ><>, 6 in Befunge-96 and 7 in ???.



      I know the intended solution was Befunge-93, but I couldn't resist.



      Explanation:



      Befunge-96 follows the same path as ><>, but ignores unknown instructions, ending up adding one to the 5 and multiplying it by 9 to get 54, the ascii code for 6.







      share|improve this answer














      share|improve this answer



      share|improve this answer








      edited Sep 9 at 12:34

























      answered Sep 9 at 12:22









      Jo King

      15.2k24084




      15.2k24084







      • 1




        cracked
        – jslip
        Sep 9 at 13:10












      • 1




        cracked
        – jslip
        Sep 9 at 13:10







      1




      1




      cracked
      – jslip
      Sep 9 at 13:10




      cracked
      – jslip
      Sep 9 at 13:10










      up vote
      4
      down vote













      Klein (101), Z80Golf, ???



      !!8@e6v+4>9 
      Almost everything you can find on the internet is true
      ~Albert Einstein
      ~HUMAN IMAGE MACROS


      Prints 8 in Klein (101), 9 in Z80Golf, and 10 in ???.






      share|improve this answer




















      • Cracked by Bubbler
        – Jo King
        13 hours ago














      up vote
      4
      down vote













      Klein (101), Z80Golf, ???



      !!8@e6v+4>9 
      Almost everything you can find on the internet is true
      ~Albert Einstein
      ~HUMAN IMAGE MACROS


      Prints 8 in Klein (101), 9 in Z80Golf, and 10 in ???.






      share|improve this answer




















      • Cracked by Bubbler
        – Jo King
        13 hours ago












      up vote
      4
      down vote










      up vote
      4
      down vote









      Klein (101), Z80Golf, ???



      !!8@e6v+4>9 
      Almost everything you can find on the internet is true
      ~Albert Einstein
      ~HUMAN IMAGE MACROS


      Prints 8 in Klein (101), 9 in Z80Golf, and 10 in ???.






      share|improve this answer












      Klein (101), Z80Golf, ???



      !!8@e6v+4>9 
      Almost everything you can find on the internet is true
      ~Albert Einstein
      ~HUMAN IMAGE MACROS


      Prints 8 in Klein (101), 9 in Z80Golf, and 10 in ???.







      share|improve this answer












      share|improve this answer



      share|improve this answer










      answered yesterday









      NieDzejkob

      3,69211329




      3,69211329











      • Cracked by Bubbler
        – Jo King
        13 hours ago
















      • Cracked by Bubbler
        – Jo King
        13 hours ago















      Cracked by Bubbler
      – Jo King
      13 hours ago




      Cracked by Bubbler
      – Jo King
      13 hours ago










      up vote
      3
      down vote













      Brainfuck, ><>, and ???



      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*,@


      Prints 4 in Brainfuck, 5 in ><>, and 6 in ???



      • In brainfuck, nothing changes.

      • In ><>, v redirects the flow of the program downwards. The n is numeric output. ; ends execution.





      share|improve this answer






















      • Cracked
        – Jo King
        Sep 9 at 12:23














      up vote
      3
      down vote













      Brainfuck, ><>, and ???



      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*,@


      Prints 4 in Brainfuck, 5 in ><>, and 6 in ???



      • In brainfuck, nothing changes.

      • In ><>, v redirects the flow of the program downwards. The n is numeric output. ; ends execution.





      share|improve this answer






















      • Cracked
        – Jo King
        Sep 9 at 12:23












      up vote
      3
      down vote










      up vote
      3
      down vote









      Brainfuck, ><>, and ???



      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*,@


      Prints 4 in Brainfuck, 5 in ><>, and 6 in ???



      • In brainfuck, nothing changes.

      • In ><>, v redirects the flow of the program downwards. The n is numeric output. ; ends execution.





      share|improve this answer














      Brainfuck, ><>, and ???



      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*,@


      Prints 4 in Brainfuck, 5 in ><>, and 6 in ???



      • In brainfuck, nothing changes.

      • In ><>, v redirects the flow of the program downwards. The n is numeric output. ; ends execution.






      share|improve this answer














      share|improve this answer



      share|improve this answer








      edited Sep 9 at 11:55

























      answered Sep 9 at 11:49









      Zacharý

      4,82511035




      4,82511035











      • Cracked
        – Jo King
        Sep 9 at 12:23
















      • Cracked
        – Jo King
        Sep 9 at 12:23















      Cracked
      – Jo King
      Sep 9 at 12:23




      Cracked
      – Jo King
      Sep 9 at 12:23










      up vote
      2
      down vote














      Z80Golf, Somme, ???



      !!8@e6v+4>9 
      1((111+111)/111)
      00
      ~tz


      This prints 9 in Z80Golf, 10 in Somme and 11 in ???.



      Credit to Bubbler for cracking the previous post as Somme, which takes the column sum as the instructions. The first three columns evaluate to



      A.;


      Which pushes 10, prints it and exits.






      share|improve this answer


























        up vote
        2
        down vote














        Z80Golf, Somme, ???



        !!8@e6v+4>9 
        1((111+111)/111)
        00
        ~tz


        This prints 9 in Z80Golf, 10 in Somme and 11 in ???.



        Credit to Bubbler for cracking the previous post as Somme, which takes the column sum as the instructions. The first three columns evaluate to



        A.;


        Which pushes 10, prints it and exits.






        share|improve this answer
























          up vote
          2
          down vote










          up vote
          2
          down vote










          Z80Golf, Somme, ???



          !!8@e6v+4>9 
          1((111+111)/111)
          00
          ~tz


          This prints 9 in Z80Golf, 10 in Somme and 11 in ???.



          Credit to Bubbler for cracking the previous post as Somme, which takes the column sum as the instructions. The first three columns evaluate to



          A.;


          Which pushes 10, prints it and exits.






          share|improve this answer















          Z80Golf, Somme, ???



          !!8@e6v+4>9 
          1((111+111)/111)
          00
          ~tz


          This prints 9 in Z80Golf, 10 in Somme and 11 in ???.



          Credit to Bubbler for cracking the previous post as Somme, which takes the column sum as the instructions. The first three columns evaluate to



          A.;


          Which pushes 10, prints it and exits.







          share|improve this answer














          share|improve this answer



          share|improve this answer








          edited 12 hours ago









          Bubbler

          3,452540




          3,452540










          answered 13 hours ago









          Jo King

          15.2k24084




          15.2k24084




















              up vote
              1
              down vote














              Somme, Trigger and ???



              [,,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<`


              This prints 10 in Somme, 11 in Trigger, and 12 in ???.



              Since the last two languages are easy to polyglot, I decided to mix that language in.



              Explanation (cracked post)



              Trigger sees the whole code as a series of tokens (tokenization is greedy):



              • Single byte (denote A)

              • Two same bytes followed by a different byte (denote AAB)

              • Three same bytes (denoted AAA)

              • Four same bytes (denoted AAAA)

              In the source code



              !!8@e6v+4>9 
              1((111+111)/111)
              00
              ~tz


              the significant tokens are ((1 11+ 111 111, where the first two does nothing and the last two prints 1 each - thus 11.






              share|improve this answer




















              • cracked
                – NieDzejkob
                2 hours ago














              up vote
              1
              down vote














              Somme, Trigger and ???



              [,,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<`


              This prints 10 in Somme, 11 in Trigger, and 12 in ???.



              Since the last two languages are easy to polyglot, I decided to mix that language in.



              Explanation (cracked post)



              Trigger sees the whole code as a series of tokens (tokenization is greedy):



              • Single byte (denote A)

              • Two same bytes followed by a different byte (denote AAB)

              • Three same bytes (denoted AAA)

              • Four same bytes (denoted AAAA)

              In the source code



              !!8@e6v+4>9 
              1((111+111)/111)
              00
              ~tz


              the significant tokens are ((1 11+ 111 111, where the first two does nothing and the last two prints 1 each - thus 11.






              share|improve this answer




















              • cracked
                – NieDzejkob
                2 hours ago












              up vote
              1
              down vote










              up vote
              1
              down vote










              Somme, Trigger and ???



              [,,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<`


              This prints 10 in Somme, 11 in Trigger, and 12 in ???.



              Since the last two languages are easy to polyglot, I decided to mix that language in.



              Explanation (cracked post)



              Trigger sees the whole code as a series of tokens (tokenization is greedy):



              • Single byte (denote A)

              • Two same bytes followed by a different byte (denote AAB)

              • Three same bytes (denoted AAA)

              • Four same bytes (denoted AAAA)

              In the source code



              !!8@e6v+4>9 
              1((111+111)/111)
              00
              ~tz


              the significant tokens are ((1 11+ 111 111, where the first two does nothing and the last two prints 1 each - thus 11.






              share|improve this answer













              Somme, Trigger and ???



              [,,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<`


              This prints 10 in Somme, 11 in Trigger, and 12 in ???.



              Since the last two languages are easy to polyglot, I decided to mix that language in.



              Explanation (cracked post)



              Trigger sees the whole code as a series of tokens (tokenization is greedy):



              • Single byte (denote A)

              • Two same bytes followed by a different byte (denote AAB)

              • Three same bytes (denoted AAA)

              • Four same bytes (denoted AAAA)

              In the source code



              !!8@e6v+4>9 
              1((111+111)/111)
              00
              ~tz


              the significant tokens are ((1 11+ 111 111, where the first two does nothing and the last two prints 1 each - thus 11.







              share|improve this answer












              share|improve this answer



              share|improve this answer










              answered 9 hours ago









              Bubbler

              3,452540




              3,452540











              • cracked
                – NieDzejkob
                2 hours ago
















              • cracked
                – NieDzejkob
                2 hours ago















              cracked
              – NieDzejkob
              2 hours ago




              cracked
              – NieDzejkob
              2 hours ago










              up vote
              0
              down vote














              Trigger, JavaScript and ???



              [ //aТ/\ ][ //е"6
              console.log(111-111+12)]
              //!'!/-²6-²52


              Prints 11 in Trigger, 12 in JavaScript, and 13 in REDACTED.






              share|improve this answer
























                up vote
                0
                down vote














                Trigger, JavaScript and ???



                [ //aТ/\ ][ //е"6
                console.log(111-111+12)]
                //!'!/-²6-²52


                Prints 11 in Trigger, 12 in JavaScript, and 13 in REDACTED.






                share|improve this answer






















                  up vote
                  0
                  down vote










                  up vote
                  0
                  down vote










                  Trigger, JavaScript and ???



                  [ //aТ/\ ][ //е"6
                  console.log(111-111+12)]
                  //!'!/-²6-²52


                  Prints 11 in Trigger, 12 in JavaScript, and 13 in REDACTED.






                  share|improve this answer













                  Trigger, JavaScript and ???



                  [ //aТ/\ ][ //е"6
                  console.log(111-111+12)]
                  //!'!/-²6-²52


                  Prints 11 in Trigger, 12 in JavaScript, and 13 in REDACTED.







                  share|improve this answer












                  share|improve this answer



                  share|improve this answer










                  answered 2 hours ago









                  NieDzejkob

                  3,69211329




                  3,69211329



























                       

                      draft saved


                      draft discarded















































                       


                      draft saved


                      draft discarded














                      StackExchange.ready(
                      function ()
                      StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fcodegolf.stackexchange.com%2fquestions%2f171884%2foverlapping-polyglots%23new-answer', 'question_page');

                      );

                      Post as a guest













































































                      Comments

                      Popular posts from this blog

                      List of Gilmore Girls characters

                      What does second last employer means? [closed]

                      One-line joke