public static void main(String[] args) {

		System.out
				.println("/===================================================\\\n"
						+ "|   \\\\             /     /\\\\      |–––\\\\            |\n"
						+ "|    \\\\    /\\\\    /     /  \\\\     |    ||           |\n"
						+ "|     \\\\  /  \\\\  /     /––––\\\\    |–––//            |\n"
						+ "|      \\\\/    \\\\/     /      \\\\   |   \\\\ - Machines |\n"
						+ "|===================================================|\n"
						+ "|     Das klassische Flottensimulationsspiel.       |\n"
						+ "\\===================================================/");

		// Init Regeln
		Regeln regeln = Regeln.getRegeln();

		// Init Players
		LokalerSpieler spieler1 = new LokalerSpieler("Spieler1");
		Spieler spieler2 = null;

		if (Client.getClient().getIsLocal()) {
			spieler2 = new ComputerSpieler("Spieler2");
		} else {
			spieler2 = new RemoteSpieler("Spieler2");
		}

		// Platziere Schiffe (Host zuerst)
		if (Client.getClient().getIsHost()) {
			spieler1.place();
			spieler2.place();
		} else {
			spieler2.place();
			spieler1.place();
		}

		Visualisierbar visualisierungSpieler1 = new GUI_Version1();

		// Spielschleife (Host fängt an)
		if (spieler1.isHost()) {
			spieler1.shoot(spieler2);
			visualisierungSpieler1.zeigeSpielFeld(spieler1, spieler2);
			spieler2.shoot(spieler1);
			visualisierungSpieler1.zeigeSpielFeld(spieler1, spieler2);
		} else {
			spieler2.shoot(spieler1);
			visualisierungSpieler1.zeigeSpielFeld(spieler1, spieler2);
		}

		while (!regeln.isGameOver()) {
			spieler1.shoot(spieler2);
			visualisierungSpieler1.zeigeSpielFeld(spieler1, spieler2);
			if (spieler2.isGameOver())
				break;
			spieler2.shoot(spieler1);
			visualisierungSpieler1.zeigeSpielFeld(spieler1, spieler2);
			if (spieler1.isGameOver())
				break;
		}

		spieler1.printStatus();
		if (!Client.getClient().getIsLocal())
			Client.getClient().closeConnection();
	}