Mam problem, po napisaniu kodu w c++ w bibliotece sfml i skompilowaniu go wyskakuje mi białe okno bez możliwości jego zamknięcia. Wielokrotnie szukałem błędu i poprawiałem kod ale bez skutku. Mam prośbę czy mógłby ktoś rzucić na niego okiem i mi powiedzieć co robię nie tak?

#include "stdafx.h"
#include <SFML\Graphics.hpp>
#include <math.h>
#include<cstdlib>
#include<cstdio>
#include<string>
#include<ctime>
#include<sstream>

int main()
{
	srand(time(NULL));
	sf::ContextSettings settings;
	settings.antialiasingLevel = 8;

	sf::Font font;
	std::srand(std::time(0)); //dekalrowanie liczb losowych
	int random_variable = std::rand();
	
	sf::RenderWindow window(sf::VideoMode(800, 600), "Armatka");//główne

	float r=100;	
	sf::CircleShape kolo1(r);//kolo1 z obwodka
	kolo1.setFillColor(sf::Color::Green);
	kolo1.setOutlineThickness(-0.04*r);
	kolo1.setOutlineColor(sf::Color::Red);

	
	sf::CircleShape kolo2(30);//kolo2 z obwodka
	kolo2.setFillColor(sf::Color::Yellow);
	kolo2.setOutlineThickness(-0.04*r);
	kolo2.setOutlineColor(sf::Color::Magenta);

	//kwadrat
	sf::RectangleShape rectangle(sf::Vector2f(1.5 * r, 0.4*r));
	rectangle.setFillColor(sf::Color::Blue);

	//określanie pozycji i rozmiaru kółek i prostokąta
	kolo1.setOrigin(r, r);//ustawienie centrum obiektu 
	kolo1.setPosition(3 * r, 3 * r);
	kolo2.setPosition(3 * r, 3 * r);
	rectangle.setOrigin(0, 0.2*r);
	rectangle.setPosition(3 * r, 3 * r);

	const int x = 111;
	sf::CircleShape kulki[x];    //tablica kulki
	for (int z = 0; z < x; z++)
	{
		int a = (rand() % 25) + 10;
		kulki[z].setRadius(a);
		kulki[z].setOrigin(a, a);
		int b = (rand() % 760) + 20;
		int c = (rand() % 470) + 90;
		
		while ((sqrt(((b - 3*r)*(b - 3*r)) + ((c - 3*r)*(c - 3*r)))) < (3*r))//tu zmieniamy odl kulek od promienia
		{
			b = (rand() % 710) + 20;
			c = (rand() % 470) + 90;
		}

		kulki[z].setPosition(b, c);
		kulki[z].setFillColor(sf::Color(rand() % 250 + 5, rand() % 250 + 5, rand() % 250 + 5));
		kulki[z].setOutlineColor(sf::Color(rand() % 255+5, rand() % 255+5, rand() % 255+5));
		kulki[z].setOutlineThickness(-2);	
	}
	
	
		sf::Int16 xpos[x], ypos[x];// Sprawdzenie odleglosci od innych kulek
		for (int z = 0; z < x; z++)
		{
			xpos[z] = rand() % 750;
			ypos[z] = rand() % 470 + 30;
		}
	
	for (int z = 0; z < x; z++)
	{	
		float dl = 0;
		while (dl < rectangle.getSize().x)
		{
			int xt = xpos[z] + kulki[z].getRadius(), yt = ypos[z] + kulki[z].getRadius();
			dl = pow((kolo1.getPosition().x - xt), 2);
			dl += pow((kolo1.getPosition().y - yt), 2);
			dl = sqrt(dl);
			dl -= kulki[z].getRadius();
			if (dl < rectangle.getSize().x)
			{
				xpos[z] = rand() % 750;
				ypos[z] = rand() % 470 + 30;
			}
		}

		float odleglosc = 0;
		for (int c = 0; c < z; c++)
		{
			float rr = kulki[c].getRadius();
			int xz = xpos[z] + kulki[z].getRadius(), xc = xpos[c] + kulki[c].getRadius(), yz = ypos[z] + kulki[z].getRadius(), yc = ypos[c] + kulki[c].getRadius();
			rr += kulki[z].getRadius();
			odleglosc = pow((xz - xc), 2);
			odleglosc += pow((yc - yz), 2);
			float rq;
			rq = pow(rr, 2);
			if (odleglosc < rq)
			{
				xpos[z] = rand() % 750;
				ypos[z] = rand() % 470 + 30;
				c = z;
				z -= 1;
			}
		}
	}
	for (int z = 0; z < x; z++)
	{
		kulki[z].setPosition(xpos[z], ypos[z]);
	}
	

	sf::RectangleShape linia(sf::Vector2f(800, 1));//taka se linia 
	linia.setPosition(0, 40);
	linia.setFillColor(sf::Color::Magenta);
	while (window.isOpen())
	{
		sf::Event event;
		while (window.pollEvent(event))
		{
			if (event.type == sf::Event::Closed)
				window.close();
		}
		//window.setFramerateLimit(60);
		window.clear();
		window.draw(kolo1);//wyświetlenie
		window.draw(rectangle);
		window.draw(kolo2);		
		window.draw(linia);
		for (int z = 0; z < x; z++)//wyświetlanie kółek w pętli
		{
			window.draw(kulki[z]);
		}
		window.display();

		//ruch za myszką i celowanie
		double dX = sf::Mouse::getPosition(window).x - rectangle.getPosition().x;
		double dY = sf::Mouse::getPosition(window).y - rectangle.getPosition().y;
		double rotation = atan2(dY, dX);
		rotation *= 180 / 3.14;

		rectangle.setRotation(rotation);//obracanie sie działa

	}

	return 0;
}