private void updateAccelerations(TrainsGame game)
    {
    	// TODO combine these into a method somehow
    	
    	int accelCollisions = 0;
    	
		Rectangle r = getEndBox(End.HEAD);
    	
    	for (Player player : game.getPlayers())
    	{
    		if (player != this)
    			accelCollisions += player.checkCollisions(r);
    	}
    	
    	if (accelCollisions > 0)
    	{
    		headAcceleration = ACCEL * Math.min(accelCollisions, MULTI_ACCEL); // TODO make this more versitile
    	}
    	else if (checkCollisions(r) > 0) // TODO figure out this + multi-accel
    	{
    		headAcceleration = ACCEL * SELF_ACCEL_MODIFIER;
    	}
    	else
    	{
    		headAcceleration = (float) (-1 * ACCEL * DECEL_MODIFIER);
    	}
    	
		r = getEndBox(End.TAIL);
    	
		accelCollisions = 0;
		
    	for (Player player : game.getPlayers())
    	{
    		if (player != this)
    			accelCollisions += player.checkCollisions(r);
    	}
    	
    	if (accelCollisions > 0)
    	{
    		tailAcceleration = (float) ACCEL * Math.min(accelCollisions, MULTI_ACCEL); // TODO make this more versitile
    	}
    	else if (checkCollisions(r) > 0) // TODO figure out this + multi-accel
    	{
    		tailAcceleration = ACCEL * SELF_ACCEL_MODIFIER;
    	}
    	else
    	{
    		tailAcceleration = (float) (-1 * ACCEL * DECEL_MODIFIER);
    	}
    }