A Text Adventure Inspired Equation Solver

Text adventures (also known as interactive fiction) had their start in the 1970s, were a standard software product in the 80s, and faced a steady decline in the 90s due to more graphically intense (and overall appealing) games. What I like about text adventures is that the principles of play/learning by which they operate have to be very good for the game to be good. This is because there really isn’t anything else to the game besides gaining expertise in playing it. If that’s not appealing, there is nothing else to even to look at or listen to.

I figure that if I can write a text adventure that operates on strong learning principles with math as the subject of the game, those who play will learn math! How idealistic! The math concept I am going to try to tackle first is solving linear equations. Here are reasons why:

  • Involves an ongoing inner dialog
  • Students struggle with algebraic reasoning
  • Students need an algebra “playground” where being wrong doesn’t necessarily mean negative outcomes (erasing, getting another piece of paper, falling behind, etc.)
  • There are multiple paths to a solution
  • It is differentiable (in teacher-speak not math-speak)
  • It can be extended with word problems and/or quadratics
  • I don’t think something like this already exists

Here is what I want the initial version to be capable of:

  • Accept a player-defined linear equation
  • Accept text-adventure inspired commands from the player:
    • “add 4 to both sides”
    • “+4 to left side” then “+4 to right side”
    • “+4 bs” (add 4 both sides)
  • After each command, the game will ask the player what the result will be on each of side of the equation
  • React in a multitude of ways to all sorts of player input
    • This is what makes text-adventures special

I’ll be the first to admit that calling this a game will be a stretch. I’m not excited about the entertainment value or that it meet’s all the principles of good learning and play. I am excited about this being a great place to start so I can eventually get there. I have to start somewhere!

Check back for updates on how my code is coming along.