<< Chapter < Page Chapter >> Page >
Figure 3 . The disease has receded after killing many in the population.
Missing image.

Properties that control the spread

Later on, I will explain the properties that control the spread of the disease. Some sets of property values produce results similar to those shownabove where the disease gains a foothold, spreads for awhile killing many sprites, and then recedeswithout killing the entire population.

Other sets of property values end up with all of the sprites having died.

Still other sets of property values end up with the disease being unable to gain a foothold and spread beyond just a fewindividual sprites.

What you have learned

You have learned how to use a basic Slick2D game engine to create simulations involving thousands of sprites, collision detection, and sound.

What you will learn

In this module, you will learn how to use what you have previously learned to write a relatively complex (but somewhat simplified) simulation of a real-world pandemic.

If you were to study the characteristic of pandemics, you could probably upgrade this program to produce a better model of a pandemic. For example,an interesting student project would be to allow healthy sprites to reproduce when they come in contact based on a random probability function.This would allow the population to be growing at the same time that it is dying off due to the disease. Of course, it may then be necessary to dealwith the effects of a population explosion.

General background information

This program simulates the spread of a fatal communicable disease within a population.

A single infected sprite is introduced into a population of sprites. The disease is spread by physical contact between a healthy sprite and an infected sprite.

You can watch as the disease either spreads and kills the entire population or spreads for awhile, then recedes anddies out.

Infected sprites are colored red. Healthy sprites are colored green. A sound is emitted (simply to demonstrate how to emit sounds) each time there is contact between an infected sprite and a healthy sprite.

The final outcome

The final outcome is determined both by chance and by several factors including:

  • The life expectancy of an infected sprite.
  • The probability of infection due to contact with an infected sprite.
  • The degree of mobility of both infected and healthy sprites.
  • The population density of sprites.

The actual values for the first three factors for each individual are determined by a maximum value multipliedby a random number between 0 and 1.0.

Experimentation

Instance variables are provided for all four of these factors. You can modify the values and recompile the program toexperiment with different combinations of the factors.

A good exercise for a student would be to create a GUI that allows the factors to be entered more easily without having to recompilethe program for purposes of experimentation.

Discussion and sample code

The class named Sprite01

The class named Sprite01 is shown in Listing 9 . There is nothing new in Listing 9 that I haven't explained in earlier modules.

Get Jobilize Job Search Mobile App in your pocket Now!

Get it on Google Play Download on the App Store Now




Source:  OpenStax, Anatomy of a game engine. OpenStax CNX. Feb 07, 2013 Download for free at https://legacy.cnx.org/content/col11489/1.13
Google Play and the Google Play logo are trademarks of Google Inc.

Notification Switch

Would you like to follow the 'Anatomy of a game engine' conversation and receive update notifications?

Ask