Overlapping Polyglots
Clash Royale CLAN TAG#URR8PPP
up vote
25
down vote
favorite
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
add a comment |Â
up vote
25
down vote
favorite
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
Sandbox.
– Esolanging Fruit
Sep 9 at 5:29
2
Opened a chatroom for discussion about possible cracks and building polyglots.
– Bubbler
yesterday
add a comment |Â
up vote
25
down vote
favorite
up vote
25
down vote
favorite
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
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
cops-and-robbers polyglot obfuscation answer-chaining
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
add a comment |Â
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
add a comment |Â
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
- "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). - The language is on TIO.
- The first two spaces make the program jump to the last line. (It's not a 2D language.)
- 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.
1
cracked
– NieDzejkob
yesterday
add a comment |Â
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.
1
Cracked.
– Bubbler
2 days ago
add a comment |Â
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 macroprint
that ignores its single argument and evaluates tomain()puts("0");
, a full program that prints0
and exits. The whole expression1+bool(1/2)
is ignored when theprint( )
macro on the second line is expanded tomain()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 to1
(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 to1
(1+True
->2
), and then printed.
+1 and Cracked
– Zachary Cotton
Sep 9 at 6:57
add a comment |Â
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, soprint(f)
prints 2 (the other stuff is unnecessary) - In Lua,
--
again is a comment, so3--(-1)
is just 3, soprint(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.
+1 and Cracked
– Zacharý
Sep 9 at 11:50
add a comment |Â
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).
Cracked. Great challenge btw!
– pizzapants184
Sep 9 at 6:20
add a comment |Â
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.
Cracked
– boboquack
Sep 9 at 7:59
add a comment |Â
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
.
1
cracked
– jslip
Sep 9 at 13:10
add a comment |Â
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 ???.
Cracked by Bubbler
– Jo King
13 hours ago
add a comment |Â
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. Then
is numeric output.;
ends execution.
Cracked
– Jo King
Sep 9 at 12:23
add a comment |Â
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.
add a comment |Â
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.
cracked
– NieDzejkob
2 hours ago
add a comment |Â
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
.
add a comment |Â
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
- "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). - The language is on TIO.
- The first two spaces make the program jump to the last line. (It's not a 2D language.)
- 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.
1
cracked
– NieDzejkob
yesterday
add a comment |Â
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
- "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). - The language is on TIO.
- The first two spaces make the program jump to the last line. (It's not a 2D language.)
- 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.
1
cracked
– NieDzejkob
yesterday
add a comment |Â
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
- "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). - The language is on TIO.
- The first two spaces make the program jump to the last line. (It's not a 2D language.)
- 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.
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
- "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). - The language is on TIO.
- The first two spaces make the program jump to the last line. (It's not a 2D language.)
- 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.
edited yesterday
answered 2 days ago


Bubbler
3,452540
3,452540
1
cracked
– NieDzejkob
yesterday
add a comment |Â
1
cracked
– NieDzejkob
yesterday
1
1
cracked
– NieDzejkob
yesterday
cracked
– NieDzejkob
yesterday
add a comment |Â
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.
1
Cracked.
– Bubbler
2 days ago
add a comment |Â
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.
1
Cracked.
– Bubbler
2 days ago
add a comment |Â
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.
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.
edited Sep 9 at 15:31
answered Sep 9 at 13:10


jslip
66118
66118
1
Cracked.
– Bubbler
2 days ago
add a comment |Â
1
Cracked.
– Bubbler
2 days ago
1
1
Cracked.
– Bubbler
2 days ago
Cracked.
– Bubbler
2 days ago
add a comment |Â
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 macroprint
that ignores its single argument and evaluates tomain()puts("0");
, a full program that prints0
and exits. The whole expression1+bool(1/2)
is ignored when theprint( )
macro on the second line is expanded tomain()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 to1
(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 to1
(1+True
->2
), and then printed.
+1 and Cracked
– Zachary Cotton
Sep 9 at 6:57
add a comment |Â
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 macroprint
that ignores its single argument and evaluates tomain()puts("0");
, a full program that prints0
and exits. The whole expression1+bool(1/2)
is ignored when theprint( )
macro on the second line is expanded tomain()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 to1
(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 to1
(1+True
->2
), and then printed.
+1 and Cracked
– Zachary Cotton
Sep 9 at 6:57
add a comment |Â
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 macroprint
that ignores its single argument and evaluates tomain()puts("0");
, a full program that prints0
and exits. The whole expression1+bool(1/2)
is ignored when theprint( )
macro on the second line is expanded tomain()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 to1
(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 to1
(1+True
->2
), and then printed.
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 macroprint
that ignores its single argument and evaluates tomain()puts("0");
, a full program that prints0
and exits. The whole expression1+bool(1/2)
is ignored when theprint( )
macro on the second line is expanded tomain()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 to1
(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 to1
(1+True
->2
), and then printed.
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
add a comment |Â
+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
add a comment |Â
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, soprint(f)
prints 2 (the other stuff is unnecessary) - In Lua,
--
again is a comment, so3--(-1)
is just 3, soprint(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.
+1 and Cracked
– Zacharý
Sep 9 at 11:50
add a comment |Â
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, soprint(f)
prints 2 (the other stuff is unnecessary) - In Lua,
--
again is a comment, so3--(-1)
is just 3, soprint(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.
+1 and Cracked
– Zacharý
Sep 9 at 11:50
add a comment |Â
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, soprint(f)
prints 2 (the other stuff is unnecessary) - In Lua,
--
again is a comment, so3--(-1)
is just 3, soprint(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.
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, soprint(f)
prints 2 (the other stuff is unnecessary) - In Lua,
--
again is a comment, so3--(-1)
is just 3, soprint(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.
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
add a comment |Â
+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
add a comment |Â
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).
Cracked. Great challenge btw!
– pizzapants184
Sep 9 at 6:20
add a comment |Â
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).
Cracked. Great challenge btw!
– pizzapants184
Sep 9 at 6:20
add a comment |Â
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).
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).
answered Sep 9 at 5:22


Esolanging Fruit
8,06432373
8,06432373
Cracked. Great challenge btw!
– pizzapants184
Sep 9 at 6:20
add a comment |Â
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
add a comment |Â
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.
Cracked
– boboquack
Sep 9 at 7:59
add a comment |Â
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.
Cracked
– boboquack
Sep 9 at 7:59
add a comment |Â
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.
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.
edited Sep 9 at 7:01
answered Sep 9 at 6:40


Zachary Cotton
38915
38915
Cracked
– boboquack
Sep 9 at 7:59
add a comment |Â
Cracked
– boboquack
Sep 9 at 7:59
Cracked
– boboquack
Sep 9 at 7:59
Cracked
– boboquack
Sep 9 at 7:59
add a comment |Â
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
.
1
cracked
– jslip
Sep 9 at 13:10
add a comment |Â
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
.
1
cracked
– jslip
Sep 9 at 13:10
add a comment |Â
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
.
><>, 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
.
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
add a comment |Â
1
cracked
– jslip
Sep 9 at 13:10
1
1
cracked
– jslip
Sep 9 at 13:10
cracked
– jslip
Sep 9 at 13:10
add a comment |Â
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 ???.
Cracked by Bubbler
– Jo King
13 hours ago
add a comment |Â
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 ???.
Cracked by Bubbler
– Jo King
13 hours ago
add a comment |Â
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 ???.
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 ???.
answered yesterday


NieDzejkob
3,69211329
3,69211329
Cracked by Bubbler
– Jo King
13 hours ago
add a comment |Â
Cracked by Bubbler
– Jo King
13 hours ago
Cracked by Bubbler
– Jo King
13 hours ago
Cracked by Bubbler
– Jo King
13 hours ago
add a comment |Â
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. Then
is numeric output.;
ends execution.
Cracked
– Jo King
Sep 9 at 12:23
add a comment |Â
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. Then
is numeric output.;
ends execution.
Cracked
– Jo King
Sep 9 at 12:23
add a comment |Â
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. Then
is numeric output.;
ends execution.
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. Then
is numeric output.;
ends execution.
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
add a comment |Â
Cracked
– Jo King
Sep 9 at 12:23
Cracked
– Jo King
Sep 9 at 12:23
Cracked
– Jo King
Sep 9 at 12:23
add a comment |Â
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.
add a comment |Â
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.
add a comment |Â
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.
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.
edited 12 hours ago


Bubbler
3,452540
3,452540
answered 13 hours ago
Jo King
15.2k24084
15.2k24084
add a comment |Â
add a comment |Â
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.
cracked
– NieDzejkob
2 hours ago
add a comment |Â
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.
cracked
– NieDzejkob
2 hours ago
add a comment |Â
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.
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.
answered 9 hours ago


Bubbler
3,452540
3,452540
cracked
– NieDzejkob
2 hours ago
add a comment |Â
cracked
– NieDzejkob
2 hours ago
cracked
– NieDzejkob
2 hours ago
cracked
– NieDzejkob
2 hours ago
add a comment |Â
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
.
add a comment |Â
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
.
add a comment |Â
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
.
Trigger, JavaScript and ???
[ //aâ/\ ][ //õ"6
console.log(111-111+12)]
//!'!/-²6-²52
Prints 11
in Trigger, 12
in JavaScript, and 13
in REDACTED
.
answered 2 hours ago


NieDzejkob
3,69211329
3,69211329
add a comment |Â
add a comment |Â
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
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
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sandbox.
– Esolanging Fruit
Sep 9 at 5:29
2
Opened a chatroom for discussion about possible cracks and building polyglots.
– Bubbler
yesterday