Archive for the ‘Academia’ Category

The Brainy Gamer: Portal on the booklist

Friday, August 20th, 2010

The Brainy Gamer has a piece on how Portal is being introduced as required reading for a course called "Enduring Questions" at Wabash College.  This is awesome.

The Brainy Gamer: Portal on the booklist.

Our charge from the faculty made it clear that we should apply a broad definition to "readings," and I believe my special purpose on the committee was to help identify films, music, art, and other 'non-textual' sources to challenge our students to think hard about the questions raised in the course.

And so, as you might expect, a little light went off in my head. What about a game? Why not? Which one? Will they bite on this? Who knows? Let's try.

GAD225: HW4

Thursday, November 19th, 2009

This homework assignment will have you updating HW2. If you did not get that homework completed adequately, please reference the solution in my outbox on the network. This assignment is due week 9, the week after thanksgiving.

Basically, we are rewriting this homework to take advantage of objects.

1. Turn the player into a single object. Obviously, his three stats should be properties of the object. Convert choices the player can make into functions (behaviors) of the player object.

2. At least one of the choices the player can make from the menu must have him interacting with other objects (extra credit if all 3 do). This other object can be an enemy, environment, whatever, so long as it has its own definition, properties/constructor/behavior.

3. Let's do that extra credit from the previous assignment. There must be at least one item that players can buy/find, that heals the player. It should, of course, be its own object with its own definition.

HW2: Some Array Stuff

Thursday, November 5th, 2009

NOTE: Each line item in this homework should be its own function, but we won't talk about functions until week 4. So you should start this assignment and do each line item separately in the program as you are working, so that you can easily move them into functions.

  1. Create an Array with 100 numbers in it. Each number should be randomly generated, and somewhere between 100 and 200.
  2. Make a function that tells us the total of the array.
  3. Make a function that returns true if the array's total is prime.
  4. Calculate the average of the array.
  5. Generate a new array (using the same parameters as above) 100 times, and then return the average TOTAL of each array.
  6. Trace out the "word form" of each number in the array. That is, if the first three numbers in the array are 15, 90, and 22, you should trace out "fifteen, ninety, twenty two".
  7. Set each value in the array to it's negative version.
  8. Make a function that takes in an integer (this can be randomly generated, or entered by the user). This function returns true if the array contains the specified int.
  9. Sort the array (by hand, DO NOT USE the built in sort() function). We will discuss a method for doing this in class.
  10. Tell me the median of the array.
  11. Extra credit: Tell me the mode of the array.

GAD225: HW3

Thursday, October 22nd, 2009

I've decided to keep this as the HW assignment. You should be able to do all of it except for the entering of the character name, which we'll cover next week.

Text adventure time!

