pctechguide.com

  • Home
  • Guides
  • Tutorials
  • Articles
  • Reviews
  • Glossary
  • Contact

Object Oriented Programming 5

To illustrate putting together an object oriented (OO) class hierarchy design, let’s take a look at a simple maze game. We’ll be creating an OO design, but we’re not going to select a programming language at this stage. We’ll see how we can analyse the problem from an OO perspective, and produce a workable OO design solution that can be translated into implementation code.

Our simple game involves a two dimensional maze and two moving objects. The moving objects are the player’s character and a monster that chases the player around while they try to solve the maze. For our OO design, the key here is that, although these two objects have clear differences, initially we’re only interested in what they have in common.

During the game the player’s character and the monster both have to have their screen position stored, and this is best held as a two dimensional coordinate x and y. The point class is a very common class for storing coordinates, and one we’ll use in our design. We also want to know whether or not the characters are alive in the game. To cover these similarities, we can create a class that covers both the game characters, as follows.

We’re using Unified Modelling Language (UML) notation in our class modelling. UML is commonly used in object oriented design, and ArgoUML is a free Java tool you can use to produce your own UML diagrams.

The

Notice that gameCharacter has not been derived from the class point, but has included a data member currentLocation which is of type point. Now we’ll get on to inheritance as we start to think about the differences between the game characters.

Remember that a class doesn’t just have data members, but also methods, and the methods for the game objects concerning movement are very different. The player character is going to be moved in response to player commands, while the monster will need an Artificial Intelligence (AI) game function to make it move in pursuit of the player.

There are also different data requirements. For the player, we want to keep a score, and what level of maze they’ve reached. For the monster, we at least want to have a speed variable, so that we can have it move faster or slower.

A

Note that there are a number of functions that have been ommitted from the class designs, particularly how to get and set the values of the various class data members, assuming they are private class members, but the basics are there. With thought, this class tree can be extended in all sorts of ways. Various game characters might be derived from the gameCharacter class, or from the monster class, whichever makes most sense. You can see that using inheritance each derived class provides greater and greater specialisation, but that the base class provides a foundation of reusable code to build upon.

Next we’ll take a look at times when a class may be designed that has more than one bass class, known as multiple inheritance.

  • Object Oriented Programming 2
  • Object Oriented Programming 3
  • Object Oriented Programming 4
  • Object Oriented Programming 5
  • Object Oriented Programming 6
  • Object Oriented Programming 7
  • Object Oriented Programming 8

Filed Under: Object Oriented Programming

Latest Articles

USB 2.0 Intefaces

While USB was originally designed to replace legacy serial and parallel connections, notwithstanding the claims that they were complementary technologies, there can be little doubt that USB 2.0 specification was designed to compete with FireWire. Compaq, Hewlett-Packard, Intel, Lucent, … [Read More...]

4 Massive Benefits Of UX Prototyping

If you have a mind-blowing UX design idea, a good place to start to get investors is by creating a prototype. A prototype is a model of a product in the early stages of development. You can employ a web prototyping tool to aid you here. You can easily test concepts, share them out for feedback, and … [Read More...]

How to Update Microsoft Windows with Patches and Service Packs

With previous versions of Windows, tracking down system patches and updated drivers was difficult. However, Microsoft streamlined the process in Windows 98 by including Windows Update on the Start menu, effectively providing an online extension of Windows designed to help maintain your … [Read More...]

How to Start a Business in Computer Engineering

Did you know that there are 66,200 computer engineers in the United States? This can be a very lucrative career path. However, you may have an easier … [Read More...]

Best Techniques for Defragmenting a Hard Drive

We recently published a post on the importance of defragmenting a hard drive. We wanted to cover the actual process in more depth. The first thing … [Read More...]

Why You Need to Regularly Defragment Your Hard Drive

Your computer's hard disk of is one of the most vital parts of your machine. It needs to operate reliably and quickly for your computer to function … [Read More...]

Container vs VM: What Is the Difference and Which One to Pick?

VMs and containers are two implementations of virtualization technology. This means that both VMs and  containers help to optimize how resources … [Read More...]

Privacy Considerations with Photos and Videos on Your Smartphone

New technology makes it easier than ever to capture images and videos. This technology is getting smaller and easier to use. As a result, the quality … [Read More...]

Tips on How to Land a Remote Job in Cyber Security

The demand for skilled cyber security professionals is growing as well as a number of threats and risks. Any company needs an expert or team to … [Read More...]

Guides

  • Computer Communications
  • Mobile Computing
  • PC Components
  • PC Data Storage
  • PC Input-Output
  • PC Multimedia
  • Processors (CPUs)

Recent Posts

Consumers should Consider 4G LTE

  Long Term Evolution, or for short is LTE, this a big breakthrough. This is a part of 4G or the fourth generation of the mobile … [Read More...]

DVD-Audio

It's interesting to note that the first optical storage medium made available to the public was the now-familiar audio … [Read More...]

SLI Technology

Unveiled in the summer of 2004, SLI (Scaleable Link Interface) is Nvidia's revolutionary approach to 3D graphics … [Read More...]

[footer_backtotop]

Copyright © 2022 About | Privacy | Contact Information | Wrtie For Us | Disclaimer | Copyright License | Authors