Skip to content

Commit

Permalink
add spoilers, use at your own risk to miss the fun decyphering this game
Browse files Browse the repository at this point in the history
  • Loading branch information
alx committed Oct 16, 2012
1 parent a223eb1 commit 608f8ba
Show file tree
Hide file tree
Showing 5 changed files with 120 additions and 0 deletions.
21 changes: 21 additions & 0 deletions spoilers/by_columns.rb
@@ -0,0 +1,21 @@
require 'csv'
#
# This script ca be used to display the morse code on the argument page
#
# Usage :
# $ ruby verify_code_on_page.rb 202
# .- .. -.-- --- ...
#
secrets = CSV.read("../secret.csv", {:headers => true})

16.times do |i|
message = ""
secrets.each do |r|
message += r["code"][i]
end
if i < 9
puts "#{i + 1} : #{message}"
else
puts "#{i + 1} : #{message}"
end
end
37 changes: 37 additions & 0 deletions spoilers/modulo_column.rb
@@ -0,0 +1,37 @@
require 'csv'
#
# This script ca be used to display the morse code on the argument page
#
# Usage :
# $ ruby verify_code_on_page.rb 202
# .- .. -.-- --- ...
#
secrets = CSV.read("../secret.csv", {:headers => true})
ascii_shift = 64

16.times do |i|
message = ""
shift = ""
message_count = 0
index = 0
secrets.each do |r|
message += r["code"][i]
message_count += r["code"][i].ord - ascii_shift
#puts "segment #{r} - position #{i} - value #{r["code"][i]} - mask #{"THATTHEIROWN"[index % 12]}"
shift += (((r["code"][i].ord - ascii_shift) - ("THATTHEIROWN"[index % 12].ord - ascii_shift) ) % 26 + ascii_shift).chr
index += 1
end
#puts "message: " + message
#puts "shifted: " + shift
end

by_line = ""
secrets.each do |line|
count = 0
16.times do |letter|
count += line["code"][letter].ord - ascii_shift
end
puts line["page"] + (count % 26 + ascii_shift).chr
end
puts by_line

1 change: 1 addition & 0 deletions spoilers/spoiler_1.md
@@ -0,0 +1 @@
HERE ARE THE SPOILERS, DON'T READ THEM IF YOU WANT TO SOLVE THE PUZZLE BY YOURSELF
44 changes: 44 additions & 0 deletions spoilers/spoiler_2.md
@@ -0,0 +1,44 @@
## Ordering the letters by columns

We rotate the matrix of segment to read them by column, and we obtain this result:

```
1 : ADDALLOFTHECOLUMNSTOGETHERTOREVEALATRUTHBUTREMEMBERTHEMEDIUMISTHEMESSAGE
2 : GLKUXTYNJBSABFMWVBQNIJQOJNVBKYYVDHTFMVYUMOOLEFVYNXJSXUWODHACZXVKSSLYTGCJ
3 : MATHEMATICIANSMAYBEJUSTIFIEDINREJOICINGTHATTHEREISONESCIENCEATANYRATEAND
4 : ZFHKDXVVVFDLDETITRQKUAUIGTCHZGFDYTAIXUYGACXRXXBNBFHGNMLLEINHBHIZEBIROJJC
5 : NVIABAQZFDWITXXRXNIPNUIZCBZIYMGRNROECQDFZCGXDFEZXHIWBVWIVDCGLVRGORVWDMBS
6 : YTEUVEYOYTIXSPCDDGFUOCVXTSTSIFXOEBMSVXTSOTIJEYUVEYOIVJTSCOAEMCVKXEKSXQEG
7 : FASSDJAZTBOWCCZSCHRZXUPWHJKRLHTKXTHRZILDRWQTFLLMJUIXLDKHVUUCHOUQTPFESHVN
8 : PZDAJFWXQIWTJIROGTWCQIMDHCUQZEMEKZFRUESNBVEGDEOYSRCIWCIEGOTHGUSWVNFFNNTG
9 : IEYZCVYCXYLOPWPVSLGHNXZBMIIKFIVPAQYPCKOPDEAEYQVZZFNLHUJQMYSEEXQQEUALJHAO
10 : SSHUPFZXLMENWNOURXMVVMXVSDXKCBCMJXNVETEEBKFCXWZZAWUWVXMUSULXJYFGRRLPFNBB
11 : GRPDKCPOOQIPJHIBLMXUTSAGKAJUNHWHTPCDCWJKABXBQVQRMHZOOSMSAJDCBBIBNIMFSZAT
12 : IMGXMWOAPDMULVAHVTESKJOCXESGAXHTUHHLYSJEWDSMLDQYPKDNNXAJUFYBPGHLFXUOSQDQ
13 : HFPNSHOLYXXRKKBTPEGCNBDNMWSWEORJHJGIKVLOWVOABKINNNIOIVWHMIYEAYSOLFTLUMHP
14 : WHOSEVERYREMOTENESSFROMORDINARYHUMANACTIVITIESSHOULDKEEPITGENTLEANDCLEAN
15 : LLCUMWVAUEGROACYYIGTLRPBXVUATQSKSKEWBTYYRIYWARJDYBZQYIXVBCAOOOKIRVGZMVJY
16 : NUXALGHZMEEFBHMFGUMMYABLTLFGQSQPRSHDENKBRSLFBRKWPEBCZBWGCTMKTXXCHCKVOYEI
```

That gives us the following strings:

```
1 : ADD ALL OF THE COLUMNS TOGETHER TO REVEAL A TRUTH BUT REMEMBER THE MEDIUM IS THE MESSAGE
3 : MATHEMATICIANS MAY BE JUSTIFIED IN REJOICING THAT THERE IS ONE SCIENCE AT ANY RATE AND
14 : WHOSE VERY REMOTENESS FROM ORDINARY HUMAN ACTIVITIES SHOULD KEEP IT GENTLE AND CLEAN
```

### G. H. Hardy

http://en.wikipedia.org/wiki/G._H._Hardy

Godfrey Harold "G. H." Hardy FRS (7 February 1877 – 1 December 1947) was an English mathematician, known for his achievements in number theory and mathematical analysis.

Moreover, Hardy deliberately pointed out in his Apology that mathematicians generally do not "glory in the uselessness of their work," but rather – because science can be used for evil as well as good ends – "mathematicians may be justified in rejoicing that there is one science at any rate, and that their own, whose very remoteness from ordinary human activities should keep it gentle and clean."

Full quote:

"But science works for evil as well as for good (and particularly, of course, in time of war); and both Gauss and less mathematicians may be justified in rejoicing that there is one science at any rate, and that their own, whose very remoteness from ordinary human activities should keep it gentle and clean."

Missing part: **"that their own"** <- could it be used as a mask on the remaining code in columns mode?
17 changes: 17 additions & 0 deletions spoilers/spoiler_3.md
@@ -0,0 +1,17 @@
## Modulo on each segment

Each of the 72 segment is taken on by one. For each segment, we compute the ascii value of the sum of each char, modulo 26 to get the final char for each segment.

The result is this string in german:

```
ALLES WAS TIEF IST LIEBT DIE MASKE UM JEDEN TIEFEN GEIST WACHST FORTWAHREND EINE MASKE
```

http://www.nietzsche.tv/jenseits-von-gut-und-boese.html - Part 40

"Alles, was tief ist, liebt die Maske" … "um jeden tiefen Geist wächst fortwährend eine Maske"

### Solving double-dots question

With this hint, we can get a clue on the double-dot, they correspond to the diaeresis on "wächst" and "fortwährend".

0 comments on commit 608f8ba

Please sign in to comment.