I'm not sure if i'm on the right track of getting this program to work. I've been writing out different scenarios every possibility. It seems right to me, but it's not debugging for some reason.
Valid indices for array are 0 to size-1 where size is the number of elements in the array.
For an array char board[3][3] the allowable indices are board[0][0] to board[2][2]. You are using indices that are outside the allowable range, resulting in undefined behavior.
The way the comma operator works is: Evaluate the left hand argument, discard the result and evaluate the right hand argument -- the expression becomes the value of the right hand argument.
if ( board[0][0] == name1, board[0][1] == name1, boar[0][2] == name1 )
is equivalent to if ( board[0][2] == name1 )
since the first arguments are discarded after being evaluated.
In addition, it would probably make more sense to do those comparisons like so:
1 2 3
if ( board[0][0] == board[0][1] && board[0][1] == board[0][2] )
cout << board[0][0] << " has won!\n" ;
elseif ...