I'm trying to take the user input from scanner and then use said values to compare it to values in a 2D array
public void valid(int tempRow, int tempCol) {
if (board[tempRow][tempCol] = "W") {
display();
} else {
System.out.println("Move invalid, try again");
makeMove();
}
setPiece(tempRow, tempCol, "W");
display();
}
This if(board[tempRow][tempCol] = "W"){
returns the error:
incompatable types: java.langString cannot be converted to boolean
Here is the array I'm comparing with:
String[][] board = {
{"-", "-", "-", "-", "-", "-", "-", "-"},
{"-", "-", "-", "-", "-", "-", "-", "-"},
{"-", "-", "-", "-", "-", "-", "-", "-"},
{"-", "-", "-", "-", "-", "-", "-", "-"},
{"-", "-", "-", "-", "-", "-", "-", "-"},
{"-", "-", "-", "-", "-", "-", "-", "-"},
{"-", "-", "-", "-", "-", "-", "-", "-"},
{"-", "-", "-", "-", "-", "-", "-", "-"}};
So for example I'm wanting to take the user input for the row and column, say these are row 1 col 1. Then I want to compare both these to the array and see if board[1][1] = "W"
if it does then invalid move else place a piece.
Any help is appreciated, thanks.
The statement
if(board[tempRow][tempCol] = "W")
means:
board[tempRow][tempCol]
Which, of course, cannot be done because a string is not a boolean.
You meant to use ==
instead of =
. But that would also be wrong. Use .equals()
for string comparisons.