'The Traffic Light' works admirably, I think. The premise is simple, but compact, and fits the puzzle of the logic framework well. It has a compelling element to it and the task at hand makes some amount of sense (nicely consistent with the rules of a world only a little stranger than our own, at any rate). A small game of simple purpose, to be sure, but it tells a small story, and the struggle of it becomes important from strange and unexpected corners. It tells a story! I am impressed.
I tried some things. I tried turning the transparent sheet red and holding it in front of the traffic light. I briefly considered what color I'd need to get green out of red light (ha!). I have not won the game; I have changed various things about, and I believe I know the shape of the thing (see above point about bad things said). I will keep at it, but I am slow at these things, and contest deadlines slip ever further...
It made me laugh. It made me laugh out loud! I say it wins.
This is a truly evil idea. I don't think I would have had the guts to tackle it. What a mess to implement!
On the other hand, the implementation wimps out in some places. I can't blame the author, but it would be nice to see a complete and rigorous working-out of the principle.
(Here follow *SPOILERS* for the gimmick:)
In addition to your sheets of paper, you have a transparent sheet protector. This can be printed on, so it can turn colors just like the paper. You can then put a piece of paper inside the transparent folder. The paper takes on the color of the transparency, and this forces the statement written on it -- on the paper, I mean -- to change its truth value.
You can therefore force objects to change color! The solution, of course, is to write "The traffic light is green" and then force that to be true.
(The game only implements color predicates. It could be extended to handle "is on" and "is under" -- but you'd be ducking flying spheres and cubes...)
The mechanism lets you force negative truth values: you can also win by writing "The traffic light is red" and forcing this to be false. Conveniently, such negatively-constrained objects turn green by default. (I was sort of hoping for octarine, or some Lovecraftian unnameable color-out-of-space, but I suppose green gets you across the street.)
Some things you can't do. You can't force paradoxical or tautological truth values. (That is, you can't force any statement to be grey or brown.) And you can't force logical conclusions to a different truth value -- you can only affect contingent statements to be true or false, not necessary statements.
If you try either of those things, the world seems to break. Every statement turns grey -- even unrelated ones! I think this is too broad. Only dependent statements should break.
And it should be possible to resolve some loops, even when they include logic-forcing. If you write "The transparent sheet is brown" on the sheet, it will turn green (as per the usual rules). Putting "The traffic light is red" inside that should force the light to turn red. There's no reason to break the world.
But, of course, I can't offer a logical model to handle these cases. :) Anyone?
There really should be another couple of objects to play with. The only non-dynamic objects you can write about are the traffic light and the printer -- it's very easy to cause a loop without noticing it.
The "about" text says "First, you'll have to FEED the paper, (no 'put X in printer') and then WRITE on it." Why not support "put X in printer"?
> feed mysterious paper
You're friend wouldn't be happy if you printed all over his directions.
[This should be "Yor frend...", of course.]
> write i am blue
Writing about yourself would be dangerous.
[As long as the predicates are limited to color, this would actually be pretty easy to implement.]
The IF Logic Puzzle Mini-Competition