Once again, the purpose of this chapter is not to illustrate the solution to a problem per se, but rather to illustrate a design that emphasizes how you can structure a computer program as a universe of interacting agents that work together to produce the desired outcome.