It would be nice if the game put itself in the history, so that Back would only take you to (say) the previous challenge. (That would also really help when you're trying to remember the syntax of a command.)
Didn't take the time to update the hash to reflect that though - some people would've noticed the URL has changed, others wouldn't have, and I would have needed to find an interface artifact to make sure most people get it.
TL;DR design is fucking hard but if you dig most dev-friendly features are in.
As for backspace doing back, blame your favorite browser maker. And change the defaults. And report an issue. That behavior (previous on back) was always idiotic, imho.
I like the humor of the machine but I arrived at the tests about conditional but couldn't remember the command to ask for a key. A way to get back to what I've seen could be nice.
It'd be nice if the program initially responded to more english words, to make the initial interaction more fun.
At one point I got stuck because '' was expected around a value but this wasn't obvious from the previous steps.
The use of @ before predefined variables doesn't really seem necessary.
Allowing users to add variables is a nice touch
Chrome sometimes took cmd-return to mean open a new browser tab, not sure why.
But seriously, Chapter 2 is all about deconstructing the game.
It's easy at first.. but then it gets harder. Erasing your traces... reverse-engineering protocols.. introducing you to netsec against your will.
Consider Chapter 1 an appetizer.
> Tell me what you think about it by sending me a tweet.
ugh, really?
Other than that, quite cool, though the first question was needlessly oblique and I stopped playing right there the first go around.
There are a few references here and there (jabberwocky being perhaps the most obvious one), but otherwise, mostly original.
edit: Ahh, got it. The @key was already given to me (was this specified somewhere?), so the guard didn't support askKey. I wonder if there's a more appropriate response than not having the method, but I'm not sure what it would be.
If the goal it to teach programming, increase an interest in programing, or expose a language that others might not be exposed to, the worst way to do it it to make your target audience feel stupid. The initial questions to show the answer command aren't very easy - frankly they are seriously flawed riddles. Second, showing variables isn't described well enough to intrinsically know what to do unless you've already been exposed to programming.
I guess it all depends on the target audience, but it's not all that clear who that is.
Thanks for giving me a course about game design and asking questions obviously not answered in Chapter 1. Where can I send you money? <3.
Did you not post this expecting constructive feedback? Snark aside, chapter 1 of what? You haven't made it clear what this really is. Is this python? Do you want to use a game to teach the language or is this just a game and the language is irrelevant?
On the question I was having trouble with I was over thinking the isTrue method. It just wasn't all that clear to me until I did some pseudo debugging with it.
You only need one if statement, and you only have to involve a single guard.
I used the same approach to test the last puzzle (#ship) and did: `for n in @numans n.board(@vehicle) @vehicle.fly(#3127)` which ends the game (even though this doesn't satisfy the puzzle).
The game is supposed to be accessible to non-coders as well, hence all the hand-holding.
If you feel frustrated because the first chapter is too simple, you're gonna like the next ones...
Surely humans do fight back at one point. Don't they?
Lots of people cheated their way through without admitting to it. But the government sees everything...
See https://news.ycombinator.com/item?id=5795893 for context - window.open gets called on 'open'. If any HNers have ideas for restricting what gets called, I'm all ears.
Source is on GitHub, at https://github.com/nddrylliog/thechoice
I meant that you should support skipping temporary variables.
eval("function() { var open = unlock; " + expression + " }")();
? (I haven't looked at your code.)Also, I'm stuck on a bug: When I hit command-enter after typing "open @left", it spawns a new window with http://thechoice.amos.me/[object%20Object]. (Chrome 27, Mac 10.8)
Here's a little behind the scenes: your answers are actually CoffeeScript that get compiled on the client (along with some support code for each question) and eval'ed.
Since window.open is defined, that's what's happening here.
The commands you're looking for, for that question, are more along the lines of 'enter'.
EDIT: for voice synthesis: speaker.js - an Emscripten-compiled version of espeak. It sounds crappy, which is just a perfect casting for this voice.
Maybe literals (specifically strings) could be introduced a little more somehow.
Maybe @xzoor should have a more obvious human name like @jeff (since it's rather similar to @door)
At one point I forgot a method name, and couldn't scroll back to find it, I don't think it should be a test of memory (unless that's exactly what it is and in which case I deserve all the abuse my robot overloads can give)
Non-human names are kinda voluntary. It's a hostile universe, ruled by machines. You're the underdog. You're survining through your coding abilites only. The fight back only begins with Episode 2 (covering subjects like 'cryptography' / 'security').
About forgetting method names etc: Episode 2 (and updated Episode 1) should definitely have a backlog - your previous responses. That's gotta be the top requested feature.
(I liked the game so far.)
EEM: Here is your first assignment.
It is more useless than you. What is it?
I have no idea what it is and the hints aren't helping. Isn't anyone else stuck there too? Or is it personalized/randomized for different people?It's kind of introductory material, it sets a ground level for Chapter 2 - if you can't be bothered to sit (or run) through Chapter 1 you probably won't find the next one interesting.
Now I'm stuck in the door. Its interesting and somewhat fun, but I'm not sure I have all day to fail fail fail fail fail. Perhaps you could share your dropoff metrics once you have more data.
Hopefully! This is an experiment. Expect next episodes to be in increasing order of difficulty... Episode 2 is about deconstructing the game...
Btw, hints drop if you fail more than 5 times at a question. Just putting that out there.
If the language were clearly built up on the screen (syntax, literals) it'd be easier to work with the EEM. Showing the bound functions would help, too, but would demystify the puzzle aspect. Sexps are more natural to me than this super sugary syntax that leaves you guessing, more or less. Guessing language syntax is no more fun than guessing random numbers. :( I would definitely play an Episode 2.
Many people have complained about @door vs @left/@right - the reason for that obviously was poor decision-making during crunch time.
Making the game accessible to non-coders (it is - they just take more time - but are usually better at riddles) was hard, and caused some hard decisions to be made.
I'll try to make Episode 2 more polished. All this feedback is very valuable, though.
As someone once said: "If you're not ashamed of it, you haven't released it soon enough".
I can't wait for part two!
Edit; I found a few bugs, commands like "print" and "open" does what window.print() and window.open() does. Is this intentional?
Very nice. Somewhat fun and interesting. Xzoor isn't a very good guard if he's telling you specifics about your prison!
You're not in a prison. Much in the story is left to your imagination, but I can tell you this: you are very much a "free" agent in this universe. However, your value is constantly under thorough investigation to see if you shall remain a human, or be deemed a numan.
Hopefully Episode 2 will bring more answer as to what exactly this universe is, how it works, and how you can actually fight back.
And I answered Cataracts. And wasn't correct.
Otherwhise looks cool, plus I've always wanted to learn CoffeeScript, so thanks!
Why not use a programming language?
I got stuck at the Lying part. I was able to figure out both of them were lying to me. But still failed to complete the task. I wonder though how "difficult" these challenges are? I still consider myself a beginning programmer even though I can build web sites, and small basic python and javascript programs. Someone once told me I suffer from imposter syndrome. I never though so until using your application. I couldn't help but think "I don't belong here". With that said, I still found it fun, challenging, and frustrating at the same time.
keys = (k for k, v of obj when typeof v is 'function')
alert(keys)
answer 1
EEM: raw.toLowerCase is not a function - Try again.