Demo the program to the instructor or upload the .java file to Ecampus.

Create an Enemy class, Player class, and GameObject class for your game.java.  The Enemy and Player (sub) classes should inherit from the GameObject (super) class.  Create a player and a few enemies.  Create the basic movements (left/right/up/down) for the player.  Develop a menu in the main program that allows the player to move around.

GameObject SuperClass

Variables Description
static char World[][] = new char[41][21]; This is the character array that will store what is at each X,Y location.  It is static so there is only one World for all objects.
int Xpos, Ypos X,Y location of the game object.  The top left of the screen will be 1,1.
char Avatar The character that will be displayed on the screen.
Methods Description
PrintWorld() This will print the World to the screen.  Example code:
for (int y=1; y<=20; y++)
{
   for (int x=1; x<=40; x++)
   {
      System.out.print(World[x][y]);
      // optionally put a space
      if (x < 40) System.out.print(" ");
   }
   System.out.println();
}
MoveRight() Move the game object to the right.  Here's some example code:
if (World[Xpos+1][Ypos] == ' ')
{
   World[Xpos][Ypos] = ' ';
   Xpos++;
   World[Xpos][Ypos] = Avatar;
}
MoveLeft() Move the object to the left.
MoveUp() Move the object to the up.
MoveDown() Move the object to the down.

Enemy SubClass (inherits from GameObject)

Variable Names Variable Description
String Race Race of the enemy such as "Orc" or "Troll" if you are doing a Middlpe Earth theme
int HP Hitpoints of the enemy: The enemy is dead when HP is 0.
int Attack Attack rating of the enemy: The higher the number, the more damage is does to the player.
int Armor Armor rating of the enemy: The higher the armor, the less damage it takes from the player.
int Speed The speed of the enemy.  You could have some enemies move 2 spaces per turn instead of 1.
Methods Names Methods Description
Enemy() Constructor that takes 1 parameter - Race

You can set the Enemy's Xpos,Ypos to a randome location

In the constructor, you will set these things based on the Race:  HP, Attack, Armor, Speed, Avatar.  For example:
if (Race.equals("Orc"))
{  HP = 50;  Attack = 5;  Armor = 20;  Speed = 1;  Avatar = 'O'; }

Player SubClass (inherits from GameObject)

Variable Names Variable Description
int HP Hitpoints of the player.  The game ends when the player's HP is 0.
int Attack Attack rating of the player.  The higher the number, the more damage you do to an enemy.  You could default it to 10 (fists).  If you find a weapon, then the attack rating will go higher.
int Armor Armor rating of the player.  The higher the armor, the less damage it takes from an enemy.  You could default it to 0.  If you find armor, then this armor rating will go higher.
String Name Name of the player.
int Gold The amount of gold the player has collected.
Methods Names Methods Description
Player() Constructor that takes 2 parameters - Name, Avatar

Since there will only be 1 player, this constructor will only be called once.  Therefore you can initialize the World here.  Here's some example things you could do:

// set entire world to spaces
for (int x=1; x<=40; x++)
   for (int y=1; y<=20; y++)
      World[x][y] = ' ';

// don't forget to put the player into the world
WXPos=2;  YPos=2;  World[2][2]=Avatar;


// line perimeter of world with trees @

for (int x=1; x<=40; x++)
{  World[x][1] = '@';  World[x][20] = '@';  }
for (int y=1; y<=20; y++)
{  World[1][y] = '@';  World[40][y] = '@';  }

// draw a lake at a random location ~

int a = (int)(Math.random()*30)+4;
int b = (int)(Math.random()*10)+3;
World[a][b] = '~'; World[a+1][b] = '~'; World[a+2][b] = '~';
World[a][b+1] = '~'; World[a+1][b+1] = '~'; World[a+2][b+1] = '~';
World[a][b+2] = '~'; World[a+1][b+2] = '~'; World[a+2][b+2] = '~';

 

Below is an example screen print showing the player, Orcs, Trolls, armor and weapons.

@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @
@ K             $                                                           @
@                                                                           @
@         %                                                     O     O     @
@                                                                     O     @
@                     ~ ~ ~                               T                 @
@                     ~ ~ ~             O O                                 @
@                     ~ ~ ~             O O                                 @
@           +                                                               @
@                                                                           @
@                         $                                                 @
@                                                                           @
@                                                                           @
@                                                                     +     @
@       O O                         %                                       @
@                                                                           @
@               $                                                           @
@                                       $                     T             @
@                                                                           @
@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @

Enter your command:

 


The main program will be rather simple since most everything is handled in the classes.

import java.util.*;
public class game
{
   public static void main (String[] args)
   {
      Scanner in = new Scanner(System.in);
      String Choice = "";

     
// creating the player will initialize the world
      Player Kirk = new Player("Kirk",'K');

     
// create some enemies here in random locations
      
      while (!Choice.equals("q"))
      {
         Kirk.PrintWorld();
         System.out.println("Enter your command: ");
         Choice = in.nextLine();

         if (Choice.equals("a"))
            Kirk.MoveLeft();
         if (Choice.equals("d"))
            Kirk.MoveRight();
         if (Choice.equals("w"))
            Kirk.MoveUp();
         if (Choice.equals("s"))
            Kirk.MoveDown();
      }
   }
}