rendered paste bodyimport java.util.Random;
public class JogoVelha {
public static void main ( String args[] ) {
int n1 = 0; String out1 = " ";
int n2 = 0; String out2 = " ";
int n3 = 0; String out3 = " ";
int n4 = 0; String out4 = " ";
int n5 = 0; String out5 = " ";
int n6 = 0; String out6 = " ";
int n7 = 0; String out7 = " ";
int n8 = 0; String out8 = " ";
int n9 = 0; String out9 = " ";
System.out.println("Bem-vindo ao Jogo da Velha");
System.out.println("Você representa o símbolo 'x', e o computador o 'o'");
System.out.println("Observe a tabela do Jogo da Velha, cada quadrado tem um número");
System.out.println(" Ex: '3' pertence ao 1º quadrado da 3º coluna, e assim por diante");
String symbol = "";
String venceu = "nao";
int x = 0;
while (x <= 9) {
int d = 0;
System.out.println("~~~~~~~~~~ ~~~~~~~~~~");
System.out.println("1 | 2 | 3 "+out1+" | "+out2+" | "+out3);
System.out.println("4 | 5 | 6 => "+out4+" | "+out5+" | "+out6);
System.out.println("7 | 8 | 9 "+out7+" | "+out8+" | "+out9);
System.out.println("~~~~~~~~~~ ~~~~~~~~~~");
if (venceu != "nao") { //Anuncia o vencedor
if (venceu == "x") { System.out.println("Você ganhou o Jogo da Velha! Parabéns!!!"); }
else { System.out.println("Que feio! Você perdeu o Jogo da Velha para um computador!!!"); }
x = 10;
}
else { //Continua o jogo
x = x + 1;
if (x > 9) { //Deu velha!
System.out.println("Ninguém conseguiu ganhar no Jogo da Velha ¬¬");
System.out.println(" como consolo, pelo menos você não perdeu :)");
}
else {
if ((x % 2) == 1) {
symbol = "x";
System.out.println("Sua vez de jogar, digite um número");
d = Keyboard.readInt();
//Alerta de erro caso numero digitado seja invalido ou repetido
while (d<1 || d>9 || d==n1 || d==n2 || d==n3 || d==n4 || d==n5 || d==n6 || d==n7 || d==n8 || d==n9) {
if (d<1 || d>9) { System.out.println("Ops! Número inválido, você deve digitar um número entre 1 e 9"); }
else { System.out.println("Ops! O Número "+d+" já foi digitado. Digite outro número"); }
d = Keyboard.readInt();
}
}
else {
symbol = "o";
System.out.println("O computador está jogando...");
//Estratégia do computador
while (d==n1 || d==n2 || d==n3 || d==n4 || d==n5 || d==n6 || d==n7 || d==n8 || d==n9) {
Random generator = new Random();
d = generator.nextInt(9) + 1;
/*
//estrategias favoraveis a fazer o computador ganhar
if (out3=="o" && out9=="o" && n6==0) { d = 6; }
else if (out4=="o" && out6=="o" && n5==0) { d = 5; }
else if (out7=="o" && out3=="o" && n5==0) { d = 5; }
else if (out6=="o" && out5=="o" && n4==0) { d = 4; }
else if (out2=="o" && out1=="o" && n3==0) { d = 3; }
else if (out5=="o" && out8=="o" && n2==0) { d = 2; }
else if (out7=="o" && out9=="o" && n8==0) { d = 8; }
else if (out2=="o" && out5=="o" && n8==0) { d = 8; }
//estrategias a fim de evitar que o usuario ganhe
else if (out1=="x" && out2=="x" && n3==0) { d = 3; }
else if (out3=="x" && out6=="x" && n9==0) { d = 9; }
else if (out7=="x" && out9=="x" && n8==0) { d = 8; }
else if (out1=="x" && out9=="x" && n5==0) { d = 5; }
else if (out7=="x" && out5=="x" && n3==0) { d = 3; }
else if (out2=="x" && out3=="x" && n1==0) { d = 1; }
else if (out9=="x" && out5=="x" && n1==0) { d = 1; }
else if (out5=="x" && out6=="x" && n4==0) { d = 4; }
else if (out3=="x" && out7=="x" && n5==0) { d = 5; }
else if (out4=="x" && out6=="x" && n5==0) { d = 5; }
//"randomico"
else if (n2 == 0) { d = 2; }
else if (n7 == 0) { d = 7; }
else if (n6 == 0) { d = 6; }
else if (n1 == 0) { d = 1; }
else if (n4 == 0) { d = 4; }
else if (n3 == 0) { d = 3; }
else if (n5 == 0) { d = 5; }
else if (n9 == 0) { d = 9; }
else if (n2 == 0) { d = 2; }
else if (n4 == 0) { d = 4; }
else if (n8 == 0) { d = 8; }
*/
}
}
//Grava o numero digitado
if (d == 1) { n1 = 1; out1 = symbol; }
if (d == 2) { n2 = 2; out2 = symbol; }
if (d == 3) { n3 = 3; out3 = symbol; }
if (d == 4) { n4 = 4; out4 = symbol; }
if (d == 5) { n5 = 5; out5 = symbol; }
if (d == 6) { n6 = 6; out6 = symbol; }
if (d == 7) { n7 = 7; out7 = symbol; }
if (d == 8) { n8 = 8; out8 = symbol; }
if (d == 9) { n9 = 9; out9 = symbol; }
//Verifica se alguém venceu
String tmp = "";
int k = 1;
while (k <= 2) {
if (k == 1) { tmp = "x"; } else { tmp = "o"; }
//horizontal
if (out1==tmp && out2==tmp && out3==tmp) { venceu = tmp; }
if (out4==tmp && out5==tmp && out6==tmp) { venceu = tmp; }
if (out7==tmp && out8==tmp && out9==tmp) { venceu = tmp; }
//vertical
if (out1==tmp && out4==tmp && out7==tmp) { venceu = tmp; }
if (out2==tmp && out5==tmp && out8==tmp) { venceu = tmp; }
if (out3==tmp && out6==tmp && out9==tmp) { venceu = tmp; }
//perpendicular
if (out1==tmp && out5==tmp && out9==tmp) { venceu = tmp; }
if (out3==tmp && out5==tmp && out7==tmp) { venceu = tmp; }
k = k + 1;
}
}
}
}
System.out.println("Fim do Jogo");
}
public static void Teste ( String Msg ) {
System.out.println(Msg);
}
}