I am trying to calculate the various combinations that you could have. Matched, Not-Matched, Not-In. I had the function:
Code:
		//Local variables
		int w = 0;
		char x[4]; //szMatch is users choice
		char y[4]; //total is computers choice
		CString matches="";

		//Get an array of the colors to check each letter for a match
		while(w<4)
		{
			x[w]=szMatch.GetAt(w);  //Sets x[w] with users choice colors
			y[w]=total.GetAt(w);    //Sets y[w] with computers choice colors
			w++;
		}

		//reset w to zero so we can use it again
		w=0;

		while(w<4){
			if(x[w]==y[w])       //We have a match
				matches=matches+"I ";
			else if(x[w]==y[0]||x[w]==y[1]||x[w]==y[2]||x[w]==y[3])  //Not a match, but in the combo
				matches=matches+"O ";
			else                 //Default, no match
				matches=matches+"X ";
			w++;}
But when you pick say: Blue Blue Blue Blue, and Blue is only in the first match, the other 3 Blue's say that they are Not a match, but in the combo. This is confusing to people who do not expect that. So I tried to write another fucton for this and it was getting very long using if/else so I scrapped that idea.

Anyone have a better way to do this?