Sugarscape Andy Menke
Agent Based Modeling Simple agents = complex behavior Boids
Sugarscape Simulates human culture and society Agents need to collect sugar to survive Only traits (at first) – vision and metabolism The empty scape
My Program’s Structure Driver – GUI classes ScapeG Scape Location Agent/Breeder
GUI classes ScapeGUI: buttons for main control GensPanel: information, speed control Both contain instances of ScapeG
ScapeG Controls all aspects of graphics for my program Interfaces between GUI classes and other parts Contains instance of Scape class; tells it when to update
Scape Main components: 2-d array of Locations, ArrayList of Breeders (Agents) Handles updating the scape
Location Represents a single location in the scape Has a value of sugar and one (or zero) Agent instances Has various helper methods
Breeder Represents a single agent (that can breed) Stores various traits, and has the methods that are needed to breed/eat/find the best space to go to
First Quarter Basic framework Scape file (2500 numbers...) Basic display capabilities
Second Quarter Agents (A really big deal) Solved issue with agents going to right side Graphical user interface First rules
Third Quarter Agent Breeding Agents have a set age at which they die. Agents have a gender and age range during which they can breed. Agents breed every turn that they are next to an agent of the opposite gender that can breed The agent just born gets half of each parent’s money
Fourth Quarter Improved GUI Speed changing Bug fixing
Next Steps Graphing of trends with JFreeChart Creation of API/documentation Release under the GPL?