I am trying to develop a checkerboard given a template of classes and some code for school. I got the board to appear but the right amount of checkers are not being drawn. There are supposed to be 7 red and 9 black checkers but each time I run the program a different amount of each is drawn.
import java.applet.Applet;
import java.awt.*;
import java.util.Random;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
public class Checkers extends JApplet
{
private final int MAX_SIZE = 8; 
private final int APP_WIDTH = 400;
private final int APP_HEIGHT = 400;
private final int MAXSIZE = 8;
Square[][] sq;
public void paint(Graphics page)
    {
   setBackground(Color.white);
   fillBoard(page); // draws the method that will draw the checkers         
   placeCheckers(page, 7, Color.red);   //method to place the red checkers
   placeCheckers(page, 9, Color.black); //method to draw  black checkers
   CheckJumps(page);    //check if checkers can jump    
   setSize (APP_WIDTH,APP_HEIGHT);
   }
 public void fillBoard(Graphics page)
 {  
    sq = new Square[8][8];
    int x,y;
    Color rb;
    for (int row = 0; row < MAXSIZE; row++)
      for (int col = 0; col < MAXSIZE; col++)
      {
         x = row * (APP_WIDTH/MAXSIZE);
         y = col * (APP_HEIGHT/MAXSIZE);
         if ( (row % 2) == (col % 2) )
            rb = Color.red;
         else
            rb = Color.black;
         sq[row][col] = new Square (x, y, rb);  
      }
     for (int row = 0; row < 8; row++)
       for (int col = 0; col < 8; col++)
          sq[row][col].draw(page);
}
public void placeCheckers (Graphics page, int num_checkers, Color ncolor)
    {
    int count, row, col;
    int x, y;
    Circle c;
   Random rand = new Random();
   for (count = 0; count < num_checkers; count++)
   {
      do
      {
         row = rand.nextInt(8);
         col = rand.nextInt(8);
      } while (sq[row][col].getOccupy() || ncolor == sq[row][col].getColor());
      x = row * (APP_WIDTH/MAXSIZE);
      y = col * (APP_HEIGHT/MAXSIZE);
      c = new Circle (x, y, 50, ncolor);
      c.draw(page);
      sq[row][col].setOccupy(true);
   }    
    }
class Square 
{
 private int x, y = 0;  
 private Color c;
 private boolean occupied;
 public Square (int x, int y, Color c)
 {
   this.x = x;
   this.y = y;
   this.c = c;
 }
 public void setX (int x)
 {
   x = this.x;
 }
 public int getX ()
 {
   return x;
 }
 public void setY (int y)
 {
   y= this.y;
 }
 public int getY ()
 {
   return y;
 }
 public void setColor (Color c)
 {
   c = this.c;
 }
 public Color getColor ()
 {
   return c;
 }
 public void setOccupy (boolean occupied)
 {
   occupied = this.occupied;
 }
 public boolean getOccupy ()
 {
   return occupied;
 }
 public String toString()
 {
   return ("X coordinate: " + x + "\nY coordinate:" + y + "\nSquare color: " + c);
 }
public void draw (Graphics page)
    {
      page.setColor(c);
      page.fillRect(x, y, 50, 50);    
    } 
}
class Circle
{
   private int x,y;
   private int diameter;
   private Color c;
   public Circle (int x, int y, int diameter, Color c)
   {
      this.x = x;
      this.y = y;
      this.diameter = diameter;
      this.c = c;
   }
   public void setX (int x)
   {
      x = this.x;
   }
    public int getX ()
    {
      return x;
    }
    public void setY (int y)
    {
      y= this.y;
    }
    public int getY ()
    {
      return y;
    }
    public void setColor (Color c)
    {
      c = this.c;
    }
    public Color getColor ()
    {
      return c;
    }
    public void setDiameter (int x)
    {
      diameter = x;
    }
public void draw (Graphics page)
{
   page.setColor(c);
   page.fillOval(x, y, diameter, diameter);
}
}