public static void main(String[] args) throws InterruptedException {
        // Generate environment map
        generateMap1();
        Environment env = Environment.getInstance();
        Square[][][] map = Environment.getInstance().getMap();
        AgentScheduler as = new AgentScheduler();
        Kernel k = Kernels.create(as);
        k.launchLightAgent(env);
        
        
        Side a = new Side(1, "img/Ants/worker1.png", "img/Ants/warrior1.png",
                "img/Ants/queen1.png", Color.magenta);
        Side b = new Side(2, "img/Ants/worker2.png", "img/Ants/warrior2.png",
                "img/Ants/queen2.png", Color.cyan);
        Side c = new Side(3, "img/Ants/worker3.png", "img/Ants/warrior3.png",
                "img/Ants/queen3.png", Color.pink);

        Queen q1 = new Queen(new Point3D(5, 35, 0), 1, a, k);
        Queen q2 = new Queen(new Point3D(35, 35, 0), 1, b, k);
        Queen q3 = new Queen(new Point3D(20, 5, 0), 1, c, k);
        k.launchLightAgent(q1);
        k.launchLightAgent(q2);
        k.launchLightAgent(q3);

        for (int i = 0; i < 25; ++i) {
            k.launchLightAgent(new Warrior(new Point3D(5, 35, 0), 15, a));
            k.launchLightAgent(new Warrior(new Point3D(35, 35, 0), 15, b));
            k.launchLightAgent(new Warrior(new Point3D(20, 5, 0), 15, c));
        }

        for (int i = 0; i < 75; ++i) {
            k.launchLightAgent(new Worker(new Point3D(5, 35, 0), 15, a));
            k.launchLightAgent(new Worker(new Point3D(35, 35, 0), 15, b));
            k.launchLightAgent(new Worker(new Point3D(20, 5, 0), 15, c));
        }

        k.launchHeavyAgent(new WindowsContainer());

        //Food around camps
        for (int i = 0; i < 25; ++i) {
            //Bottom left
            new Food(new Point3D(1, 37, 0));
            new Food(new Point3D(1, 38, 0));
            new Food(new Point3D(2, 37, 0));
            new Food(new Point3D(2, 38, 0));

            //Bottom right
            new Food(new Point3D(37, 37, 0));
            new Food(new Point3D(37, 38, 0));
            new Food(new Point3D(38, 37, 0));
            new Food(new Point3D(38, 38, 0));

            //Top middle
            new Food(new Point3D(19, 1, 0));
            new Food(new Point3D(20, 1, 0));
            new Food(new Point3D(19, 2, 0));
            new Food(new Point3D(20, 2, 0));
        }

        //Food in the middle
        for (int i = 0; i < 100; ++i) {
            new Food(new Point3D(19, 19, 0));
            new Food(new Point3D(19, 21, 0));
            new Food(new Point3D(21, 19, 0));
            new Food(new Point3D(21, 21, 0));
        }

        //Food on sides
        for (int i = 0; i < 40; ++i) {
            new Food(new Point3D(12, 18, 0));
            new Food(new Point3D(map.length - 12, 18, 0));
            new Food(new Point3D(20, map[0].length - 8, 0));
        }
    }