Antiquities Treasure Clues


by /dev/joe

The solutions to the six puzzles below are keys to a text below that is six times Vigenere-encoded, which tells how to proceed when decoded. A python program which does Vigenere decoding is provided; anybody with a computer and net connection can download the necessary software to run python under DOS/Windows, Mac, or UNIX from http://www.python.org, (though I haven't seen how the Mac version performs running with arguments) but you are free to use your own techniques to do the decoding if you wish.

1. Geometry Warm-up

A polyhedron is cut by a plane which passes through 3 of its vertices. The result of the cut is a regular tetrahedron and a square pyramid, all of whose edges are the same length. How many faces did the original polyhedron have? This number, spelled out, is the answer to this piece.

2. Rot-Crossword

Solve the following rot-crossword. It is a 4-by-5 grid with no black squares; five 4-letter words read across and four 5-letter words read down. Because it is a rot-crossword, each entry in the grid except 1-across has been rotated by a certain number of letters in the alphabet. The five across answers run end to end, as they appear in the grid, is the answer to this piece. Across: 1. One of Ackanomic's treasured things. 5. Notice. 6. Not have. 7. Often a two-by-four. 8. A by-product of Superman? Down: 1. Add-on. 2. A former Ackan. 3. The Gathering. 4. Result.

3. Turning Backward

Not truths entirely.
A long saw with eight ridges.
I suppose.
Poem ends abruptly.

4. Calling All Elders!

843 267937 47 843 34778, 84473, 263 34384 5388377 3766 72273622'7 67444625 6263.

5. They Might Be Encoded

1 2 3 2 5 2 3 1 2 2 1 1 1 2 6 6 4 1 7 5 1 1 6 5 3 1 5 2 1 8 2 3 1
1 2 3 2 4 2 1 1 1 1 6 9 3 3 3 2 1 4 2 1 6 1 6 4 2 1 6 1 1 1 1 6 9
1 2 3 2 5 2 3 1 2 1 2 6 1 3 1 6 4 4 3 1 6 3 1 4 3 1 3 1 2 3 2 5 2 3 1 2
1 6 9 2 3 1 2 1 7 1 4 3 4 1 1 2 1 7 7 5 3 1 5 1 2 1 9 7 5 3 1 2 2 1 2 8.

6. No Sausage, Please!

Uif botxfs up uijt tfhnfou xjmm cf tfou up zpv jg zpv qmbz b tpoh po uif BTT xijdi ibt ofwfs cffo qmbzfe tjodf uijt usfbtvsf xbt cvsjfe, boe xijdi dpoubjot "Kbnft Efbo" jo jut mzsjdt, boe jo uif nfttbhf xifsf zpv qmbz uif tpoh, zpv jodmvef b sfbtpobcmf tfdujpo pg uif mzsjdt jodmvejoh "Kbnft Efbo".

Vigenere-encoded text:

Spy eubc emlokrr idf ri qmezd ao zulx ggvnj ndynd dfrst znx pff rxakglufn qat mry ywplf Kcyeb Stgiov shldn Fpfea zjdbv chy uifr nwe niib tsqgy anncw dko cpq. Imvrovx sfna caoya, wtkfa, xaa, hhs, wjz lsmh sdwp xdf nkjrctbkvbg slzfgdz, yaw nyenhf ntd zpzxhk, fe mkv cnz zdkdoci yv xzg cwpf vneslel. Hz neq fdna rrzprgf xzqijqtian ljhs rzhu, ney mvh T ngxg sset qy tx aeg faykft. Bxvi qep uyz oybnnuy jpan eudaa lb uiolniskyicvj lms zdxtxvzmwsc.


Everything below the next line of = signs is the program; save as vdecodet.py


# Edit this file to put the encoded text between the quotes after cipher= . # Don't use any more triple quotes in the text, but anything else should # be OK, and any non-letters are ignored. (I have already put this puzzle's # encoded text there.) # # The arguments to this program when called are the keys; these should not # contain any embedded spaces or other non-letters, with spaces between the # keys, but case does not matter. If the keys were "one", "two", and "three" # you would run the program from a command prompt as # # python vdecodet.py one two three import sys import string # Enter your ciphertext below: cipher=""" Spy eubc emlokrr idf ri qmezd ao zulx ggvnj ndynd dfrst znx pff rxakglufn qat mry ywplf Kcyeb Stgiov shldn Fpfea zjdbv chy uifr nwe niib tsqgy anncw dko cpq. Imvrovx sfna caoya, wtkfa, xaa, hhs, wjz lsmh sdwp xdf nkjrctbkvbg slzfgdz, yaw nyenhf ntd zpzxhk, fe mkv cnz zdkdoci yv xzg cwpf vneslel. Hz neq fdna rrzprgf xzqijqtian ljhs rzhu, ney mvh T ngxg sset qy tx aeg faykft. Bxvi qep uyz oybnnuy jpan eudaa lb uiolniskyicvj lms zdxtxvzmwsc. """ # Or uncomment the line below to read ciphertext from standard input #cipher=sys.stdin.read() for key in sys.argv[1:]: outstring="" j=0 lk=len(key) for kk in cipher: k=string.lower(kk) cval=string.find(string.lowercase,k) if cval==-1: outstring=outstring+k else: kval=string.find(string.lowercase,key[j]) pval=cval-kval if pval<0: pval=pval+26 if k!=kk: outstring=outstring+string.uppercase[pval] else: outstring=outstring+string.lowercase[pval] j=j+1 if j==lk: j=0 cipher=outstring[0:] print outstring

Back