public double[] generateNewCompanyValues(Player[] players) {
		//ermitteln der Daten
		double[] researchData = new double[players.length];
		double[] marketingData = new double[players.length];
		double researchOverall = 0;
		double marketingOverall = 0;
		int playerCtr = 0;
		for (Player player : players) {
			Vector<PlayerData> playerData = player.getData();
			double research = 0;
			double marketing = calculateMarketing(playerData);
			marketingOverall += marketing;
			
			research = calculateResearch(playerData);
			researchOverall+= research;
			
			researchData[playerCtr] = research;
			marketingData[playerCtr] = marketing;
			playerCtr++;
		}//äußere Schleife Spieler
		
		//Berechnen der Werte
		double[] companyValues = new double[players.length];
		for(int i=0; i<companyValues.length; i++)
		{
			double research = researchData[i]/researchOverall*100;
			double marketing = marketingData[i]/marketingOverall*100;
			double erg;
			if(marketing < research)
			{
				if(marketing/research < 0.3/0.7)
				{
					erg = (marketing+research)*(1.5 + ((marketing/research)-(0.3/0.7)));
				} else {
					erg = (marketing+research)*(1.5 - ((marketing/research)-(0.3/0.7)));
				}
			} else {
				erg = (research+marketing)*(1.5-(1-(research/marketing-0.3/0.7)));
			}
			if(erg < marketing + research){
				erg = marketing+research;
			}
			companyValues[i] = erg;
			companyValues[i] += players[i].getReliability()*50;
			companyValues[i] /= (players[i].getData().lastElement().getPricePerAirplane()/10);
			int ctr = 0;
			double value = 0;
			for (PlayerData data : players[i].getData()) {
				ctr++;
				value += data.getQualityOfMaterial();
			}
			companyValues[i] += value;
			// muss noch mit dem Preis in Verbindung gebracht werden;
		}//for Schleife, die Werte aufaddiert, hier müssen später noch die Verhältnisse rein
		return companyValues;
	}//generateNewCompanyValues