public boolean valide()
	{
		boolean valid = false;
		int start = 0;
		int ende = 0;
		Raum startRaum = null;

		_verbindungen.verbindeRaeume(_ui.getMap());

		for(Raum r : _verbindungen.getRaumListe())
		{
			if(r.getRaumart() == RaumArt.Start)
			{
				startRaum = r;
				start++;
			}
			else if(r.getRaumart() == RaumArt.Ende)
				ende++;
		}

		if(start == 1 && ende == 1)
		{//^-- überprüfe Anzahl von start- und endräumen

			PathFinder pf = new PathFinder()
			{
				@Override
				protected boolean isZielRaum(Raum raum)
				{
					return raum.getRaumart() == RaumArt.Ende;
				}
			};

			if(_level.getLeben() > 0)
				valid = false;

			if(pf.findPath(startRaum) != null)
			{//^-- überprüfe Verbindung von start- und endraum

				int anzahlKatzen = _level.getKatzen();
				int zulAnzahlMaeuse = _verbindungen.getRaumListe().size() - 2
						- anzahlKatzen;
				valid = zulAnzahlMaeuse >= _level.getMaeuse();
			}
		}

		//Gegen Garbage-Räume, die von anderen Räumen dank unseres
		//Pathfindings eben referenziert wurden.
		//Wäre valid true, bräuchten wir die Infos noch und die
		//Verbindungen werden in speichern() gelöscht.
		if(!valid)
		{
			_verbindungen.loescheAlleVerbindungen();
		}

		return valid;
	}