Galera, já tentei de tudo, mas não consigo descobrir porque, no programa abaixo, a String “campo” nunca é válida, exibindo sempre a mensagem:
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.PrintStream;
import java.util.Scanner;
import javax.swing.JOptionPane;
public class JogoDaVelha {
/**
* @param args
* @throws IOException
*/
public static void main(String[] args) throws IOException {
boolean valida;
int a1, a2, a3, b1, b2, b3, c1, c2, c3;
int vezDeQuem = 0;
int acabou = 0;
String campo;
String desenho;
String jogador1, jogador2, jogador;
jogador1 = JOptionPane
.showInputDialog("Digite o nome do primeiro jogador");
jogador2 = JOptionPane
.showInputDialog("Digite o nome do segundo jogador");
while (!(acabou == 4)) {
if (!(vezDeQuem % 2 == 0)) {
jogador = jogador1;
desenho = "O";
} else {
jogador = jogador2;
desenho = "X";
}
System.out.println("É sua vez " + jogador + "!!");
campo = JOptionPane.showInputDialog("Digite o campo em que deseja jogar");
valida = true;
if (jogador.equals(jogador1)) {
if (campo == "a1")
a1 = 1;
else if (campo == "a2")
a2 = 1;
else if (campo == "a3")
a3 = 1;
else if (campo == "b1")
b1 = 1;
else if (campo == "b2")
b2 = 1;
else if (campo == "b3")
b3 = 1;
else if (campo == "c1")
c1 = 1;
else if (campo == "c2")
c2 = 1;
else if (campo == "c3")
c3 = 1;
else {
JOptionPane.showMessageDialog(null,"Digite um campo válido!!");
valida = false;
}
} else {
if (campo == "a1")
a1 = 2;
else if (campo == "a2")
a2 = 2;
else if (campo == "a3")
a3 = 2;
else if (campo == "b1")
b1 = 2;
else if (campo == "b2")
b2 = 2;
else if (campo == "b3")
b3 = 2;
else if (campo == "c1")
c1 = 2;
else if (campo == "c2")
c2 = 2;
else if (campo == "c3")
c3 = 2;
else {
JOptionPane.showMessageDialog(null,"Digite um campo válido!!");
valida = false;
}
}
if (valida) {
acabou++;
vezDeQuem++;
}
}
}
}
Se alguém puder ajudar, ficarei agradecido, obrigado!!!