Wednesday, July 16, 2014

Super Mathio

Hedge wrote this fun post on Mario Brothers and math - specifically parabolas - that got me to tweet: I also now want a video game where you jump by clicking the vertex to make a precise parabola based on where you are. She asked the good question: Can you make that?

Should have thought that one through.

Fortunately, though, it's Twitter, so brilliant people to the rescue.

Desmos tweeted:

Pretty sweet! Find it at Desmos:

Beyond my current Desmos levels, but pretty amazing. Great image use. 

Then Andrew Knauft tweeted:
Find it at OpenProcessing.

You click to do the jump. Beyond my current Processing skills, but excellent.

So I did -of course- have to try it in GeoGebra. I'm pretty happy with the result. The math wasn't too hard, though the scripting the buttons and resetting graphics is always tricky for me.

It's at GeoGebraTube for you to play with. There's a data mode that let's you try to calculate the best high point first - which is where I would want to go with it. It's an insufficient data situation as I purposely left off the coordinates of the bonus box.

There are some things to notice about parabolas as you play it, and for deeper work it would be interesting to think about how to add scoring.

GeoGebra Note: Andrew Knauft also helped with this! You define piecewise functions in GeoGebra using the If command, which also has an else variant. I.e. either If[<condition>,<then>] or If[<condition>,<then>,<else>]. I was getting errors with the inequalities to make the towers, and Andrew figured out that GGB didn't like an inequality with the else form. Redefined them as Ifs alone, and I was good to go.

This was very fun. I'm curious to know if or how you would use it, or what features you might add. As always, if you have an idea for dynamicizing, let me know!

1 comment:

  1. Wow! Your GeoGebra version turned out great! I like being able to eyeball and drag the high point, but if you wanted to enforce the calculate-first approach you could set the coordinates by input box instead.