Versão atual:

Jogo da Velha - Jogador1 x Jogador2 - JAVA

Resumindo:

Esse algoritmo é um jogo da velha onde joga Jogador1 x Jogador2 Porém quero ir mais além e quero coloca-lo um método onde Jogador1 x Computador Tentei fazer usando um Random, já que não precisa de IA Porém se alguém puder/souber uma maneira fácil de poder implementar, mandem sugestões.

Desde Já, agradeço

public class Main {

    public static void main(String [] args){

        GerenciadordoJogo jogo = new GerenciadordoJogo();

        jogo.iniciar();
        jogo.apresentarResultado();

    }

}
import java.util.Scanner;

public class GerenciadordoJogo {

    private boolean jogador1venceu = false;
    private boolean jogador2venceu = false;
    private boolean fimDoJogo = false;
    int [] [] matrizVelha = new int[3][3];

    private int vezDoJogador=1;

    private Scanner teclado = new Scanner(System.in);

    void iniciar(){

        System.out.println("####################################################");
        System.out.println("      Seja bem vindo ao jogo da velha ");
        System.out.println("####################################################");

        while(!fimDoJogo){

            imprimirEstado();
            realizaJogada();
        }

    }

    void imprimirEstado(){
        System.out.println("__________");
        for(int i = 0; i<3;i++) {
            for(int j = 0; j<3;j++) {
                imprimiMarcacao(matrizVelha[i][j]);
            }
            System.out.println();
        }  
        System.out.println("__________");
    }

    void imprimiMarcacao(int VezDoJogador){
        if(VezDoJogador == 1){
            System.out.print(" X ");
        }
        else if (VezDoJogador == 2){
                 ComputadorJoga();
        }
        else {
            System.out.print("   ");
    }
    }



    boolean  realizaJogada(){
        boolean posicaoPermitida=true;
        int linha,coluna;

        do{
            System.out.println("Jogador "+ vezDoJogador);
            System.out.println("Digite a linha entre 1 e 3");
            linha = teclado.nextInt();
            System.out.println("Digite a coluna entre 1 e 3");
            coluna = teclado.nextInt();

            if(linha<=3 & linha >=1 & coluna<=3 & coluna >=1 & matrizVelha[linha-1][coluna-1]>0){
                System.out.println("Jogada inválida");
                posicaoPermitida = false;
            }
            else{
                matrizVelha[linha-1][coluna-1] = vezDoJogador;
                posicaoPermitida=true;
            }


        }while(!posicaoPermitida);



        vezDoJogador = ((vezDoJogador ) %2) + 1; // atualiza o jogador!

        avaliaEstadoDoJogo();

        return false;// não finaliza o jogo

    }

    void avaliaEstadoDoJogo(){



    }


    void apresentarResultado(){

        if(jogador1venceu){
               System.out.println("O jogador 1 venceu!!!");
        }
        else if (jogador2venceu){
               System.out.println("O jogador 2 venceu!!!");
        }
        else{
            System.out.println("Empate técnico!");
   }
 }
}

Tentativa falha

    void ComputadorJoga() {

    // vez do computador jogar (joga na primeira casa livre)

    int i,j;
    System.out.println("## minha vez, Tecle ENTER por favor");

    for (i = 1; i < 3; i++){ 
        for (j = 1; j < 3; j++){

             if (matrizVelha[i][j]==' ') {
                 matrizVelha[i][j] = 'O';
                j = 4;
                i = 4;
            }
          }
        }
      }
}

Versão(1):

Ver a versão formatada

Jogo da Velha - Jogador1 x Jogador2 - JAVA

Comentário

new question