While it is an interesting introduction to python equality and booleans, it feels like it is missing something - at least to me (solved in < 2 minutes or so). I like the idea of making the character say the answers. I just hate that the judge is not asking the questions.
- Change so that the judge announces the question before the character is required to answer.
- How about making the live response more interactive? Would we expect that the character would have access to flags by this point in the campaign, for example? If so, for example, could we have the judge say an expression and which flag you drop is determined by whether it evaluates to True or False?
- Add more questions, please. 5 is not nearly enough. See 6 below for some suggestions re alternative operators I would suggest that the player needs to know.
- I liked the find-the-dud-mine concept from the find a prime level. Could we do something like that here, with each mine having an expression which evaluates to a boolean (or not) and is visible to the player? Maybe keep it simpler and only have 2 choices - left or right - and you should go towards the “True” path? If you go the wrong way, you don’t instantly lose, but you do get attacked by the [number of mistakes] ogres brawler(s) / or an escalating list of nasty ogres (starting with easier, working up to boss-type mobs depending on the number of wrong paths)? The neat thing is that an advanced/geared player coming back to the maze can use it as a testing ground for automated path finding (killing the ogres that pop along the way).
- Add text/say to the referee explaining why each answer is correct after the player has selected the correct answer. (Reinforce the lesson by playing it out.)
- Add a couple of different operators, especially != for python. <=, <, => and > wouldn’t be bad choices either. I also am particularly fond of the Not(False).
- Add some expressions which would have to be evaluated at the run. This is not a bad place to remind folks of len(self.findEnemies()) and len(self.findFriends()). Whether it is true or false is something that could be evaluated at the time the question is asked … resulting in the player typing something like the following: self.say(len(self.findEnemies()) < len(self.findFriends()))
Just some thoughts.