vendredi 6 mars 2015

Making C++ program to play quarto, having one issue with array elements


These functions in particular are what I'm having issues with, Piece is a struct implemented elsewhere in the file and only contains a 4 character string called "name". I'm trying to get my code so that it can compare 4 pieces in a row (in any direction), by comparing each of their 4 characters one at a time. The error that appears when I compile says that it cannot convert the string I am inputting into what it needs to operate further.



string comparePieces(string a, string b, string c, string d)
{
string sharedTrait;

if(a[0] == b[0] && a[0] == c[0] && a[0] == d[0])
sharedTrait = "true";
else if(a[1] == b[1] && a[1] == c[1] && a[1] == d[1])
sharedTrait = "true";
else if(a[2] == b[2] && a[2] == c[2] && a[2] == d[2])
sharedTrait = "true";
else if(a[3] == b[3] && a[3] == c[3] && a[3] == d[3])
sharedTrait = "true";
else
sharedTrait = "false";

return sharedTrait;
}

string getSpace(string space)
{
int r;
int c;
space == board[r][c].name;
return space;
}

string checkWinner()
{
string win = "false";
for(int i = 0; i<= 4; i++)
{
int r = i;
if( comparePieces( (getSpace(board[r][0].name)) , (getSpace(board[r][1].name)) , (getSpace(board[r][2].name)) , (getSpace(board[r][3].name)) ) == "true")
win = "true";
if( comparePieces( (getSpace(board[0][r].name)) , (getSpace(board[1][r].name)) , (getSpace(board[2][r].name)) , (getSpace(board[3][r].name)) ) == "true")
win = "true";
if( comparePieces( (getSpace(board[0][0].name)) , (getSpace(board[1][1].name)) , (getSpace(board[2][2].name)) , (getSpace(board[3][3].name)) ) == "true")
win = "true";
if( comparePieces( (getSpace(board[0][3].name)) , (getSpace(board[1][2].name)) , (getSpace(board[2][1].name)) , (getSpace(board[3][0].name)) ) == "true")
win = "true";
}
return win;
}



Aucun commentaire:

Enregistrer un commentaire