2D RPG

You must

  1. Write a C# Windows program
  2. This program should allow the user to specify a "map" file; this map file consists of three things: the width, the height, and the map data. The map data is a 2D array of numbers - where each number represents the terrain type for that location
  3. The program should then load that specified map file
    1. Loading the map involves reading in the width and height and instantiating a map class (you write this class)
    2. Then, you should loop through, reading in the map data and place this data into the [x,y] positions within the map instance
  4. The program must display a 2D grid of locations to the user (this is the visual map).  I'd recommend using an ImageList class to maintain the images of the tiles, and the map data just refers to this ImageList to display the images.
  5. Only a 9x9 portion of the total map should be displayed with the user's "avatar" displayed in the middle
  6. The user should be able to "move around" the total map

There is a lot of (intentional) flexibility here.  Your maps and tile images can be of anything you'd like.  Your avatar can be anything you'd like.  Be creative!

Here is a running sample (with sample 16x16 image tiles). [2.4 Mb ZIP file]  Type "G" and then a direction (via arrow key) to get an item; highlight an item in your inventory and press "D" and direction (via arrow key) to drop an item.  Step on a yellow tile to warp to another map.

NOTE - your submission does not have to implement inventory, get, drop, or "warp" points.  We'll get to these features later.