I prefer this one
{
if(
IsEqual(gridValues, 0,1,2) ||
IsEqual(gridValues, 3,4,5) ||
IsEqual(gridValues, 6,7,8) ||
IsEqual(gridValues, 0,4,8) ||
IsEqual(gridValues, 6,4,2) ||
IsEqual(gridValues, 0,3,6) ||
IsEqual(gridValues, 1,4,7) ||
IsEqual(gridValues, 2,5,8) )
{
/* is done */
}
else
{
/* not equal */
}
}
public static bool IsEqual(string[] A,params int[] index)
{
if(index.Length==0)
return false;
for(int i=1;i<index.Length;i++)
if(A[index[i]]!=A[0])
return false;
return true;
}
And this maybe exact code you are looking for
public static bool IsDone(string[] gridValues, string O_X)
{
if (
IsEqual(gridValues, O_X, 0, 1, 2) ||
IsEqual(gridValues, O_X, 3, 4, 5) ||
IsEqual(gridValues, O_X, 6, 7, 8) ||
IsEqual(gridValues, O_X, 0, 4, 8) ||
IsEqual(gridValues, O_X, 6, 4, 2) ||
IsEqual(gridValues, O_X, 0, 3, 6) ||
IsEqual(gridValues, O_X, 1, 4, 7) ||
IsEqual(gridValues, O_X, 2, 5, 8))
return true;
return false;
}
public static bool IsEqual(string[] A, string a, params int[] index)
{
for (int i = 0; i < index.Length; i++)
if (A[index[i]] != a)
return false;
return true;
}
You can use it like this:IsDone(gridValues, 'X')
visual-studiotag for you. It is only meant for tags relating to issues with Visual Studio itself, not code that was written in Visual Studio. Common tags have usage descriptions (see tagging for more info) in order to help you decide if they fit your question or not.