public Point fight(){
		int aLost = 0;
		int dLost = 0;
		
		// Resets dice values
		d[DEFENDERFIRST]=0;
		d[DEFENDERSECOND]=0;
		a[ATTACKERFIRST]=0;
		a[ATTACKERSECOND]=0;
		a[ATTACKERTHIRD]=0;
		
		unitsAttacker = getFirstTerritory().getNbrOfUnits() - 1;
		unitsDefender = getSecondTerritory().getNbrOfUnits();
		
		for(int i = 0; i < unitsAttacker && i < 3; i++){
			a[i] = Dice.d6Roll();
		}
		Arrays.sort(a);
		int i = 1;
		do{
			d[i-1] = Dice.d6Roll();
			i++;
		}while(i < unitsDefender && i < 3);
		
		if(a[ATTACKERTHIRD] <= Math.max(d[DEFENDERFIRST], d[DEFENDERSECOND])){
			getFirstTerritory().setNbrOfUnits(unitsAttacker);
			aLost++;
		}
		else{
			getSecondTerritory().setNbrOfUnits(unitsDefender - 1);
			dLost++;
		}
			if(a[ATTACKERFIRST] != 0 && a[ATTACKERSECOND] <= Math.min(d[DEFENDERFIRST], d[DEFENDERSECOND]) ){
				getFirstTerritory().setNbrOfUnits(getFirstTerritory().getNbrOfUnits() - 1);
				aLost++;
			}	
		else if(Math.min(d[DEFENDERFIRST], d[DEFENDERSECOND]) != 0 && Math.min(d[DEFENDERFIRST], d[DEFENDERSECOND]) < a[ATTACKERSECOND]){
			getSecondTerritory().setNbrOfUnits(getSecondTerritory().getNbrOfUnits() -1);
			dLost++;
		}
		model.changed();
		Point losses = new Point(aLost, dLost);
		return losses;
	}