Termite colony simulator using java
<p>I have to design a simulator that will maintain an environment, which consists of a collection of patches arranged in a rectangular grid of arbitrary size. Each patch contains zero or more wood chips.</p>

<p>A patch may be occupied by one or more termites or predators, which are mobile entities that live within the world and behave according to simple rules.</p>

<p>A TERMITE can pick up a wood chip from the patch that it is currently on, or drop a wood chip that it is carrying. Termites travel around the grid by moving randomly from their current patch to a neighboring patch, in one of four possible directions. New termites may hatch from eggs, and this is simulated by the appearance of a new termite at a random patch within the environment.</p>

<p>A PREDATOR moves in a similar way to termites, and if a predator moves onto a patch that is
occupied by a termite, then the predator eats the termite.</p>

<p>At initialization, the termites, predators, and wood chips are distributed randomly in the environment. Simulation then proceeds in a loop, and the new state of the environment is obtained at each iteration.</p>

<p>I have designed the arena using JPanel but im not able to randomly place wood,termite and predator in that arena. can any one help me out?</p>

<p>My code for the arena is as following:</p>

<pre><code>01 import java.awt.*;
02 import javax.swing.*;
03  
04 public class Arena extends JPanel
05 {
06         private static final int Rows = 8;
07         private static final int Cols = 8;
08         public void paint(Graphics g)
09             {
10                 Dimension d = this.getSize();

11                 // don't draw both sets of squares, when you can draw one
12                 
                        // fill in the entire thing with one color
13                 
                        g.setColor(Color.WHITE);
14                 
                        // make the background
15                 
                        g.fillRect(0,0,d.width,d.height);
16                 
                        // draw only black
17                 
                        g.setColor(Color.BLACK);
18                 
                        // pick a square size based on the smallest dimension
19                 
                        int sqsize = ((d.width&lt;d.height) ? d.width/Cols : d.height/Rows);
20                 
                         // loop for rows
21                 
                         for (int row=0; row&lt;Rows; row++)
22                  
                           {
23                         int y = row*sqsize;  // y stays same for entire row, set  here
24                         int x = (row%2)*sqsize; // x starts at 0 or one square in

25                         for (int i=0; i&lt;Cols/2; i++)

26                             {

27                             // you will only be drawing half the squares per row

28                             // draw square

29                             g.fillRect(x,y,sqsize,sqsize);

30                             // move two square sizes over

31                             x += sqsize*2;

32                             }

33                     }

34  

35         }

36  

37  
38  
39         public void update(Graphics g) { paint(g); }
40  
41  
42  
43         public static void main (String[] args)
44         {
45  
46                 JFrame frame = new JFrame("Arena");
47                 frame.setSize(600,400);
48                 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
49                 frame.setContentPane(new Arena());
50                 frame.setVisible(true);
51         }
52  
53 }
</code></pre>
