Ola pessoal
eu tenho um problema..
eu tenho um jogo da velha em java..
import java.util.Random;
import java.util.Scanner;
public class JogoDaVelha {
public static int qualJogador = 3; // 3 = X e 7 = O
public static int[] tabuleiro = new int[9]; // Inicia com zeros.
public static boolean contraCPU = false; // false 1x1, true 1xCPU.
public static void trocaJogador(){
qualJogador = (qualJogador==3)?7:3; // Se o jogador eh 3 passa a ser 7 e vice-versa.
}// trocaJogador
public static boolean eJogadaValida(int linha, int coluna){
return ((tabuleiro[coluna+(3*linha)]==0)?true:false);
}// eJogadaValida
public static void mostraTabuleiro(){
for(int i=0; i<tabuleiro.length; i++){
if((i%3)==0){
System.out.println();
if(i!=0)
System.out.println("------");
}
if(tabuleiro[i]==0){
if(((i+1)%3)!=0){
System.out.print(" |");
}
}else{
if(((i+1)%3)!=0){
System.out.print((tabuleiro[i]==3)?"X|":"O|");
}else{
System.out.print((tabuleiro[i]==3)?"X":"O");
}
}
}
System.out.println();
}// mostraTabuleiro
public static int temVencedor(){
// Se achar o vencedor retorna o seu numero (3 ou 7).
int somaLinha=0;
int[] vSomaColunas = new int[3];
for(int i=0; i<tabuleiro.length; i++){
somaLinha += tabuleiro[i];
if(((i+1)%3)==0){
if((somaLinha==9)||(somaLinha==21))
return (somaLinha/3); //Achou um vencedor na linha
somaLinha=0;
}
vSomaColunas[i%3]+=tabuleiro[i];
}
for(int i=0; i<vSomaColunas.length;i++){
if((vSomaColunas[i]==9)||(vSomaColunas[i]==21))
return (vSomaColunas[i]/3); // Achou um vencedor na coluna
}
int diag1 = tabuleiro[0]+tabuleiro[4]+tabuleiro[8];
if((diag1==9)||(diag1==21))
return (diag1/3);
int diag2 = tabuleiro[2]+tabuleiro[4]+tabuleiro[6];
if((diag2==9)||(diag2==21))
return (diag2/3);
return 0; //Nao tem vencedor
}// temVencedor
public static boolean deuVelha(){
for(int i=0; i<tabuleiro.length; i++){
if(tabuleiro[i]==0)
return false;
}
return true;
}// deuVelha
public static void realizaJogada(){
Scanner in = new Scanner(System.in);
Random r = new Random();
int linha;
int coluna;
do{
if((contraCPU)&&(qualJogador!=3)){
// CPU burra, joga de forma aleatoria.
linha = r.nextInt(3);
coluna = r.nextInt(3);
}else{
System.out.println("Jogador: "+((qualJogador==3)?"X":"O")+"\n Digite a linha e a coluna + <ENTER>");
linha = in.nextInt();
coluna = in.nextInt();
}
}while(!eJogadaValida(linha,coluna));
tabuleiro[coluna+(3*linha)]=qualJogador;
}// realizaJogada
public static void loopPrincipalDoJogo(){
boolean fim = false;
mostraTabuleiro();
do{
realizaJogada();
trocaJogador();
mostraTabuleiro();
if((temVencedor()!=0)||(deuVelha()))
fim = true;
}while(!fim);
if(temVencedor()==0){
System.out.println("Deu velha...");
}else{
System.out.println("O jogador "+((temVencedor()==3)?"X":"O")+" venceu!");
}
}// loopPrincipalDoJogo
public static void main(String[] args) {
loopPrincipalDoJogo();
}//main
}//classe
Grata (: