public void update(double elapsed) {
    	this.elapsed += elapsed;
    	while (this.elapsed > MOVE_TIME_MILLS) {
    		this.elapsed -= MOVE_TIME_MILLS;
    		
    		for (GameElement element : gameElements) {
    			element.colides(schlange);
    		}
    		
    		schlange.move();
    	}
    	
    	//check if there are catchable diamonds
    	boolean catchableDias = false;
    	for (Diamant dia : diamanten) {
    		if (!dia.isCatched()) {
    			catchableDias = true;
    		}
    	}
    	if (!catchableDias) {
    		for (GameListener listener : listeners) {
    			listener.win(new GameEvent(schlange.getLength()));
    		}
    	}
    	
    	//check if game is lost
    	if (!schlange.isAlive()) {
    		for (GameListener listener : listeners) {
    			listener.loose(new GameEvent(schlange.getLength()));
    		}
    	}
    }