1. Allow the user to enter a character name.
1a. Once they do, automatically call a function that generates three stats for their character (you can make up whatever stats you want (let's say the range for each is 1-10).
2. Present them with a menu with Several options options. Selecting any option should call a function specific to that option, each of which is described below.
3. First option: Check status. This should print out their character's name, their 3 stats, and how much health they have left (all characters should start at 100 health), how much experience they have (and what level they are), and how much gold they have (useless for now).
4-6. The nextthree options are yours to make up. Each one should be focused on one (or more) of the character's stats. Each one should feature at least one possible success, and one possible failure, and the results should be random (modified by the appropriate stat, of course). For example, I could have an encounter that involved a hot dog eating contest against Kobayashi. Fortunately, my belly stat is 10. So some random generation happens, if I win, I gain 10xp, 50 gold. If I lose, I vomit, and lose 5 health.
7. 4th option: Use an item. The character has an inventory (array) with five ints in it. Each int represents how many of each item they have. Item[0] is a healing item. Item[1]-[3] are buff items, they should add a random amount to a specific stat for the next encounter. Item[4] is a loot item, that the user can sell for money. Remember, the array just contains integers telling the user how many of each item they have!
8. Last option: Shop. The user can sell any items they have, and buy new ones. This should have its own menu.
9. After any encounter, your program should automatically call a function that checks for leveling up. If the character has 100+ xp, they gain a level, (and lose 100 xp). When they gain a level, one stat randomly goes up by one point.
10. Make it so that the stat-using options above, in some successful cases, drop loot and money.

GAD235: What you Should Know

Monday, October 12th, 2009

Since I have a number of students who have took GAD225 elsewhere, in another programming language, etc, I have created this helpful little guide as far as what I expect you to know and be able to do already, before you really take GAD235. That is, this is what I covered (and graded on) in my GAD225: Principles of Programming class.  This list is in roughly chronological order as far as the GAD225 class goes...

  • Actionscript syntax for basic programming constructs:  variable declarations, if/else blocks, while/for loops
  • The use of functions, including parameters and returning data
  • The use of arrays.  How to construct one, how to fill it with data, and how to move data about in it.
  • Using keyboard events/listeners to get input from the user, and how Actionscript's event system works in a general sort of way.
  • Object Oriented Programming.  The creation of an object's definition file, its data, constructor, and behaviors.   The concept of data hiding, getters/setters.
  • Inheritance/Polymorphism, how to use these concepts, and what their benefit is.

Also, another reminder:  We have agreed to begin class at 5PM rather than 5:45 PM, so don't be late this week.

GAD225: Text Adventure (Final Project)

Wednesday, September 9th, 2009

For this final project, you will be working on an open ended program, with the goal being showing off everything you've learned over the course of the quarter. You will be doing this in the form of a text adventure game. The story/subject matter are up to you, as is the vast majority of the content. This is your first real chance to be creative with your programming, and you should take advantage of it, and have fun.

That said, there are some requirements you have to hit:

  • It must actually be a game, winnable and loseable.
  • You must take input from the player via the keyboard.
  • You must make use of at least 3 classes/objects, each with their own plato-style definition file.

This assignment will be due at the end of class, week 11.  It will be updated with one small addendum week 10, so make sure you've made some good progress by then.

GAD235: Revisiting Critter Caretaker

Wednesday, July 15th, 2009

Here is an update of what you should have as your starting point for the Critter project in 2D Scripting. If you have a Critter from before, you may want to save it into a new file now with some stuff removed (for now). If you have no Critter, here's what you should make.

GAD235: Sample Files Posted

Monday, January 19th, 2009

If you click over on the GAD235 page, I've uploaded the sample files we discussed in class this past week, as well as the Critter base stuff. I've deliberately left comments out of the critter files, as I think it would be a good exercise for you to go through the files and comment them yourself to figure out how it's working, either as a refresher from last quarter, or to bring you up to speed.

IM211: Wrap Up Post

Friday, December 19th, 2008

So our final class did get canceled due to the snow, as you are no doubt aware at this point.  If you haven't already done so, please email me a copy of your final project.  If you HAVE already done so, I just sent emails to everyone who sent one, confirming that I recieved a non-corrupt file... so if you don't see my reply in the next couple of minutes, you should resend.  Also, I haven't made it to campus since Tuesday, and won't be there again until after new year, so if you placed a copy in my box, [strong]I did not get it, and you should email[/strong].  Here are my email addresses once again (remove the NOSPAM_ part)

From my perspective, I'm pretty happy with the way the quarter went.  From what I saw of the projects last week, it seems that there were a lot of really great projects in the class.  I hope everyone got what they wanted from the course.  I usually like to have a little bit of a discussion on the last day of class where I get student feedback, but obviously I was not able to do so today.  If you feel inclined, and have suggestions for future iterations of this class, please go ahead and shoot me an email or comment on this post.

Have a great winter break!

IM211 Final: Possible Snow Day?

Thursday, December 18th, 2008

So it looks like we may end up having class canceled on us tomorrow.  If that turns out to be the case, please email your final papers to me by the end of the day.  If your document is in Office format (for shame), please send it as a .doc, not a .docx.

My email address is

Obviously, remove the NOSPAM_ part, that's there to fool the bots.