/*
 * AntSimulator.java
 *
 * Created on 07 October 2006, 01:43
 *
 * To change this template, choose Tools | Template Manager
 * and open the template in the editor.
 */

package ants;


import ants.control.AntControl;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.JApplet;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;

/**
 *
 * @author James Hamilton
 */
public class AntSimulator extends JApplet {
    
    private Grid grid;
   
    /** Creates a new instance of AntSimulator */
    public AntSimulator(int size) {

            initialise();
            
           int r = (int)(Math.random() * Math.sqrt(8)) * (int)(Math.random() *Math.sqrt(8));
           System.out.println(r);
        
        
        setVisible(true);
    }
    
    public void initialise() {
        grid = Grid.getInstance(100);
        grid.reset();
        setSize(getSize());  

        getContentPane().remove(grid);
        getContentPane().add(grid, BorderLayout.CENTER);

        grid.getNest().addAnts(8);
        
        grid.populateWithObstacles(0);
        //grid.populateWithFood(5);
        try {
            grid.addFoodCluster(80, 20, 3);//7
           grid.addObstacleCluster(50, 21, 4);
            grid.addObstacleCluster(50, 22, 4);
           grid.addObstacleCluster(50, 23, 4);
          //  grid.addFoodCluster(30, 80, 3);
        }catch (Exception e) {
            //no such grid square.
        }
        
        Grid.getInstance().resetFoodStrengths();
        
    }
    
    public AntSimulator() {
        this(100);
    }
    
    public Dimension getSize() {
        return grid.getSize();
    }
    
    public static void main(String[] args) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                JFrame f = new JFrame("Ant Simulator");
                final AntSimulator m = new AntSimulator(100);
                f.add(m);
                f.setSize((int)m.getSize().getWidth() + 13, (int)m.getSize().getHeight() + 35);
                f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                f.setResizable(false);
                f.setVisible(true);

                AntControl.getInstance().setVisible(true);
            }
        });
          
        
        
    }   
}

