1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

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;
            }
          }
        }
      }
}
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

2 respostas

Não é a resposta que estava procurando? Procure outras perguntas com as tags java ou faça a sua própria pergunta.