Vlad-Shcherbina / icfpc2015-tbd

2 stars 0 forks source link

Produce power phrase candidates and verify them #8

Open graphite opened 9 years ago

graphite commented 9 years ago

We need to identify candidates for power phrases and verify them against the server. Possible sources (most promising first):

Vlad-Shcherbina commented 9 years ago

Also, stuff we see in the initial board configurations (don't forget that nothing except "Ei!" is confirmed yet).

graphite commented 9 years ago

Grammar:

manpages commented 9 years ago

@graphite says in chat:

if anyone gets to power phrase verification before I wake up - first check complete lines from data/R'lyehian/original_phrases.txt and then gods.txt

Vlad-Shcherbina commented 9 years ago

It seems their server always returns power_score=0. Move_score returned by the server is actually the total score.

Take it into account then checking.

manpages commented 9 years ago

I didn't do coding related to brute forcer. However I talked to organizers and they refused to reveal any information (as suspected). I also verified that the phrases we currently know are indeed the power phrases.

Here's some social data —

* MagBo subtly asks about R'lyahean language used in power phrases and provides a rationale why they should hint us that
galois_dmz | MagBo: ... We appreciate both the effort and the intent. Rest assured, more revelations will be forthcoming.
galois_dmz | (cryptic though they may be)
ICFP Contest 2015 ‏@ICFPContest2015 14m14 minutes ago

An analysis of the davar invoked so far shows that 14 of 18 phrases of power have been discovered... but no more than 9 by any single team.

(as seen here)

manpages commented 9 years ago

@graphite please don't focus on linguistics when you'll be writing bruteforcer.

Focus on just bruteforcing everything, validating words with maps (REMEMBER, SOME WORDS ARE POSSIBLE ON SOME MAPS AND IMPOSSIBLE ON OTHER MAPS). In fact, make a huge map with enough wiggle room to do anything, make a well-rotatable, well-centered piece, test legality of words against that map and try all the legal combinations in some heuristically wiggly position. (I did that with phrases like "Yuggoth" on map №6).

Before you even start writing smart bruteforcer, run a stupid bruteforcer for very small words.

Try not to send too many bruteforce-attempts (solutions) within one request, try starting with 100, if they'll eat it in ten minutes, send 1000, or something.

Only after we have smart bruteforcer and stupid bruteforcer is already working think about R'lyehean linguistics.

graphite commented 9 years ago

God names are verified, don't need to check again.

graphite commented 9 years ago

Vocabulary and original phrases verified

graphite commented 9 years ago

We have 9 power words so far. I've tested all the entities related to Cthulhu that I could find (fictional planets, creatures, gods, places, phrases, etc.)

This hint remains unsolved: "Early 20th century astronomers were wrong, given the discoveries of New Horizons. It is not Yuggoth. What’s worse, according to them, we cannot even continue to call it “Planet 10”. Laugh-a while you can, monkeyboy!"

If anyone wants to check ideas, place phrase candidates into some file, one per line, no extra spaces and run: python production/power/phrase_checker.py phrases.txt

There is no harm in sending something for the second time, it will be just ignored.

graphite commented 9 years ago

So far we have not found power phrases for the following 2 hints:

graphite commented 9 years ago

Only https://twitter.com/ICFPContest2015/status/629075383418093568 is unsolved for now. And there are 6 more phrases that we need to figure out from background (history, website, teaser pdf, etc.)

fj128 commented 9 years ago

So, about that "R1 O0 P1 Q1 P1 ..." hint thing.

First I checked how it looks like if we replace letters with numbers (ord(c) - ord('n')). It's interesting, there's a bunch of palyndromic sequences for some reason, then some other stuff, also several of N0, N0 pairs.

Then I assumed that it's a sort of a turtle graphics thing, first letter tells us how to move the caret, second what to place on the field. The N0 pairs are suggestive because they would move the caret between symbols.

The problem is that there are 7 symbols and 6 directions on a hex grid. And also six commands. Sooo, let's interpret them as usual command characters instead! And use a one-hex figure with a pivot offset by one! And I patched my tkgui to allow putting extra marks on the field! And fixed a bug in game.py!

You can check it out in fj_scratch/test_hint_sequence.py and it does look interesting and maybe could be made more interesting by trying different pivot-cell relative positions.

The problem is, in the middle of the sequence there's "S1 R1" which get translated to cw, ccw, which not only doesn't make any sense but also is an invalid move =( And now I'm kinda all out of ideas.

I also tried interpreting them as directions (mod 6 or mod 4), but there are nonsensical back-and-forth moves in both cases. Though I had certain hopes for them because palyndromic subsequences could represent "S" shapes then.