0% acharam este documento útil (0 voto)
6 visualizações6 páginas

Jogo da Velha em Java: Implementação Completa

Este documento descreve um jogo da velha implementado em Java com classes para o tabuleiro, jogo e jogadores. A classe Jogo coordena uma partida entre dois jogadores, que podem ser humanos ou computadores, enquanto a classe Tabuleiro representa o estado do tabuleiro e checa o vencedor. As classes Jogador, Humano e Computador definem o comportamento de cada tipo de jogador.

Enviado por

leandrocatamo
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato TXT, PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
6 visualizações6 páginas

Jogo da Velha em Java: Implementação Completa

Este documento descreve um jogo da velha implementado em Java com classes para o tabuleiro, jogo e jogadores. A classe Jogo coordena uma partida entre dois jogadores, que podem ser humanos ou computadores, enquanto a classe Tabuleiro representa o estado do tabuleiro e checa o vencedor. As classes Jogador, Humano e Computador definem o comportamento de cada tipo de jogador.

Enviado por

leandrocatamo
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato TXT, PDF, TXT ou leia on-line no Scribd

-->JogoDaVelha.

java
public class JogoDaVelha {

public static void main(String[] args) {


Jogo jogo = new Jogo();

}
-->[Link]
public class Tabuleiro {
private int[][] tabuleiro= new int[3][3];

public Tabuleiro(){
zerarTabuleiro();
}

public void zerarTabuleiro(){


for(int linha=0 ; linha<3 ; linha++)
for(int coluna=0 ; coluna<3 ; coluna++)
tabuleiro[linha][coluna]=0;
}

public void exibeTabuleiro(){


[Link]();
for(int linha=0 ; linha<3 ; linha++){

for(int coluna=0 ; coluna<3 ; coluna++){

if(tabuleiro[linha][coluna]==-1){
[Link](" X ");
}
if(tabuleiro[linha][coluna]==1){
[Link](" O ");
}
if(tabuleiro[linha][coluna]==0){
[Link](" ");
}

if(coluna==0 || coluna==1)
[Link]("|");
}
[Link]();
}

public int getPosicao(int[] tentativa){


return tabuleiro[tentativa[0]][tentativa[1]];
}

public void setPosicao(int[] tentativa, int jogador){


if(jogador == 1)
tabuleiro[tentativa[0]][tentativa[1]] = -1;
else
tabuleiro[tentativa[0]][tentativa[1]] = 1;
exibeTabuleiro();
}

public int checaLinhas(){


for(int linha=0 ; linha<3 ; linha++){

if( (tabuleiro[linha][0] + tabuleiro[linha][1] + tabuleiro[linha][2])


== -3)
return -1;
if( (tabuleiro[linha][0] + tabuleiro[linha][1] + tabuleiro[linha][2])
== 3)
return 1;
}

return 0;

public int checaColunas(){


for(int coluna=0 ; coluna<3 ; coluna++){

if( (tabuleiro[0][coluna] + tabuleiro[1][coluna] + tabuleiro[2]


[coluna]) == -3)
return -1;
if( (tabuleiro[0][coluna] + tabuleiro[1][coluna] + tabuleiro[2]
[coluna]) == 3)
return 1;
}

return 0;

public int checaDiagonais(){


if( (tabuleiro[0][0] + tabuleiro[1][1] + tabuleiro[2][2]) == -3)
return -1;
if( (tabuleiro[0][0] + tabuleiro[1][1] + tabuleiro[2][2]) == 3)
return 1;
if( (tabuleiro[0][2] + tabuleiro[1][1] + tabuleiro[2][0]) == -3)
return -1;
if( (tabuleiro[0][2] + tabuleiro[1][1] + tabuleiro[2][0]) == 3)
return 1;

return 0;
}

public boolean tabuleiroCompleto(){


for(int linha=0 ; linha<3 ; linha++)
for(int coluna=0 ; coluna<3 ; coluna++)
if( tabuleiro[linha][coluna]==0 )
return false;
return true;
}
}
-->[Link]
import [Link];

public class Jogo {


private Tabuleiro tabuleiro;
private int rodada=1, vez=1;
private Jogador jogador1;
private Jogador jogador2;
public Scanner entrada = new Scanner([Link]);

public Jogo(){
tabuleiro = new Tabuleiro();
iniciarJogadores();

while( Jogar() );
}

public void iniciarJogadores(){


[Link]("Quem vai ser o Jogador 1 ?");
if(escolherJogador() == 1)
this.jogador1 = new Humano(1);
else
this.jogador1 = new Computador(1);

[Link]("----------------------");
[Link]("Quem vai ser o Jogador 2 ?");

if(escolherJogador() == 1)
this.jogador2 = new Humano(2);
else
this.jogador2 = new Computador(2);

public int escolherJogador(){


int opcao=0;

do{
[Link]("1. Humano");
[Link]("2. Computador\n");
[Link]("Opção: ");
opcao = [Link]();

if(opcao != 1 && opcao != 2)


[Link]("Opção inválida! Tente novamente");
}while(opcao != 1 && opcao != 2);

return opcao;
}

public boolean Jogar(){


if(ganhou() == 0 ){
[Link]("----------------------");
[Link]("\nRodada "+rodada);
[Link]("É a vez do jogador " + vez() );

if(vez()==1)
[Link](tabuleiro);
else
[Link](tabuleiro);

if([Link]()){
[Link]("Tabuleiro Completo. Jogo empatado");
return false;
}
vez++;
rodada++;

return true;
} else{
if(ganhou() == -1 )
[Link]("Jogador 1 ganhou!");
else
[Link]("Jogador 2 ganhou!");

return false;
}

public int vez(){


if(vez%2 == 1)
return 1;
else
return 2;
}

public int ganhou(){


if([Link]() == 1)
return 1;
if([Link]() == 1)
return 1;
if([Link]() == 1)
return 1;

if([Link]() == -1)
return -1;
if([Link]() == -1)
return -1;
if([Link]() == -1)
return -1;

return 0;
}

-->[Link]
public abstract class Jogador {

protected int[] tentativa = new int[2];


protected int jogador;
public Jogador(int jogador){
[Link] = jogador;
}

public abstract void jogar(Tabuleiro tabuleiro);

public abstract void Tentativa(Tabuleiro tabuleiro);

public boolean checaTentativa(int[] tentativa, Tabuleiro tabuleiro){


if([Link](tentativa) == 0)
return true;
else
return false;

-->[Link]
import [Link];

public class Humano extends Jogador{


public Scanner entrada = new Scanner([Link]);

public Humano(int jogador){


super(jogador);
[Link] = jogador;
[Link]("Jogador 'Humano' criado!");
}

@Override
public void jogar(Tabuleiro tabuleiro){
Tentativa(tabuleiro);
[Link](tentativa, jogador);
}

@Override
public void Tentativa(Tabuleiro tabuleiro){
do{
do{
[Link]("Linha: ");
tentativa[0] = [Link]();

if( tentativa[0] > 3 ||tentativa[0] < 1)


[Link]("Linha inválida. É 1, 2 ou 3");

}while( tentativa[0] > 3 ||tentativa[0] < 1);

do{
[Link]("Coluna: ");
tentativa[1] = [Link]();

if(tentativa[1] > 3 ||tentativa[1] < 1)


[Link]("Coluna inválida. É 1, 2 ou 3");
}while(tentativa[1] > 3 ||tentativa[1] < 1);

tentativa[0]--;
tentativa[1]--;

if(!checaTentativa(tentativa, tabuleiro))
[Link]("Esse local já foi marcado. Tente outro.");
}while( !checaTentativa(tentativa, tabuleiro) );
}
}

-->[Link]
public class Computador extends Jogador{

public Computador(int jogador){


super(jogador);
[Link]("Jogador 'Computador' criado!");
}

@Override
public void jogar(Tabuleiro tabuleiro){

@Override
public void Tentativa(Tabuleiro tabuleiro){

}
}

Você também pode gostar